我的网站是工作的罚款与Nginx的+ PHP-FPM但随机它提供了502错误。 环境细节
OS - CetnOS 6
Nginx
PHP-FPM (php 5.4)
APC (Code Cache APC 3.1.13 beta)
Memcache (data cache)
在PHP-FPM
pm.max_children = 200
pm.start_servers = 40
pm.min_spare_servers = 30
pm.max_spare_servers = 50
pm.max_requests = 500
另外我使用的TCP连接不插座。
如果有任何身体有任何输入,请更新我。
谢谢
首先减少pm.max_children = 200
到pm.max_children = 50
。
你必须首先提高系统从而使nginx的和PHP-FPM打开的文件数量较多的文件限制。 文件限制必须增加在中端Linux的一切文件。 所以,更多的连接打开将需要更大量的文件。 在Ubuntu文件限制配置在完成/etc/security/limits.conf
。 您需要找到此为CentOS。
然后尝试增加可通过PHP-FPM中使用的内部端口范围。 随着这一TCP端口通常与重复使用它们之前的超时值相关联,因此,当他们的工作完成更多的端口被释放减少这种超时。
找到详细的信息在这里 。
加成:
在情况下,如果错误仍然存在尝试增加的php-fpm的工作进程的数目为100。虽然不建议设置的值那么高,因为它们消耗的内存增加。
pm.max_children = 100
pm.start_servers = 90
pm.min_spare_servers = 70
pm.max_spare_servers = 100
你可以尝试不同的值,以获得适合你的目的的最佳。
当nginx的不能前进,502的基本原因是或不将请求转发到PHP-FPM。 提高PHP-FPM的工作进程的数量可以的途径之一,从而给nginx的多个进程将请求转发到。