Nginxはポートでリッスンし、ポート80に設定されている場合のみ応答します


10

OS:Funtoo。NGINXをポート81にバインドし(移行を容易にするために、Apacheサーバーと一緒に短時間実行したい)、ポートでリッスンします(別のポートを指す場合、wgetを使用すると、「接続が拒否されました」と表示されます。しかし、ポート81を使用すると、「接続」されます)が、それは、いかなる種類のHTML応答も提供しません。

ローカルホストからポートでwgetを実行すると、次のようになります。

# wget localhost:81
-2014-04-16 23:56:45- http://localhost:81/
Resolving localhost... 127.0.0.1
Connecting to localhost|127.0.0.1|:81... connected.
HTTP request sent, awaiting response...

別のコンピューターで...

$ wget 192.168.18.42:81
-2014-04-16 23:57:19- http://192.168.18.42:81/
Connecting to 192.168.18.42:81... connected.
HTTP request sent, awaiting response...

その後は何も起こりません。ドキュメントが存在し、それは通常のFuntoo nginx.confです。

更新:ポート80をリッスンすることはできますが、どのポートでも機能しないので、まだガタガタです。

netstat -aWn | grep 81 | grep LISTEN
tcp 60 0 0.0.0.0:81 0.0.0.0:* LISTEN

編集:構成ファイル:

user nginx nginx;
worker_rlimit_nofile 6400;

error_log /var/log/nginx/error_log info;

events {
    worker_connections 1024;
    use epoll;
}

http {
    include /etc/nginx/mime.types;

    # This causes files with an unknown MIME type to trigger a download action in the browser:
    default_type application/octet-stream;

    log_format main
        '$remote_addr - $remote_user [$time_local] '
        '"$request" $status $bytes_sent '
        '"$http_referer" "$http_user_agent" '
        '"$gzip_ratio"';

    client_max_body_size 64m;

    # Don't follow symlink if the symlink's owner is not the target owner.

    disable_symlinks if_not_owner;
    server_tokens off;
    ignore_invalid_headers on;

    gzip off;
    gzip_vary on;
    gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript text/x-js image/x-icon image/bmp;

    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;

    index index.html;
    include /etc/nginx/sites-enabled/*;
}

サーバーブロック:

server {
    listen  *:81;
    root    /usr/share/nginx/html;
    location / {
        index   index.html;
    }
}

パケットフィルターが有効になっていiptablesますか()?その場合、ポート81を許可することを覚えていますか?
Andreas Wiese 14

iptablesが有効になっていません。
Aviator45003 14

2
次に、構成の関連する部分が役立つと思います。
Andreas Wiese 14

回答:


5

次のサーバーブロックを試してください。

server {
   listen       81 default_server;
    server_name _;    
    root    /usr/share/nginx/html;
    location / {
        index   index.html;
    }
}

下線_はワイルドカードです。また*:81、ポート番号を使用するだけで、期待どおりに動作しない可能性があります。

次に、以下を使用して設定をテストしますnginx -t

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

nginxを再起動します。

service nginx restart

netstatでテストします。

root@gitlab:~# netstat -napl | grep 80
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      7903/nginx      
tcp        0      0 127.0.0.1:8080          0.0.0.0:*               LISTEN      2662/unicorn.

更新

テストシステムにnginxをインストールしました。ストックnginx.confファイルと1行をに変更すると/etc/nginx/sites-enabled/default、ポート81からファイルを取得できました

cat /etc/nginx/sites-enabled/default
server {

    listen   81;
    server_name localhost;
    root /usr/share/nginx/www;
    index index.html index.htm;


    location / {
        try_files $uri $uri/ /index.html;
    }

    location /doc/ {
        alias /usr/share/doc/;
        autoindex on;
        allow 127.0.0.1;
        deny all;
    }

}

Netstatの出力:

netstat -napl | grep 81
tcp        0      0 0.0.0.0:81              0.0.0.0:*               LISTEN      3432/nginx

ダウンロードファイル:

$ wget localhost:81

ファイルの内容:

$ cat index.html
<html>
<head>
<title>Welcome to nginx!</title>
</head>
<body bgcolor="white" text="black">
<center><h1>Welcome to nginx!</h1></center>
</body>
</html>

Update2

テストポート:

 root@gitlab:# nc -vz localhost 81
 Connection to localhost 81 port [tcp/*] succeeded!
 root@gitlab:# nc -vz localhost 443
 nc: connect to localhost port 443 (tcp) failed: Connection refused

Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 9 0 0.0.0.0:81 0.0.0.0:* LISTEN 1026/nginx: master まだ成功していません。Recv-Qが9であることは、ある種のヒントですか?Wgetなどを試すたびに上がります。サーバーブロックは、指定したとおりです。
Aviator45003 14

Recv-Qが何かわかりません。/ etc / nginx / sites-availableに何かありますか?
スパッダー14

1
@TC更新された回答をご覧ください。
スパッダー14

新しい設定ファイルに従っても、ステータスは変わりません。ポート80ではなく何かをブロックしているポートがある可能性はありますか?これをテストする方法はありますか?
Aviator45003 14

1
TCはい、ncを使用します。更新を参照してください
spuder

4

大きな問題が判明?Nginxはworker_processesを0に設定していautoました。それを設定する行をnginx.confの上部に追加しました。

時間と忍耐をありがとうございました。


あなただけの欲求不満-明らかにnginxの設定出力aをテンプレート化するために使用私の自動化された変数の1の1時間ほど後にあきらめから私を救った0ためworker_processes、私は完全など四重チェックの他のすべての設定ファイルを、DNS、ホスト、後に仰天して
geerlingguy 2016年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.