当我运行命令来测试我的配置时,我收到一条错误消息,指出[::]: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;
}
}
Run Code Online (Sandbox Code Playgroud)
为了解决这个问题,我将配置更改为:
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;
}
}
Run Code Online (Sandbox Code Playgroud)
更改后,我开始收到“[::]:80 的重复选项”错误。我不确定我做错了什么。这是我第一次使用 Nginx。任何想法可能是什么问题?
sim*_*lev 41
我正在根据我之前的评论创建一个答案。
请发布错误消息(nginx -t输出),因为它可能包含一些有用的见解。
你运行的是什么 nginx 版本?ipv6only=on可能不再需要选项,相反可能会产生问题。我的服务器块中有这个,它运行良好:
listen 80;
listen [::]:80;
Run Code Online (Sandbox Code Playgroud)
您是否还有其他未发布的可能会相互冲突的服务器块?
说明:让我们阅读当前 (1.13) nginx文档:
ipv6only=on|off
此参数 (0.7.42) 确定(通过IPV6_V6ONLY套接字选项)侦听通配符地址的 IPv6 套接字是[::]仅接受 IPv6 连接还是同时接受 IPv6 和 IPv4 连接。该参数默认开启。它只能在启动时设置一次。
这个参数默认开启意味着你不应该使用ipv6only=on. 它没有任何好处,并且可能会产生问题(请参阅下一点)。
它只能设置一次意味着如果您在配置中的任何地方(例如在不同的服务器块中)多次使用它,它将抛出错误:nginx: [emerg] duplicate listen options for [::]:80。