Nginx 不会在 IPv6 上提供 php 页面

Nginx 不会在 IPv6 上提供 php 页面

我有一台运行 nginx 和 php5 的 Debian 8 服务器。该服务器配置了 IPv4 和 IPv6 地址,我可以在任一地址上成功 ping 该服务器。我还可以使用任一地址成功浏览服务器上的 html 页面。如果我使用 IPv4 地址,我可以成功浏览 php 页面,但如果我尝试使用 IPv6 地址浏览 php 页面,浏览器会挂起,我不明白为什么。phpinfo 显示 IPv6 已启用。任何帮助都将不胜感激。配置文件如下。

/etc/nginx/sites-enabled/default

server {
server_name abcwiki;
listen [::]:80 ipv6only=on;
listen 80;
    root /var/www/html/dokuwiki;
    index index.html index.php;
    location ~ \.php$ {
        include fastcgi_params;
        include /etc/nginx/snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
    }
}

/etc/php5/fpm/pool.d/www.conf

[www]
user = www-data
group = www-data
listen = /var/run/php5-fpm.sock
listen.owner = www-data
listen.group = www-data
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3

其他 nginx 和 php 文件保留默认设置。

PHP 信息显示:

PHP Version 5.6.30-0+deb8u1


System  Linux ABCWiki 3.16.0-4-amd64 #1 SMP Debian 3.16.39-1+deb8u2 (2017-03-07) x86_64  
Build Date  Feb 8 2017 08:50:44  
Server API  FPM/FastCGI  
Virtual Directory Support  disabled  
Configuration File (php.ini) Path  /etc/php5/fpm  
Loaded Configuration File  /etc/php5/fpm/php.ini  
Scan this dir for additional .ini files  /etc/php5/fpm/conf.d  
Additional .ini files parsed  /etc/php5/fpm/conf.d/05-opcache.ini, /etc/php5/fpm/conf.d/10-pdo.ini, /etc/php5/fpm/conf.d/20-json.ini, /etc/php5/fpm/conf.d/20-readline.ini  
PHP API  20131106  
PHP Extension  20131226  
Zend Extension  220131226  
Zend Extension Build  API220131226,NTS  
PHP Extension Build  API20131226,NTS  
Debug Build  no  
Thread Safety  disabled  
Zend Signal Handling  disabled  
Zend Memory Manager  enabled  
Zend Multibyte Support  provided by mbstring  
IPv6 Support  enabled  
DTrace Support  enabled  
Registered PHP Streams https, ftps, compress.zlib, compress.bzip2, php, file, glob, data, http, ftp, phar, zip 
Registered Stream Socket Transports tcp, udp, unix, udg, ssl, sslv3, tls, tlsv1.0, tlsv1.1, tlsv1.2 
Registered Stream Filters zlib.*, bzip2.*, convert.iconv.*, string.rot13, string.toupper, string.tolower, string.strip_tags, convert.*, consumed, dechunk 

答案1

我找到了导致这种情况的原因,这有点儿像是一个误导。这是由于我们的 SonicWALL 防火墙 VPN 使用完整 MTU 丢弃数据包造成的(我认为这是防火墙的一个错误,我正在向 SonicWALL 报告这个问题)。我测试的 html 页面很小,所以从未发现这个问题。将服务器上的 MTU 降低到 1374(将防火墙上的 MTU 设置为 1500)暂时解决了这个问题。

相关内容