Php 调试504网关超时及其实际原因和解决方案
我们在RHEL6.6上的web服务器Varnish+Nginx+FastCGI(PHPFPM)上运行以下堆栈 它是一个动态的网站,每次都有不同的结果集,有大约200万个url被Google索引Php 调试504网关超时及其实际原因和解决方案,php,linux,nginx,connection-timeout,http-status-code-504,Php,Linux,Nginx,Connection Timeout,Http Status Code 504,我们在RHEL6.6上的web服务器Varnish+Nginx+FastCGI(PHPFPM)上运行以下堆栈 它是一个动态的网站,每次都有不同的结果集,有大约200万个url被Google索引 它运行在nginx/1.5.12和php5.3.3上(很快将升级到最新的nginx和PHP) Nginx连接到端口9000上同一台服务器上本地运行的php fpm 我们在一些无法解决的页面上间歇性地出现504网关超时。给出504的URL在一段时间后工作正常。 我们从我们的日志中了解到了504,但我们无
- 它运行在nginx/1.5.12和php5.3.3上(很快将升级到最新的nginx和PHP)
- Nginx连接到端口9000上同一台服务器上本地运行的php fpm
- 这是Nginx的问题吗李>
- 这是php fpm的问题吗李>
- 底层php脚本有问题吗李>
- nginx是否可能无法连接到php fpm李>
- 如果我们使用Unix套接字而不是TCP/IP连接,它会解决问题吗李>
- 保持激活超时5李>
- 发送超时150李>
- 代理发送超时100
- 代理读取超时100
- 代理连接超时100
- fastcgi\u连接\u超时120
- fastcgi\u发送\u超时300
- fastcgi\u读取\u超时300
- net.ipv4.ip_本地_端口_范围=1024 65500
- net.ipv4.tcp\u fin\u超时=10
- net.ipv4.tcp_tw_重用=1
- net.ipv4.tcp_syn_重试次数=6
- net.core.netdev_max_backlog=8192
- net.ipv4.tcp_max_tw_bucket=2000000
- net.core.somaxconn=4096
- net.ipv4.tcp\无\度量值\保存=1
- vm.max\u map\u count=256000
- 在php fpm日志中未发现错误
- php fpm进程的数量也正常。后端看起来并没有过载,因为其他请求在同一时间得到了很好的处理
- 只使用了一个php fpm池。一个php fpm主(父)进程和其他从(子)进程通常只有在观察到5xx时才处于正常范围。php fpm进程的数量并没有显著增长,即使增长了,服务器也有足够的容量来派生新的进程并为请求提供服务