现在越来越多的站点开始用Nginx,("enginex")是一个高性能的HTTP和反向代理服务器。也是一个IMAP/POP3/SMTP代理服务器。Nginx是由IgorSysoev为俄罗斯访问量第二的Rambler.ru站点开发的。它已经在该站点运行超过两年半了。Igor将源代码以类BSD许可证的形式发布。
在高并发连接的情况下。Nginx是Apache服务器不错的替代品。Nginx同时也可以作为7层负载均衡服务器来使用。根据测试结果。Nginx0.6.31+PHP5.2.6(FastCGI)可以承受3万以上的并发连接数。相当于同等环境下Apache的10倍。
但很多人用Nginx的时候都会出现500错误。根据我使用的情况来看。很大一部分原因是因为文件打开句柄太小有关。
在linux下使用这个命令增加进程打开的文件句柄。
ulimit-SHn51200
默认只用1000当链接数小的时候看不出来。使用这种处理方法可以有效防止500错误出现。
今天访问网站的时候,偶尔会遇上500InternalServerError的错误提示页面.
查了相关资料认为是访问过大,系统内核进程受限才出现的.
答案如下:
$ulimit-n
11095
程序限制只能打开11095个文件,ulimit命令是设置当前用户一个进程可拥有的文件描述符的数量.
看来是模拟的并发数太多了。需要调整一下nginx.conf的并发设置数。(我的配置主机的内存2G,CPU为2.8G,)
调整为
还是会出现上面问题。使用
[root@qimutiannginx]#cat/proc/sys/fs/file-max
8192
文件系统最大可打开文件数
[root@qimutiannginx]#ulimit-n
1024
程序限制只能打开1024个文件
使用[root@qimutiannginx]#ulimit-n8192调整一下
或者永久调整打开文件数可在启动文件/etc/rc.d/rc.local末尾添加(在/etc/sysctl.conf末尾添加fs.file-max=8192)
ulimit-n8192
调整CentOS5文件打开数
使用ulimit-a一下。发现OPENFILES不能默认超过1024。昨天的在进行压力测试时。出现500错误。具体请查看
nginx出现500InternalServerError
早上起来看一下。发现原来是通过如下方式调整
方法1(永久调整)
vi/etc/security/limits.conf
在文件末加上:
*softnofile8192
*hardnofile20480
同时vi/etc/sysctl.conf末尾添加
fs.file-max=8192
重新启动。在使用ulimit-n查看的数已经是8192
方法2(临时用)
直接在终端输入ulimit-n8192按回车就ok了
500InternalServerError错误补充:
1、硬盘空间满了
使用df-k查看硬盘空间是否满了。清理硬盘空间就可以解决500错误。nginx如果开启了accesslog。在不需要的情况下。最好关闭accesslog。accesslog会占用大量硬盘空间。
2、nginx配置文件错误
这里不是指语法错误。nginx如果配置文件有语法错误。启动的时候就会提示。当配置rewrite的时候。有些规则处理不当会出现500错误。请仔细检查自己的rewrite规则。如果配置文件里有些变量设置不当。也会出现500错误。比如引用了一个没有值的变量。
3、如果上面的问题都不存在可能是模拟的并发数太多了。需要调整一下nginx.conf的并发设置数
解决方法是:
1打开/etc/security/limits.conf文件。加上两句
2打开/etc/nginx/nginx.conf
在worker_processes的下面增加一行
worker_rlimit_nofile65535;
3重新启动nginx。重新载入设置
重启后再看nginx的错误日志。也没有发现500报错的情况了。
4、有可能是数据库问题我的在nginx日志php日志都没有发现什么问题,最后发现数据库访问不了。修正后问题解决。
本文地址:https://gpu.xuandashi.com/6489.html,转载请说明来源于:渲大师
声明:本站部分内容来自网络,如无特殊说明或标注,均为本站原创发布。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。分享目的仅供大家学习与参考,不代表本站立场!