2017-02-13 116 views
1

我有5个后端服务器。我希望nginx将/ myapp/refresh的POST请求转发给所有5个后端服务器。对于任何其他请求,它可以进行负载平衡。这可能吗 ?你能给一个样品配置吗?Nginx - 将请求重定向到所有后端

回答

0

您应该能够使用简单的配置使用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请求的所有要求你提到。

+0

谢谢。但是我只想要特定的POST去所有的服务器......其他请求只能由一个后端服务器提供服务。上述配置是否像这样工作? – RDR

0

我不知道准备好使用解决方案来做你想做的事情。

它可以在C或Lua中实现这样的行为。

您可能会开发nginx C模块,但这不是一个有着严重学习曲线的平凡任务。

您可以使用https://github.com/openresty/lua-nginx-module并使用诸如https://github.com/openresty/lua-nginx-module#ngxlocationcapture_multi之类的东西。

但是在这两种情况下,您应该实现某种逻辑何时以及您将发回哪个响应。

问题思考 - 如果后端之一超时或响应错误,您是否需要以200响应?

相关问题