1. 前言

在使用Nginx做IIS站点反向代理的时候, 遇到了500错误, 开启并查找日志后, 发现异常信息是: maximum number of descriptors supported by select() is 1024 while connecting to upstream

2. 修复过程

  1. 刚开始以为是最大连接数的问题,修改后重新测试,发现只要频繁刷新还是会出现一样的问题, 并且,出现问题的时候, IIS站点运行正常,说明问题是出现在Nginx这台服务器上。

  2. 之后想到, 因为Nginx是部署在Windows服务器上的, 是否是因为服务器文件句柄数据的限制的原因呢?最后查证后顺利解决了该问题。

3. 修复方案

  1. 下载专门的nginx for windows版本,下载地址:http://nginx-win.ecsds.eu/download/, 下载最新的Unicorn版本即可。解压后,文件如下图所示: 文件解压图片

  2. 双击运行 TweakOptimize tcpip parameters for nginx connections.reg 文件,修改服务器文件句柄数据的限制。

  3. 程序包里的nginx_basic.exe更名为nginx.exe,替换nginx.exe文件,之后运行即可。