Nginx
如何在 nginx 1.4 上使用虛擬主機進行雙棧 IPv4/IPv6
我正在使用 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
,因此您可以放心地完全忽略它。