查看nginx日志,有一个[warn]: 3660#0: 20000 worker_connections are more than open file resource limit: 1024 !!
大概的意思就是: 20000并发连接已经超过了打开文件的资源限制:1024!
原来安装好nginx之后,默认最大的并发数(worker_connections)为1024,如果你的网站访问量过大,已经远远超过1024这个并发数,那你就要修改worker_connections和worker_rlimit_nofile这个值 ,值越大,并发数也有就大。
当然,你一定要按照你自己的实际情况而定,也不能设置太大,不能让你的CPU跑满100%。
打开配置文件在"event"这行上面添加这一行:
worker_rlimit_nofile 65535;
通过 ulimit -n 查看服务器可以打开文件的最大数目
注意:设置了worker_rlimit_nofile,修改worker_connections值时,是不能超过worker_rlimit_nofile的值,不然又会有前面的那个warn提示。
保存配置文件,重启nginx。
查看相关资料,生产环境中worker_connections 建议值最好超过9000,计划将一台nginx 设置为10240,再观察一段时间。
[root@web01 conf]# cat /application/nginx/conf/nginx.conf
worker_processes 2;
error_log logs/error.log;
#配置Nginx worker进程最大打开文件数
worker_rlimit_nofile 65535; #添加的
user www www;
events {
#单个进程允许的客户端最大连接数
worker_connections 10240;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
#访问日志配置
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
#虚拟主机
include /application/nginx/conf/extra/www.conf;
include /application/nginx/conf/extra/blog.conf;
include /application/nginx/conf/extra/bbs.conf;
include /application/nginx/conf/extra/edu.conf;
include /application/nginx/conf/extra/phpmyadmin.conf;
include /application/nginx/conf/extra/status.conf;
#隐藏版本号
server_tokens on;
}