【发布时间】:2019-09-13 08:36:59
【问题描述】:
我有一个具有三个端点的 Node 应用程序。
在前面,我有一个 Nginx 代理来平衡对 5 个应用程序实例的请求。
Nginx 设置为将三个不同的域代理到三个端点中的每一个。
我在 Nginx 上丢弃了很多错误请求:
upstream prematurely closed connection while reading response header from upstream
upstream server temporarily disabled while reading response header from upstream
我正在使用 PM2 运行 Node 应用程序。所有错误日志都是空的,我可以从正常运行时间中看到应用程序没有重新启动或失败。
这是我的 Nginx 配置:
upstream nodes {
server xx.xx.xx.xx:3000;
... 5 instances
}
server {
listen 443 ssl;
server_name api.service1.io;
location / {
proxy_pass http://nodes/service1;
proxy_http_version 1.1;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
... ssl config
}
server {
listen 443 ssl;
server_name api.service2.io;
location / {
proxy_pass http://nodes/service2;
... same as above
}
}
server {
listen 443 ssl;
server_name api.service3.io;
location / {
proxy_pass http://nodes/service3;
... same as above
}
}
服务每天运行大约 100 万个请求,但应用服务器根本没有推送。
【问题讨论】: