nginx - NginX 服务器关闭时会发生什么?
问题描述
想象一下,我们有一个运行在三个不同服务器上的 Web 应用程序。我们有一个 NginX 服务器,它有一个负载均衡器并将请求重定向到这三个服务器。
那么当 NginX 服务器不再运行时,请求会发生什么?他们是否重定向到其中一台服务器?如果不是,我们如何将它们重定向到其中一台服务器?
解决方案
如果其中一个负载平衡实例关闭,请求仍将路由到该服务器,因为 nginx 无法知道上游实例失败。您将获得502 Bad Gateway
三分之一的请求。
为避免关闭服务器收到请求,您可以使用 nginx 的健康检查。
NGINX 和 NGINX Plus 可以持续测试您的上游服务器,避免出现故障的服务器,并将恢复的服务器优雅地添加到负载均衡组中。
在您的应用程序中,如果实例正常,您可以有一个/health_check
以 200 状态代码响应的路径并使用此配置。
http {
upstream backend {
server backend1.example.com;
server backend2.example.com;
}
server {
location / {
proxy_pass http://backend;
health_check uri=/health_check;
}
}
}
推荐阅读
- php - 如何使日期(“W”)从星期日开始并在星期六结束?
- reactjs - React-Native:在单个 View 组件中居中两个文本组件
- rust - Cap'n Proto 如何处理千兆字节级别的数据发送?
- angular - 错误类型错误:无法在 Object.eval [as updateRenderer] 处读取 null 的属性“电话”
- c++ - ECS框架中如何更新组件数据并通知系统?
- go - 从golang中的参数调用const
- smartcard - 选择小程序后选择文件会取消选择小程序吗?
- c# - 如何从本地机器\软件中删除密钥?
- python - pyqtgraph:X轴作为时间
- webdriver - 使用 webdriver 导出的图像发生了变化