Nginx

如何在 nginx 1.4 上使用虛擬主機進行雙棧 IPv4/IPv6

  • September 1, 2013

我正在使用 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,因此您可以放心地完全忽略它。

引用自:https://serverfault.com/questions/535483