一: 500 错误
1,500 Internal Server Error 内部服务错误: 顾名思义 500 错误一般是服务器遇到意外情况, 而无法完成请求.
2,500 出错的可能性:
a, 编程语言语法错误, web 脚本错误
b, 并发高时, 因为系统资源限制, 而不能打开过多的文件
3, 一般解决思路:
a, 查看 nginx,PHP 的错误日志文件, 从而看出端倪
b, 如果是 too many open files, 修改 nginx 的 worker_rlimit_nofile 参数, 使用 ulimit 查看系统打开文件限制, 修改 / etc/security/limits.conf, 还是出现 too many open files, 那就要考虑做负载均衡, 把流量分散到不同服务器上去了
c, 如果是脚本的问题, 则需要修复脚本错误, 优化代码
二: 502,504 错误
1,502 Bad Gateway 错误, 504 Bad Gateway timeout 网关超时
2,502,504 出现的可能性
Web 服务器故障, 程序进程不够
3, 一般解决思路
a, 使用 nginx 代理, 而后端服务器发生故障; 或者 PHP-CGI 进程数不够用; PHP 执行时间长, 或者是 PHP-CGI 进程死掉; 已经 fastCGI 使用情况等都会导致 502,504 错误.
b,502 是指请求的 PHP-fpm 已经执行, 但是由于某种原因而没有执行完毕, 最终导致 PHP-fpm 进程终止. 一般来说, 与 PHP-fpm.conf 的设置有关, 也与 PHP 的执行程序性能有关, 网站的访问量大, 而 PHP-CGI 的进程数偏少. 针对这种情况的 502 错误, 只需增加 PHP-CGI 的进程数. 具体就是修改 / usr/local/PHP/etc/PHP-fpm.conf 文件, 将其中的 max_children 值适当增加. 这个数据要依据你的服务器的配置进行设置. 一般一个 PHP-CGI 进程占 20M 内存, 你可以自己计算下, 适量增多.
/usr/local/PHP/sbin/PHP-fpm reload 然后重启一下.
c,504 表示超时, 也就是客户端所发出的请求没有到达网关, 请求没有到可以执行的 PHP-fpm. 与 nginx.conf 的配置也有关系.
501 服务器不具备完成请求的功能. 例如, 服务器无法识别请求方法时可能会返回此代码.
503 服务器目前无法使用 (由于超载或停机维护). 通常, 这只是暂时状态.(服务不可用)
505 服务器不支持请求中所用的 HTTP 协议版本.(HTTP 版本不受支持)
来源: http://www.bubuko.com/infodetail-3340406.html