记录网站出现nginx 404 not found的解决办法

老耿博客在4月24日开通了360网站监控,一直都没有收到提醒的短信,在4月28日早上看见手机一条来自360网站监控的短信,无法打开时间持续2个小时,另外一条无法打开持续8分钟时间,发生时间均在凌晨左右。看到这样的短信提醒也没有引起注意,因为网站能够打开,直到4月28日下午4点左右再次收到了短信提醒,马上打开网站看看结果提示:nginx 404 not found。看着这样的提示第一时间登陆控制面板后台重新启动ngnix与PHP、mysql等依然没有解决,重启云服务器也没有解决问题,因此想起看看错误日志提示的是什么,结果也没有开启,于是马上开启错误日志记录!

其实很多时候一味的寻求答案而不知道根源在什么地方,就犹如庸医看病一样,什么都不问就乱给药一样!很多时候网站出现问题,应该第一时间查看错误提示,找出具体是由什么原因造成的。在遇到这次事件之后,老耿开启了错误日记记录,也找到了具体的原因!

错误日记记录了出现这样问题的提示:

[crit] 2626#0: *6405 connect() to unix:/tmp/php-cgi-xxx-php5.3-7vps.sock failed (2: No such file or directory) while connecting to upstream, client: 185.103.252.173, server: laogeng.net, request: "POST /xmlrpc.php HTTP/1.1", upstream: "fastcgi://unix:/tmp/php-cgi-xxx-php5.3-7vps.sock:", host: "www.laogeng.net"

主要由于php-fpm配置不当造成的,以下是老耿目前的配置

[7vps-php5.3-7vps]
listen = /tmp/php-cgi-xxx-php5.3-7vps.sock
listen.group = www
user = www
group = www
pm = static
pm.max_children = 3
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3

rlimit_files = 51200

这里先说一下涉及到这个的几个参数,他们分别是pm、pm.max_children、pm.start_servers、pm.min_spare_servers和pm.max_spare_servers。

pm表示使用那种方式,有两个值可以选择,就是static(静态)或者dynamic(动态)。

下面4个参数的意思分别为:

pm.max_children:静态方式下开启的php-fpm进程数量。
pm.start_servers:动态方式下的起始php-fpm进程数量。
pm.min_spare_servers:动态方式下的最小php-fpm进程数量。
pm.max_spare_servers:动态方式下的最大php-fpm进程数量。

如果dm设置为static,那么其实只有pm.max_children这个参数生效。系统会开启设置数量的php-fpm进程。

如果dm设置为dynamic,那么pm.max_children参数失效,后面3个参数生效。系统会在php-fpm运行开始的时候启动pm.start_servers个php-fpm进程,然后根据系统的需求动态在pm.min_spare_servers和pm.max_spare_servers之间调整php-fpm进程数。

老耿选择的是静态模式,而且pm.max_children进程数设置的3个,非常的少,当自己把pm.max_children进程数进行调整之后目前来说没有出现类似的问题啦!由于使用的AMH5.x收费版,修改起来也非常的简单,在面板上编辑调整虚拟主机的php-fpm选项即可!

通过这次事件,让自己明白需要学习的地方还很多很多,人就是要不断的丰富自己,不然像现在一样都要成榆木脑袋啦!

还没回应

发表评论

电子邮件地址不会被公开。 必填项已用*标注