500(服务器内部错误) 服务器遇到错误,没法完成请求。 501(还没有实施) 服务器不具有完成请求的功能。例如,当服务器没法识别请求方法时,服务器可能会返回此代码。 502(错误网关) 服务器做为网关或代理,从上游服务器收到了无效的响应。 503(服务不可用) 目前没法使用服务器(因为超载或进行停机维护)。一般,这只是一种暂时的状态。 504(网关超时) 服务器做为网关或代理,未及时从上游服务器接收请求。 505(HTTP 版本不受支持) 服务器不支持请求中所使用的 HTTP 协议版本。
Nginx 500错误(Internal Server Error 内部服务器错误):500错误指的是服务器内部错误,也就是服务器遇到意外状况,而没法履行请求。php
在高并发链接的状况下,Nginx是Apache服务器不错的替代品。Nginx同时也能够做为7层负载均衡服务器来使用。根据测试结果,Nginx 0.6.31 + PHP 5.2.6 (FastCGI) 能够承受3万以上的并发链接数,至关于同等环境下Apache的10倍。
但不少人用 Nginx 的时候都会出现 500 错误,根据我使用的状况来看,有如下几种状况。 html
一、是否磁盘空间不足?node
使用 df -k 查看硬盘空间是否满了。清理硬盘空间就能够解决500错误。nginx若是开启了access log,在不须要的状况下,最好关闭access log。access log会占用大量硬盘空间。nginx
二、nginx配置文件错误?数据库
这里不是指语法错误,nginx若是配置文件有语法错误,启动的时候就会提示。当配置rewrite的时候,有些规则处理不当会出现500错误,请仔细检查本身的rewrite规则。若是配置文件里有些变量设置不当,也会出现500错误,好比引用了一个没有值的变量。服务器
三、若是上面的问题都不存在多是模拟的并发数太多了,须要调整一下nginx.conf的并发设置数并发
四、还有就是Linux索引节点(inode)用满致使故障的,df -i 负载均衡
由索引节点(inode)爆满引起500问题http://www.cnblogs.com/hiit/p/8582942.html高并发
inode译成中文就是索引节点,每一个存储设备(例如硬盘)或存储设备的分区被格式化为文件系统后,应该有两部份,一部份是inode,另外一部份是Block,Block是用来存储数据用的。而inode呢,就是用来存储这些数据的信息,这些信息包括文件大小、属主、归属的用户组、读写权限等。inode为每一个文件进行信息索引,因此就有了inode的数值。操做系统根据指令,能经过inode值最快的找到相对应的文件。 而服务器的Block虽然还有剩余,但inode已经用满,所以在建立新目录或文件时,系统提示磁盘空间不足。php-fpm
通常分析思路:
(1)查看nginx error log ,查看php error log
nginx 错误日志 error.log 默认位置:/usr/local/nginx/logs
(2)若是是too many open files,修改nginx的worker_rlimit_nofile参数,使用ulimit查看系统打开文件限制,修改/etc/security/limits.conf
(3)若是是脚本的问题,则须要修复脚本错误,并优化代码
(4)各类优化都作好,仍是出现too many open files,那就要考虑作负载均衡,把流量分散到不一样服务器上去了。
解决方法是: 1 打开/etc/security/limits.conf文件,加上两句 复制代码代码以下: * soft nofile 65535 * hard nofile 65535 2 打开/etc/nginx/nginx.conf 在worker_processes的下面增长一行 复制代码代码以下: worker_rlimit_nofile 65535; 3 从新启动nginx,从新载入设置 复制代码代码以下: kill -9 `ps -ef | grep php | grep -v grep | awk '{print $2}'` /usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -C 100 -u www-data -f /usr/bin/php-cgi killall -HUP nginx 重启后再看nginx的错误日志,也没有发现500报错的状况了。 四、有多是数据库问题个人在nginx日志php日志都没有发现什么问题, 最后发现数据库访问不了,修正后问题解决。
若是按上述方法仍然解决不了问题,就多是配置或是程序有错误了。
1 查看nginx的错误日志,找到可能的缘由。
若是提示某些儿PHP扩展没有安装,则去php.ini中打开对应该的扩展或是安装对应该的扩展,重启nginx和php-fpm,再次刷新页面。
2 若是数据库链接有问题,也可能会出现500错误,不过日志中必定会体现的
在日志中提示相应的数据库链接有问题了,就要去查看数据库链接是否正确。根据日志,修改对应该的文件,数据库问题解决后,页面即恢复正常。