概述
NGINX是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。Nginx是由IgorSysoev为俄罗斯访问量第二的Rambler.ru站点开发的,它已经在该站点运行超过两年半了。Igor将源代码以类BSD许可证的形式发布。
在高并发连接的情况下,Nginx是Apache服务器不错的替代品。Nginx同时也可以作为7层负载均衡服务器来使用。
但很多人用Nginx的时候都会出现500错误,其中很大一部分原因是因为文件打开句柄太小有关。
在linux下使用这个命令增加进程打开的文件句柄。
ulimit-SHn51200
默认只用1000当链接数小的时候看不出来,使用这种处理方法可以有效防止500错误出现。
访问网站的时候,偶尔会遇上500InternalServerError的错误提示页面.
1、查了相关资料认为是访问过大,系统内核进程受限才出现的.
答案如下:
$ulimit-n11095
程序限制只能打开11095个文件,ulimit命令是设置当前用户一个进程可拥有的文件描述符的数量.。估计是模拟的并发数太多了,需要调整一下nginx.conf的并发设置数:
vi/etc/nginx/nginx.confevents{worker_connections1024;}
调整为:
events{worker_connections10240;}
2、调整文件系统最大可打开文件数
还是会出现上面问题,使用
#cat/proc/sys/fs/file-max8192
文件系统最大可打开文件数
#ulimit-n1024
程序限制只能打开1024个文件或者永久调整打开文件数
在启动文件/etc/rc.d/rc.local末尾添加(在/etc/sysctl.conf末尾添加fs.file-max=8192)
ulimit-n8192
3、最终解决方案
方法1(永久调整)
vi/etc/security/limits.conf
在文件末加上:
*softnofile8192*hardnofile20480
同时vi/etc/sysctl.conf末尾添加
fs.file-max=8192
重新启动,在使用ulimit-n查看的数已经是8192
方法2(临时用)
直接在终端输入ulimit-n8192按回车就ok了