コマンドを実行して構成をテストすると、[::]: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;
互いに競合する可能性がある、投稿していない他のサーバーブロックはありますか?
説明:現在の(1.13)nginxを読んでみましょう documentation :
ipv6only=on|off
このパラメーター(0.7.42)は、(IPV6_V6ONLY
ソケットオプション)IPv6ソケットがワイルドカードアドレスをリッスンするかどうか[::]
は、IPv6接続のみ、またはIPv6とIPv4の両方の接続を受け入れます。このパラメーターはデフォルトでオンになっています。起動時に一度だけ設定できます。
このパラメータはデフォルトでオンになっていますは、ipv6only=on
。これは効果がなく、問題を引き起こす可能性があります(次のポイントを参照)。
1度しか設定できませんは、それが複数ある場合anywhere構成内(異なるサーバーブロック内など)では、エラーがスローされます:nginx: [emerg] duplicate listen options for [::]:80
。