Nginx For Windows 建议使用
项目中有一个 API 服务,对客户端通信进行支持,大概 1w 客户端,每分钟都会进行通信。
高峰期的时候服务负载较高,为了防止服务宕机,影响用户,所以增加 Nginx 进行负载。
之前在 Linux 中使用 Nginx 并没有什么异常,现在的服务在 Windows Server 服务器上,所以就找 Nginx For Windows 的版本试一试。
nginx.conf 完整配置(负载均衡)如下:
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024000;
}
http {
upstream as_server {
server 127.0.0.1:8901;
server 127.0.0.1:8902;
}
server {
listen 8099;
server_name localhost;
location / {
proxy_pass http://as_server;
}
}
}
运行之后没一会,服务就不响应了,查看错误日志(logs\error.log)之后,发现提示 worker_connections 超出最大值了,但是配置文件里明确配置的 1024000 ,看配置不应该出现此问题。
2019/07/16 21:28:49 [error] 13052#6092: *5451 maximum number of descriptors supported by select() is 1024 while waiting for request, client: 10.73.60.48, server: 0.0.0.0:8099
2019/07/16 21:28:49 [error] 13052#6092: *5454 maximum number of descriptors supported by select() is 1024 while waiting for request, client: 10.72.160.163, server: 0.0.0.0:8099
多番查询后,发现 nginx for windows nginx-1.17.1 版本的 worker_connections 配置是编译在软件里了,如果要改需要重新编译。
访问以下网址,可查看信息:
以下是最新版本下载地址: