服务器常见错误代码500、501、502、503、504、505
⼀: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/f,还是出现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进程终⽌。⼀般来说,与f的设置有关,也与php的执⾏程序性能有关,⽹站的访问量⼤,⽽php-cgi的进程数偏少。针对这种情况的502错误,只需增加            php-cgi的进程数。具体就是修改/usr/loca
l/php/f⽂件,将其中的max_children值适当增加。这个数据要依据你的服务器的配置进⾏设置。⼀般⼀个php-cgi进程占20M内存,你可以⾃⼰计算下,适量增多。
/usr/local/php/sbin/php-fpm reload 然后重启⼀下.
c、504 表⽰超时,也就是客户端所发出的请求没有到达⽹关,请求没有到可以执⾏的php-fpm。与f的配置也有关系。
501  服务器不具备完成请求的功能。例如,服务器⽆法识别请求⽅法时可能会返回此代码。
503  服务器⽬前⽆法使⽤(由于超载或停机维护)。通常,这只是暂时状态。(服务不可⽤)
505  服务器不⽀持请求中所⽤的 HTTP 协议版本。(HTTP 版本不受⽀持)
附:新增全部状态码含义
状态码分类
整体范围已定义范围分类
100~199    100~101    信息提⽰
200~299    200~206    成功
300~399    300~305    重定向
400~499    400~415    客户端错误
500~599    500~505    服务器错误
100(continue):说明收到了请求的初始部分,请客户端继续。
客户端发送⼀个携带值为100 Countinue的Expect请求⾸部,意味着客户端在发送实体前等待100 Continue响应。这是⼀种优化,客户端在避免向服务器发送⼀个⼤实体时,才使⽤。
101(Switching Protocols):说明服务器正在根据客户端的指定,将协议切换成Update⾸部所列的协议。
200(OK):请求没问题,实体的主体部分包含了所请求的资源。
201(Created):⽤于创建服务器对象的请求的响应(例如PUT)。实体主体部分包含各种引⽤了已创建的资源的URL。
202(Accepted):请求已被接受,但服务器还未对其执⾏任何动作,⽆法保证服务器会完成这个请求。
203(Non-Authoritative Information):实体⾸部包含的信息不是来⾃于源端服务器,⽽是来⾃资源的⼀份副本。
204(No Content):响应报⽂有状态⾏和⾸部,但没有实体的主体部分。
205(Reset Content):告知浏览器清除当前页⾯中的所有HTML表单元素。
206(Partial Content):成功执⾏了⼀个部分或Range(范围)请求。
重定向状态码要么告知客户端使⽤替代位置来访问他们所要访问的资源,要么提供⼀个替代的响应⽽不是资源的内容。
资源被移动的情况下,发送⼀个重定向状态码和⼀个可选的Location⾸部告知客户端资源已被移动,并且可以在哪⾥到。
300(Multiple Choices):客户端请求⼀个实际指向多个资源的URL时会返回这个状态码。
301(Moved Permanently):请求的URL已经被移除,响应中Location⾸部包含资源现所处的URL。
当前页面脚本发生错误
302(Found):与301类似,但是客户端应该⽤Location⾸部的URL来临时定位资源,将来的请求仍⽤⽼的URL。
303(See Other):告知客户端应该⽤另⼀个URL来获取资源,新URL位于Location⾸部,允许POST请求的响应将客户端定向到某个资源上去。
304(Not Modified):客户端可以通过所包含的请求⾸部,使其变成有条件的。
305(Use Proxy):说明必须通过⼀个代理来访问资源,代理位置由Location⾸部给出。
306(未使⽤)
307(Temporary Redirect):和302⼀样。
400(Bad Request):⽤于告知客户端它发送了⼀个错误的请求。
401(Unauthorized):与适当的⾸部⼀起返回,在这些⾸部中请求客户端在获取对资源的访问权之前,对⾃⼰进⾏认证。
402(Payment Required):保留状态码,未来之⽤。
403(Forbidden):说明请求被访问权拒绝。拒绝原因可能在实体的主体部分。
404(Not Found):服务器⽆法到所请求的URL。
405(Method Not Allowed):发起请求中带有所请求的URL不⽀持的⽅法。响应中有Allow⾸部,告知客户端对所请求的资源可以⽤哪些⽅法。
406(Not Acceptable):客户端可以通过参数说明它们接受什么类型的实体,服务器没有和客户端可接受的URL相匹配的资源时⽤此代码。
407(Proxy Authentication Required):和401相似,但⽤于要求对资源进⾏认证的代理服务器。
408(Request Timeout):如果完成请求所花时间太长,服务器可以返回此状态码。
409(Confict):说明请求可能在资源上引发的⼀些冲突。
410(Gone):与404类似,只是服务器之前有过此资源。
411(Length Required):服务器要求在请求报⽂中包含Content-Length⾸部。
412(Precondition Failed):客户端发起了条件请求,且其中⼀个条件失败了。
413(Request Entity Too Large):实体主体部分过⼤。
414(Request URI Too Long):URL⽐服务器能处理的长。
415(Unsupport Media Type):⽆法理解或⽆法⽀持客户端所发实体的内容类型。
416(Requested Range Not Satisfiable):请求报⽂请求的是指定资源的某个范围,⽽此范围⽆效或⽆法满⾜。
417(Expectation Failed):请求的Expect请求⾸部包含⼀个期望,但服务器⽆法满⾜此期望。
500(Internal Server Error):服务器遇到⼀个妨碍它为请求提供服务的错误。
501(Not Implemented):客户端发起的请求超出服务器的能⼒范围。
502(Bad Gateway):作为代理或⽹关使⽤的服务器从请求响应链的下⼀条链路上收到了⼀条伪响应。
503(Service Unavailable):说明服务器现在⽆法为请求提供服务,将来可以。
504(Gateway Timeout):与408相似。
505(HTTP Version Not Support):服务器收到的请求使⽤了它⽆法或不愿意⽀持的协议版本。