现在越来越多的站点开始用 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 65535

默认只用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 65535;



}还是会出现上面问题,使用
[root@qimutian nginx]# cat /proc/sys/fs/file-max
8192
文件系统最大可打开文件数
[root@qimutian nginx]# ulimit -n
1024
程序限制只能打开1024个文件
使用[root@qimutian 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          65535 
     
 *                hard   nofile          65535 
     
    

      同时vi /etc/sysctl.conf末尾添加 
    
 
    

      fs.file-max=65535



重新启动,在使用ulimit -n查看的数已经是8192



方法2 (临时用)



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


转载于:https://blog.51cto.com/webteam/1070757