公司项目运行一段时间就发现网页打不开,重启nginx就好了,经过排查是因为nginx的最大连接数限制导致的
技术博客 http://idea.coderyj.com/
1.设置服务器最大打开文件数 65535
vim /etc/security/limits.conf
# 在最下面加入
* soft nofile 65535
* hard nofile 65535
注意:* 要加到文件里面,以上在limits.conf文件中添加的两句话的含义是
soft(应用软件)级别限制的最大可打开文件数的限制
hard表示操作系统级别限制的最大可打开文件数的限制,
*表示所有用户都生效。
- 保存文件后不会马上生效。需要使用以下命令
ulimit -n 65535
- 查看是否设置成功
ulimit -a
2.更改Nginx“进程最大可打开文件数”的设置, 打开nginx.conf配合worker_rlimit_nofile属性。
# 根据cpu核数自动创建work进程
worker_processes auto;
events {
# 使用epoll模型
use epoll;
# 尽可能多的接受连接
multi_accept on;
# 单个worker进程最大打开的连接数
worker_connections 150000;
}
3. 验证Nginx“进程最大可打开文件数”是否起作用
ps -aux|grep nginx
4.其中Max open files 的Soft Limit和Hard Limit已经设置成了 65535
#充当服务器时Nginx可同时承载的连接数量,是最大工作线程*每个线程允许的连接数量
max_client = worker_processes * worker_connections
#充当反向代理服务时,可同时承载的连接数量是最大工作线程*每个线程允许的连接数量/4
#(4)代表:浏览器会建立两条连接到Nginx,Nginx也会建立两条连接到后端服务器。这样就是4条了。
max_client = worker_processes * worker_connections/4