[::]:80エラーのNginx重複リッスンオプション


12

コマンドを実行して構成をテストすると、に複数の重複があるというエラーが表示され[::]:80ます。その前に、複数のデフォルトサーバーの重複に関する問題がありました。

複数のデフォルトサーバーで問題が発生した場合、ファイルは次のようになりました

server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;

root /usr/share/nginx/html;
index index.php index.html index.htm;

server_name munki;

error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
    root /usr/share/nginx/html;
    }

location /report {
    try_files $uri $uri/ =404;
    }

location ~ \.php$ {
    try_files $uri =404;
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_index index.php;
    include fastcgi_params;
    }

location /munki_repo/ {
    alias /usr/local/munki_repo/;
    autoindex off;
    auth_basic "Restricted";
    auth_basic_user_file /etc/nginx/.htpasswd;
    }
}

この問題を解決するために、構成を次のように変更しました。

server {
listen 80;
listen [::]:80 ipv6only=on;

root /usr/share/nginx/html;
index index.php index.html index.htm;

server_name munki;

error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
    root /usr/share/nginx/html;
    }

location /report {
    try_files $uri $uri/ =404;
    }

location ~ \.php$ {
    try_files $uri =404;
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_index index.php;
    include fastcgi_params;
    }

location /munki_repo/ {
    alias /usr/local/munki_repo/;
    autoindex off;
    auth_basic "Restricted";
    auth_basic_user_file /etc/nginx/.htpasswd;
    }
}

変更後、「[::]:80の重複オプション」エラーが発生し始めました。私はこれで何が間違っているのかわかりません。Nginxを使用するのは今回が初めてです。問題が何であるかについてのアイデアはありますか?


エラーメッセージ(nginx -t出力)を投稿してください。どのnginxバージョンを実行していますか?ipv6only=onもう必要ないかもしれません。私はこれを私のサーバーブロックに入れていますlisten 80;listen [::]:80;。他にサーバーブロックはありますか?
simlev 2017

ありがとうございます!そのことを考えたことはなかったでしょう。
ztmcoder

回答:


27

以前のコメントから回答を作成しています。

エラーメッセージ(nginx -t出力)を投稿してください。役立つ情報が含まれている可能性があります。

どのnginxバージョンを実行していますか?オプションipv6only=onはもう必要ないかもしれず、逆に問題を引き起こす可能性があります。私はこれを私のサーバーブロックに入れており、うまく実行されます:

listen 80;
listen [::]:80;

互いに競合する可能性がある、投稿していない他のサーバーブロックはありますか?


説明:現在の(1.13)nginx ドキュメントを読んでみましょう:

ipv6only=on|off
このパラメーター(0.7.42)は、(IPV6_V6ONLYソケットオプションを介して)ワイルドカードアドレスでリッスンするIPv6ソケットが[::] IPv6接続のみを受け入れるか、IPv6接続とIPv4接続の両方を受け入れるかを決定します。このパラメーターはデフォルトでオンになっています。起動時に一度だけ設定できます。

このパラメータはデフォルトでオンになっているため、を使用しないでくださいipv6only=on。これは効果がなく、問題を引き起こす可能性があります(次のポイントを参照)。

設定できるのは1回だけです。つまり、構成内の別の場所(別のサーバーブロックなど)に2回以上設定すると、エラーがスローされますnginx: [emerg] duplicate listen options for [::]:80

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.