启用IPv6后,nginx虚拟主机不工作

我刚刚在基于Debian Jessie的nginx 1.8.0 webserver上启用了IPv6。 要做到这一点,我编辑了我的虚拟主机configuration:

server { listen 80; listen [2001:1608:10:160:34::2]:80; server_name dominicpratt.de www.dominicpratt.de; return 301 https://dominicpratt.de$request_uri; } server { listen 443; listen [2001:1608:10:160:34::2]:443; server_name dominicpratt.de www.dominicpratt.de; root /var/www/dominicpratt.de; index index.html index.htm index.php; access_log /var/log/nginx/dominicpratt.de_access.log; ssl on; ssl_certificate /etc/nginx/ssl/dominicpratt.de/combined.pem; ssl_certificate_key /etc/nginx/ssl/dominicpratt.de/wildcard.key; location / { try_files $uri $uri/ /index.php?q=$request_uri; } location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php5-fpm-www.sock; fastcgi_param PATH_TRANSLATED $document_root$fastcgi_script_name; fastcgi_index index.php; include fastcgi_params; } location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ { expires 365d; } } 

现在我的网站dominicpratt.de工作正常,但我的子域名不是。 他们redirect到dominicpratt.de – 例如:rss.dominicpratt.de和以下configuration:

 server { listen 80; listen [2001:1608:10:160:34::5]:80; server_name rss.dominicpratt.de; return 301 https://rss.dominicpratt.de$request_uri; } server { listen 443; listen [2001:1608:10:160:34::5]:443; server_name rss.dominicpratt.de; root /var/www/rss.dominicpratt.de; index index.html index.htm index.php; access_log /var/log/nginx/rss.dominicpratt.de_access.log; ssl on; ssl_certificate /etc/nginx/ssl/dominicpratt.de/combined.pem; ssl_certificate_key /etc/nginx/ssl/dominicpratt.de/wildcard.key; location / { try_files $uri $uri/ /index.php?q=$request_uri; } location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php5-fpm-www.sock; fastcgi_param PATH_TRANSLATED $document_root$fastcgi_script_name; fastcgi_index index.php; include fastcgi_params; } } 

我无法访问https://rss.dominicpratt.de和所有其他子域名。 如果我删除或注释掉服务器块中的IPv6-listen-lines,它就像应该那样工作。

尝试将ipv6only=on添加到您的listen指令中,如下所示:

 listen [2001:1608:10:160:34::5]:80 ipv6only=on; ... listen [2001:1608:10:160:34::5]:443 ipv6only=on; 

您在listen指令中指定IPv6地址的事实在默认情况下不会closuresIPv4。