我正在使用 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 以支持虚拟主机双栈?
你已经使用(或者你做了,直到你编辑了这部分。)default_server
了不止一个server
街区。这仅用于定义给定 IP 地址/端口组合的默认虚拟主机。因此,在您的整个配置中,每个 IP/端口对应该只出现一次。哪个主机应该是默认虚拟主机取决于您。此外,
ipv6only
在整个配置中只能出现一次。由于它在 1.4 及更高版本中的默认值为on
,因此您可以放心地完全忽略它。