服务器403,500,502,503,504等错误问题总结

《服务器403,500,502,503,504等错误问题总结》

403错误(禁止访问)

403禁止访问,由服务器返回的,可能是访问了某些禁止的文件,例如.env  /admin/login 之类的地址

404错误(文件不存在)

不解释

500错误(执行错误)

1.如果刚刚搭建的服务器的初期出现,  很有可能是配置问题造成的:
首先找到php的配置文件/etc/php.ini 
display_errors = On
error_reporting = E_ALL | E_STRICT
//并在主入口门文件的开始位置加入此行(public/index.php)
error_reporting(E_ALL ^ E_NOTICE);

2.执行代码语法错误,简单来说就是你的代码写错了,导致执行失败,例如: file_get_content('xxxx'); 其实正确的写法是 file_get_contents('xxxx') 漏了个"S"

3.php版本不支持旧的写法
根据报出的错误进行修改 ,本次错误提示是 php8.0使用最新的方法 ,旧方法(框架)已不再支持 , 请升级至最新版本😂 😂 

502错误 (服务器无响应)

1.出现502,很有可能是php-fpm出现故障造成的 Recv-Q阻塞,(Mysql阻塞)
2.服务器(负载均衡)宕机(反正就是死机了,无任何反应),断网,断电,卡机,死机,关机,等情况都属于502
《服务器403,500,502,503,504等错误问题总结》
//查看错误日志:
# cd /var/log/php-fpm
[root@localhost php-fpm]# ls
error.log  error.log-20210822  error.log-20210829  error.log-20210905  error.log-20210912

#查看最后一个日志
vi xxxxx
------------------------------------------------------------------------
[14-Sep-2021 04:56:00] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 8 children, there are 3 idle, and 20 total children
[14-Sep-2021 04:56:29] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 8 children, there are 0 idle, and 30 total children
[14-Sep-2021 04:56:30] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 16 children, there are 2 idle, and 35 total children
[14-Sep-2021 06:51:02] WARNING: [pool www] server reached pm.max_children setting (50), consider raising it
[14-Sep-2021 08:38:20] WARNING: [pool www] server reached pm.max_children setting (50), consider raising it

机翻如下:
[14-Sep-2021 04:56:00] WARNING: [pool www] seems busy (you may need to increase pm.(你可能需要增加pm.)Start_servers,或pm.min/max_spare_servers),生成8个子服务器,有3个空闲的,总共20个子服务器
[14-Sep-2021 04:56:29] WARNING: [pool www] seems busy (you may need to increase pm.(你可能需要增加pm.)Start_servers,或pm.min/max_spare_servers),生成8个子节点,有0个空闲节点,总共30个子节点
[14-Sep-2021 04:56:30] WARNING: [pool www] seems busy (you may need to increase pm.(你可能需要增加pm.)Start_servers,或pm.min/max_spare_servers),生成16个子服务器,有2个空闲的,总共35个子服务器
[14-Sep-2021 06:51:02] WARNING: [pool www] server reached pm.(警告:[pool www] server reached pm.)Max_children设置(50),考虑提高它
[14-Sep-2021 08:38:20] WARNING: [pool www] server reached pm.(警告:[pool www] server reached pm.)Max_children设置(50),考虑提高它

处理方法请查看 PHP7.4 php-pool进程池优化
处理方法请查看 PHP7.4 php-pool进程池优化

就是static(静态)或者dynamic(动态)。在更老一些的版本中,dynamic被称作apache-like。这个要注意看配置文件给出的说明了。
pm.max_children:静态方式下开启的php-fpm进程数量。(动态下无效)
pm.start_servers:动态方式下的起始php-fpm进程数量。(静态下无效)
pm.min_spare_servers:动态方式下的最小php-fpm进程数量。(静态下无效)
pm.max_spare_servers:动态方式下的最大php-fpm进程数量。(静态下无效)

pmpm = dynamic
;静态方式下开启的php-fpm进程数量。静态下有效
pm.max_children = 120
;动态方式下开启的php-fpm进程数量。动态下有效
pm.start_servers = 40
pm.min_spare_servers = 30
pm.max_spare_servers = 120
;空闲多少秒之后进程会被kill,默认为10s
pm.process_idle_timeout = 4s;
;每个worker在8次任务后被杀死, 可获得大量内存!!! worker不需要长期驻留!!
pm.max_requests = 8



假设网站每秒钟有5个用户访问,最高同时在线,请求或翻页等操作 , 8倍: 5*8=40
---------------------------------------------------------
pm = dynamic (默认)
pm.start_servers = 5  ->8  动态方式下的起始进程数量
pm.min_spare_servers = 5  ->8  动态方式空闲最小进程数量
pm.max_spare_servers = 35  ->50  动态方式下空闲状态的最大进程数量

如果长时间没有得到处理的请求就会出现 504 Gateway Time-out 这个错误,而正在处理的很累的那几个php-cgi如果遇到了问题就会出现 502 Bad gateway 这个错误。

max_children较好的设置方式根据req/s(吞吐率,单位时间里服务器处理的最大请求数,单位req/s)来设置,若程序是 100 req/s 的处理能力,那么就设置 100比较好,这是动态来调整的。

503错误(请求过于频繁)

503属于服务器(nginx)自发返回的一种错误状态,意为:"请求过于频繁"。
如服务器设置了访问频率限制且用户请求超出限制时,则触发此错误,例如允许每10秒最大请求数为15次时,超过则会报 503

504错误(等待超时)

504错误代表网关超时 (Gateway timeout),是指服务器作为网关或代理,但是没有及时从上游服务器收到请求。这通常意味着上游服务器已关闭(不响应网关 / 代理),而不是上游服务器和网关/代理在交换数据的协议上不一致。

通常是mysql没及时响应造成的错误,常见为mysql卡住没有任何反应(长查询)时报这个错,与fastcgi_connect_timeout、fastcgi_send_timeout、fastcgi_read_timeout有关
点赞

发表评论

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