Nginx - 将请求重定向到所有后端
问题描述:
我有5个后端服务器。我希望nginx将/ myapp/refresh的POST请求转发给所有5个后端服务器。对于任何其他请求,它可以进行负载平衡。这可能吗 ?你能给一个样品配置吗?Nginx - 将请求重定向到所有后端
答
您应该能够使用简单的配置使用nginx作为负载平衡器,如:
http {
upstream myproject {
server 127.0.0.1:8000 weight=3;
server 127.0.0.1:8001;
server 127.0.0.1:8002;
server 127.0.0.1:8003;
}
server {
listen 80;
server_name www.domain.com;
location/{
proxy_pass http://myproject;
}
}
}
文档: https://www.nginx.com/resources/admin-guide/load-balancer/
这应该航线包括POST请求的所有要求你提到。
答
我不知道准备好使用解决方案来做你想做的事情。
它可以在C或Lua中实现这样的行为。
您可能会开发nginx C模块,但这不是一个有着严重学习曲线的平凡任务。
您可以使用https://github.com/openresty/lua-nginx-module并使用诸如https://github.com/openresty/lua-nginx-module#ngxlocationcapture_multi之类的东西。
但是在这两种情况下,您应该实现某种逻辑何时以及您将发回哪个响应。
问题思考 - 如果后端之一超时或响应错误,您是否需要以200响应?
谢谢。但是我只想要特定的POST去所有的服务器......其他请求只能由一个后端服务器提供服务。上述配置是否像这样工作? – RDR