您当前的位置:网站首页>碎碎语>Nginx服务500:Internal Server Error原因排查

Nginx服务500:Internal Server Error原因排查

2022年11月15日 投稿作者:admin 围观人数:473
Nginx服务500:Internal Server Error原因排查

500(服务器内部错误) 服务器遇到错误,无法完成请求。501(尚未实施) 服务器不具备完成请求的功能。例如,当服务器无法识别请求方法时,服务器可能会返回此代码。502(错误网关) 服务器作为网关或代理,从上游服务器收到了无效的响应。503(服务不可用) 目前无法使用服务器(由于超载或进行停机维护)。通常,这只是一种暂时的状态。504(网关超时) 服务器作为网关或代理,未及时从上游服务器接收请求。505(HTTP 版本不受支持) 服务器不支持请求中所使用的 HTTP 协议版本。Nginx 500错误(Internal Server Error 内部服务器错误):500错误指的是服务器内部错误,也就是服务器遇到意外情况,而无法履行请求。

在高并发连接的情况下,Nginx是Apache服务器不错的替代品。Nginx同时也可以作为7层负载均衡服务器来使用。根据测试结果,Nginx 0.6.31 + PHP 5.2.6 (FastCGI) 可以承受3万以上的并发连接数,相当于同等环境下Apache的10倍。

但很多人用 Nginx 的时候都会出现 500 错误,根据我使用的情况来看,有以下几种情况。  

1、是否磁盘空间不足?

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

2、nginx配置文件错误?

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

3、如果上面的问题都不存在可能是模拟的并发数太多了,需要调整一下nginx.conf的并发设置数

4、还有就是Linux索引节点(inode)用满导致故障的,df -i

原因可能很多,我只记录我遇见的。

500,服务器内部错误,其实可能是代码层面引起的错误。

首先查看ngnix或者Apache错误日志,并查看错误日志,根据错误日志基本就能找到错误原因,或者google、百度一下错误日志。

其次可以查看框架的报错日志信息,比如laravel.log。

sudo find / -name '*.log' or cd /var/log/nginx/ && ls

Nginx服务500:Internal Server Error原因排查 [db:标签] 碎碎语  第1张

cat /var/log/nginx/newdns.com-error.log

Nginx服务500:Internal Server Error原因排查 [db:标签] 碎碎语  第2张

总结:我这次遇见的错误是因为我的mysql表没有`updated_at`, `created_at`字段,也没有在laravel框架模型中设置

public $timestamps = false; ,改写异常处理器 Exception 时写错了路径,导致mysql抛出的错误,框架异常处理处理不了,就跑到了服务器,导致服务器挂掉,我佛了。

标签

Nginx服务500:Internal Server Error原因排查
版权说明
免责声明:本文文章内容由技术导航发布,但不代表本站的观点和立场,具体内容可自行甄别.