如何使用 Node.js Express 强制 nginx proxy_next_upstream
How to force nginx proxy_next_upstream with Node.js Express?
我有一个通过nginx proxy_pass部署的Node.js Express服务器。我有两个平行守护进程在不同的端口上使用上游进行负载平衡。Express 服务器的初始化需要时间,因此我发送错误 500,直到它准备就绪。我希望nginx使用另一个上游服务器,直到第一个服务器准备就绪,反之亦然。
我尝试使用proxy_next_upstream,但它效果不佳。始终至少向用户显示一个错误 500。
也许原因隐藏在nginx doc的以下句子中:"应该记住,只有在尚未向客户端发送任何内容的情况下,才有可能将请求传递给下一个服务器。
以下是proxy_pass配置:
proxy_pass http://node_servers ;
proxy_set_header Host $http_host;
proxy_set_header x-forwarded-for $remote_addr;
proxy_read_timeout 60; proxy_connect_timeout 60;
这些是上游:
upstream node_servers {
server 127.0.0.1:12005;
server 127.0.0.1:12006;
}
这就是我从节点快递发送错误的方式:
res.status(500).send('The server is not ready yet!');
您必须将nginx配置为在收到"错误500"时使用下一个服务器。
默认情况下,nginx仅在"连接错误"和"超时"时使用下一个服务器,因此您必须调整配置:
proxy_next_upstream error timeout http_500;
"使用文档,卢克!"http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_next_upstream
相关文章:
- ES6生成器:.next()的输入值
- 使用next、prev按钮制作简单的jQuery图像滑块
- Redux中间件在next()之前更改状态
- jquery.proxy in the bootstrap-typeahead.js context
- 如何禁用FuelUX向导步骤1中的NEXT按钮
- 如何在ES Next中扩展静态属性
- Extjs:Ajax,Proxy,使用JSON和JQuery进行图表绘制
- .next() 未按预期工作
- 使用生成器函数 next() 作为 node.js 中的回调
- Node http-proxy-middleware 不能与本地服务器一起工作
- ExtJS Ajax POST vs Proxy POST
- 在解析到next之前减少所有JS Promises
- 尝试触发点击document.ready中Bigcommerce Classic Next主题中的产品选项
- 为什么使用 .next() 选择所有 li 项而不是一个
- Jquery:为新数据创建寻呼机(next-prev按钮)
- 使用jquery UI next按钮提交输入字段值,php将返回结果
- AJAX在数组循环中调用,只在上一次完成后调用next
- 带有prev和next的jquery自定义循环插件
- 带有next()调用的生成器函数
- Don'在IE中调用find next时,不要高亮显示Codemirror中的光标