欢迎来到云服务器

服务器租用

Nginx提示:500 Internal Server Error错误的办理要领

本文章来给各人总结了大量关于导致nginx中提示500 Internal Server Error错误的原因总结与办理要领阐明有需要相识的伴侣可参考参考

此刻越来越多的站点开始用 Nginx ,("engine x") 是一个高机能的 HTTP 和反向署理处事器,也是一个 IMAP/POP3/SMTP 署理处事器Nginx 是由 Igor Sysoev 为俄罗斯会见量第二的 Rambler.ru 站点开拓的,它已经在该站点运行高出两年半了。Igor 将源代码以类BSD许可证的形式宣布。

在高并发毗连的环境下,Nginx是Apache处事器不错的替代品。Nginx同时也可以作为7层负载平衡处事器来利用。按照测试功效,Nginx 0.6.31 + PHP 5.2.6 (FastCGI) 可以遭受3万以上的并发毗连数,相当于同等情况下Apache的10倍。

但许多人用 Nginx 的时候城市呈现 500 错误,华沙机房主机 荷兰主机,按照我利用的环境来看,很大一部门原因是 因为文件打开句柄太小有关。

在linux 下 利用这个呼吁增加历程打开的文件句柄。
ulimit -SHn 51200
默认只用1000 当链接数小的时候看不出来,利用这种处理惩罚要领可以有效防备500错误呈现。
本日会见网站的时候,偶然会赶上500 Internal Server Error的错误提示页面.
查了相关资料认为是会见过大,系统内核历程受限才呈现的.

谜底如下:

$ ulimit -n
11095

措施限制只能打开11095个文件,ulimit呼吁是配置当前用户一个历程可拥有的文件描写符的数量.
看来是模仿的并发数太多了,需要调解一下nginx.conf的并发配置数,(我的设置主机的内存2G,CPU为2.8G,)


vi /etc/nginx/nginx.conf
events {
worker_connections 1024;
}

调解为


events {
worker_connections 10240;
}

照旧会呈现上面问题,利用
[[email protected] nginx]# cat /proc/sys/fs/file-max
8192
文件系统最大可打开文件数
[[email protected] nginx]# ulimit -n
1024
措施限制只能打开1024个文件
利用[[email protected] nginx]# ulimit -n 8192调解一下
可能永久调解打开文件数 可在启动文件/etc/rc.d/rc.local末端添加(在/etc/sysctl.conf末端添加fs.file-max=8192)
ulimit -n 8192
调解CentOS5文件打开数
利用ulimit -a一下,发明OPEN FILES不能默认高出1024,昨天的在举办压力测试时,呈现500错误,详细请查察
nginx呈现 500 Internal Server Error
早上起来看一下,发明本来是通过如下方法调解
要领1 (永久调解)

vi /etc/security/limits.conf

在文件末加上:

* soft nofile 8192
* hard nofile 20480

同时vi /etc/sysctl.conf末端添加
fs.file-max=8192
从头启动,在利用ulimit -n查察的数已经是8192

要领2 (姑且用)

直接在终端输入 ulimit -n 8192 按回车就ok了

500 Internal Server Error错误增补:

1、硬盘空间满了

利用 df -k 查察硬盘空间是否满了。清理硬盘空间就可以办理500错误。nginx假如开启了access log,在不需要的环境下,最好封锁access log。access log会占用大量硬盘空间。

2、nginx设置文件错误

这里不是指语法错误,nginx假如设置文件有语法错误,启动的时候就会提示。当设置rewrite的时候,有些法则处理惩罚不妥会呈现500错误,请仔细查抄本身的rewrite法则。假如设置文件里有些变量配置不妥,也会呈现500错误,好比引用了一个没有值的变量。

3、假如上面的问题都不存在大概是模仿的并发数太多了,需要调解一下nginx.conf的并发配置数

办理要领是:

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日志都没有发明什么问题, 最后发明数据库会见不了,批改后问题办理.

腾讯云代理

Copyright © 2003-2021 MFISP.COM. 国外vps服务器租用 梦飞云服务器租用 版权所有 粤ICP备11019662号