Nginx服务器出现500错误的原因及解决方法

Nginx 500错误(Internal Server Error),主要指的是服务器内部错误,即服务器遇到意外情况,无法完成请求导致返回出错。那么出现Nginx 500错误有哪些原因导致的呢?该如何解决?下面一起来了解下。

Nginx 500错误

1、磁盘空间不足

使用 df -k 查看硬盘空间是否满了。如果是由于磁盘空间不足导致的,则可以清理硬盘空间解决500错误。Nginx如果开启了access log,在不需要的情况下,最好关闭access log。因为access log会占用大量硬盘空间。

2、Nginx配置文件错误

这里不是指语法错误,Nginx配置文件有语法错误,启动的时候就会提示。当配置rewrite的时候,有些规则处理不当会出现500错误,请仔细检查您的rewrite规则。如果配置文件里有些变量设置不当,也会出现500错误,比如引用了一个没有值的变量。

3、并发数太多

如果上面两种情况都不存在,那么500错误可能是由于模拟的并发数太多了,需要调整一下nginx.conf的并发设置数。

Nginx 500错误解决方法:

①查看nginx error log ,查看php error log

nginx 错误日志 error.log 默认位置:/usr/local/nginx/logs

②如果是too many open files,修改nginx的worker_rlimit_nofile参数,使用ulimit查看系统打开文件限制,修改/etc/security/limits.conf

③如果是脚本的问题,则需要修复脚本错误,优化代码。

④以上各种优化都做好了后,要是出现too many open files,那就要考虑做Nginx负载均衡,把流量分散到不同服务器上去了。

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报错的情况了。

4 有可能是数据库问题我的在nginx日志php日志都没有发现什么问题, 最后发现数据库访问不了,修正后问题解决。

其他常见的错误代码:

501(尚未实施) 服务器不具备完成请求的功能。例如,当服务器无法识别请求方法时,服务器可能会返回此代码。

502(错误网关) 服务器作为网关或代理,从上游服务器收到了无效的响应。

503(服务不可用) 目前无法使用服务器(由于超载或进行停机维护)。通常,这只是一种暂时的状态。

504(网关超时) 服务器作为网关或代理,未及时从上游服务器接收请求。

505(HTTP 版本不受支持) 服务器不支持请求中所使用的 HTTP 协议版本。

相关阅读:《Vultr主机安装配置Nginx教程

(本文由美国主机侦探原创,转载请注明!)

微信扫码加好友进群

主机优惠码及时掌握

QQ群号:164393063

主机优惠发布与交流

温馨提示:

1、本站部分图片来源于互联网,如有侵权请联系删除。QQ:800013301

2、本文评论没有专人回复,如果您有问题请到美国主机侦探论坛提问!

3、美国主机侦探免费为您提供美国主机购买咨询。

返回顶部