查看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; }