我正在使用 nginx 1.4.1(现在,之前是 1.2.1),并希望支持双栈(IPv4 和 IPv6)。我总是收到duplicate listen options for xyz
来自 nginx 的错误。
server {
listen 80 default_server;
listen [::]:80 ipv6only=on default_server;
server_name domain1;
}
server {
listen 443 ssl default_server;
listen [::]:443 ssl ipv6only=on default_server;
server_name domain1;
}
server {
listen 80;
listen [::]:80 ipv6only=on;
server_name domain2;
}
server {
listen 443 ssl;
listen [::]:443 ssl ipv6only=on;
server_name domain2;
}
如果我仅使用,listen 80
则只会获得 IPv4。否则,如果我使用,listen [::]:80
则只会获得 IPv6。
如何设置 nginx 1.4.x 以支持虚拟主机双栈?
答案1
(或者您已经这样做了,直到您编辑掉这部分。)default_server
您已在多个块中使用server
。这仅用于定义给定 IP 地址/端口组合的默认虚拟主机。因此,它应该在整个配置中每个 IP/端口对只出现一次。哪个主机应该是默认虚拟主机由您决定。
此外,ipv6only
在整个配置中只能出现一次。由于 1.4 及更高版本中的默认值为on
,因此您可以放心地将其完全省略。