我的网站在Nginx +PHP上运行得很好,但随机地给出了502错误。环境细节
OS - CetnOS 6
Nginx
PHP-FPM (php 5.4)
APC (Code Cache APC 3.1.13 beta)
Memcache (data cache)In 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连接,而不是套接字。
如果任何人有任何意见,请更新我。
谢谢
发布于 2015-06-17 14:02:01
首先将pm.max_children = 200降为pm.max_children = 50。
您必须首先增加系统的文件限制,从而允许nginx和php打开更多的文件。文件限制必须增加,因为在linux中,所有的东西最终都是文件。因此,您打开的连接越多,就需要更多的文件。在ubuntu中,文件限制配置是在/etc/security/limits.conf中完成的。您需要为CentOS找到这个位置。
然后尝试增加可以被php使用的内部端口范围。与此tcp端口一起,通常在重用之前与超时值相关联,请减少此超时,以便在完成工作时释放更多端口。
找到详细的信息here。
加法:
如果错误仍然存在,请将php辅助进程的数量增加到100。尽管不建议将值设置得太高以至于它们消耗了额外的内存。
pm.max_children = 100
pm.start_servers = 90
pm.min_spare_servers = 70
pm.max_spare_servers = 100您可以尝试各种不同的值,以获得最适合您的目的。
502的基本原因是nginx无法转发或未能将请求转发到php。增加php工作进程的数量可以是一种方式,从而给nginx更多的进程来转发请求。
https://stackoverflow.com/questions/30885354
复制相似问题