修复Nginx出现500 Internal Server Error的问题
1. 前言
在使用Nginx做IIS站点反向代理的时候, 遇到了500错误, 开启并查找日志后, 发现异常信息是: maximum number of descriptors supported by select() is 1024 while connecting to upstream。
2. 修复过程
- 
    刚开始以为是最大连接数的问题,修改后重新测试,发现只要频繁刷新还是会出现一样的问题, 并且,出现问题的时候, IIS站点运行正常,说明问题是出现在Nginx这台服务器上。 
- 
    之后想到, 因为Nginx是部署在Windows服务器上的, 是否是因为服务器文件句柄数据的限制的原因呢?最后查证后顺利解决了该问题。 
3. 修复方案
- 
    下载专门的nginx for windows版本,下载地址:http://nginx-win.ecsds.eu/download/, 下载最新的Unicorn版本即可。解压后,文件如下图所示:  
- 
    双击运行 TweakOptimize tcpip parameters for nginx connections.reg 文件,修改服务器文件句柄数据的限制。 
- 
    程序包里的nginx_basic.exe更名为nginx.exe,替换nginx.exe文件,之后运行即可。 
