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 版本不受支持)
参考资料
List of HTTP status codes - Wikipedia
服务器常见错误代码 500,501,502,503,504,505 - 面对疾风 - 博客园 https://www.cnblogs.com/harlanzhang/p/6196370.html
来源: http://www.mzh.ren/5xx-server-errors.html