Window版本nginx修改文件访问句柄数被限制,解决大并发量访问时无法响应问题

目录

一、问题背景

二、问题分析

三、解决办法

四、查看nginx连接状态


一、问题背景

Windows版本因为文件访问句柄数被限制为1024了,当大并发量访问时就会无法响应。会有如下错误提示:maximum number of descriptors supported by select() is 1024 while connecting to upstream。

或者1024 worker_connections are not enough报错。

二、问题分析

其实windows版本修改worker_connections以及worker_rlimit_nofile 参数都是没有任何卵用,因为nginx官网只是将windows版本作为测试使用,在编译的时候文件访问句柄数被限制为1024,无法通过修改配置参数解决,我们只能使用针对windows重新编译的版本。使用已经编译好的,修改过--with-cc-opt=-DFD_SETSIZE=1024参数的二进制程序。

通过nginx -V 我们可以看到当前--with-cc-opt=-DFD_SETSIZE=1024参数的限制1024的

三、解决办法

自己重新编译,或者 推荐使用http://nginx-win.ecsds.eu/download/ 。

1.选择一个最新的版本进行下载

2.将zip包上传到服务器上、解压

3.在服务器上执行注册表程序

 

4.将nginx_basic.exe拷贝原nginx安装目录下

5.关闭原来的nginx进程

在nginx.exe目录中,shift + 右键,点击“在此处打开cmd” 登录到cmd中,执行nginx -s stop停止nginx程序.

6.备份原来的nginx.exe程序

将名字修改为nginx_bak.exe

7.将nginx_basic.exe修改名字为nginx.exe

8.启动nginx的服务

在nginx.exe目录中,shift + 右键,点击“在此处打开cmd”

登录到cmd中,执行start nginx 启动nginx程序

这样就可以了,就完成了nginx程序的替换,最新的nginx.exe程序,使用的就是最新的参数进行编译的。

通过nginx -V查看限制参数

nginx版本是1.25.4.1,最新文件描述符限制--with-cc-opt=-DFD_SETSIZE=32768突破了1024限制

四、查看nginx连接状态

修改前(无限接近于上限1024,所以部分连接会报错)

修改前(突破限制,直接起飞)

猜你喜欢

转载自blog.csdn.net/gmaaa123/article/details/140607994