#西昆云#云服务器出现502错误怎么办

【#西昆云#云服务器出现502错误怎么办】
云服务器出现502错误怎么办?当云服务器上面的网站出现502错误时 , 说明服务器作为网关或代理 , 从上游服务器收到无效响应 。
#西昆云#云服务器出现502错误怎么办
本文插图
出现502错误的原因分析
将请求提交给网关 , 如php-fpm执行 , 但是由于某些原因没有执行完毕导致php-fpm进程终止执行 。 那么出现问题的地方便与网关服务如php-fpm的配置有关 。 max_children最大子进程数 , 在高并发请求下 , 达到php-fpm最大响应数 , 后续的请求就会出现502错误 。 可以通过netstat命令来查看当前连接数 。
request_terminate_timeout 设置单个请求的超时终止时间 。 还应该注意到php.ini中的max_execution_time参数 。 当请求终止时 , 也会出现502错误的 。
当积累了大量的php请求 , 此时重启php-fpm释放资源 , 但没有几分钟的时间 , 又再次出现502错误 , 为什么呢?此时我们还应考虑是否与云主机数据库有关 , 查看下数据库进程是否有大量的locked进程 , 数据库死锁导致超时 , 前端终止了继续请求 , 但是SQL语句还在等待释放锁 , 这时就要重启数据库服务了或kill掉死锁SQL进程了 。
出现502错误的解决方案
当网站出现502问题时 , 可以先通过以下两个步骤来解决:
1、查看当前的PHP FastCGI进程数是否够用netstat -anpo | grep “php-cgi”| wc -l 如果实际使用的“FastCGI进程数”接近预设的“FastCGI进程数” , 那么 , 说明“FastCGI进程数”不够用 , 需要增大 。
2、部分PHP程序的执行时间超过了Nginx的等待时间 , 可以适当增加nginx.conf配置文件中FastCGI的timeout时间 。
如果php.ini中memory_limit设偏低 , 修改php.ini的memory_limit为64M , 重启nginx , 说明PRH内存不足 。
3、max-children和max-requests 一台服务器上运行着nginx php(fpm) xcache , 访问量日均300W pv左右经常会出现这样的情况:php页面打开很慢 , cpu使用率突然降至很低 , 系统负载突然升至很高 , 查看网卡的流量 , 也会发现突然降到了很低 。 一般这种情况只持续数秒钟便可恢复 。
云服务器上网站出现502错误的原因有很多 , 不同的原因其解决方法也会不同 , 当出现502错误时 , 我们首要的任务便是找出问题所在 , 知道问题出现在哪 , 解决问题也就方便得多 。