本文章来给各人总结了大量关于导致nginx中提示500 Internal ServerError错误的原因总结与办理要领阐明有需要相识的伴侣可参考参考
此刻越来越多的站点开始用 Nginx ,("engine x") 是一个高机能的 HTTP 和反向署理处事器,也是一个IMAP/POP3/SMTP 署理处事器。 Nginx 是由 Igor Sysoev 为俄罗斯会见量第二的 Rambler.ru站点开拓的,它已经在该站点运行高出两年半了。Igor 将源代码以类BSD许可证的形式宣布。
序列号 | CPU | RAM | HDD | 带宽 | 售价(美元) | 免费试用 |
---|---|---|---|---|---|---|
香港服务器1 | E5-2620 | 32G | 1T HDD | 50M/无限流量 | $196.00 | 立即申请 |
香港服务器2 | E5-2650 | 32G | 1T HDD | 50M/无限流量 | $256.00 | 立即申请 |
香港服务器3 | E5-2680 | 32G | 1T HDD | 50M/无限流量 | $316.00 | 立即申请 |
香港服务器4 | E5-2690 | 32G | 1T HDD | 50M/无限流量 | $336.00 | 立即申请 |
香港服务器5 | E5-2697 | 32G | 1T HDD | 50M/无限流量 | $376.00 | 立即申请 |
香港服务器6 | E5-2620*2 | 32G | 1T HDD | 50M/无限流量 | $376.00 | 立即申请 |
香港服务器7 | E5-2650*2 | 32G | 1T HDD | 50M/无限流量 | $436.00 | 立即申请 |
香港服务器8 | E5-2680*2 | 32G | 1T HDD | 50M/无限流量 | $476.00 | 立即申请 |
香港服务器9 | E5-2690*2 | 32G | 1T HDD | 50M/无限流量 | $556.00 | 立即申请 |
香港服务器10 | E5-2697*2 | 32G | 1T HDD | 50M/无限流量 | $596.00 | 立即申请 |
香港服务器11 | E5-2680v4*2 | 32G | 1T HDD | 50M/无限流量 | $696.00 | 立即申请 |
香港服务器12 | E5-2698v4*2 | 32G | 1T HDD | 50M/无限流量 | $796.00 | 立即申请 |
在高并发毗连的环境下,Nginx是Apache处事器不错的替代品。Nginx同时也可以作为7层负载平衡处事器来利用。按照测试功效,Nginx0.6.31 + PHP 5.2.6 (FastCGI) 可以遭受3万以上的并发毗连数,相当于同等情况下Apache的10倍。
但许多人用 Nginx 的时候城市呈现 500 错误,华沙机房主机荷兰主机,按照我利用的环境来看,很大一部门原因是 因为文件打开句柄太小有关。
在linux 下 利用这个呼吁增加历程打开的文件句柄。ulimit -SHn 51200默认只用1000 当链接数小的时候看不出来,利用这种处理惩罚要领可以有效防备500错误呈现。本日会见网站的时候,偶然会赶上500 Internal Server Error的错误提示页面.查了相关资料认为是会见过大,系统内核历程受限才呈现的.
谜底如下:
$ ulimit -n11095
措施限制只能打开11095个文件,ulimit呼吁是配置当前用户一个历程可拥有的文件描写符的数量.看来是模仿的并发数太多了,需要调解一下nginx.conf的并发配置数,(我的设置主机的内存2G,CPU为2.8G,)
vi /etc/nginx/nginx.confevents {worker_connections 1024;}
调解为
events {worker_connections 10240;}
照旧会呈现上面问题,利用[[email protected] nginx]# cat /proc/sys/fs/file-max8192文件系统最大可打开文件数[[email protected] nginx]# ulimit -n1024措施限制只能打开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假如开启了accesslog,在不需要的环境下,最好封锁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-cgikillall -HUP nginx
重启后再看nginx的错误日志,也没有发明500报错的环境了。
4、有大概是数据库问题我的在nginx日志php日志都没有发明什么问题, 最后发明数据库会见不了,批改后问题办理.