目标:站起来服务将接受请求使用nginx将请求代理到两个不同的服务?
http://foo.com/a
和转身代理该请求将两种不同的服务
http://bar.com/b
http://baz.com/c
的背景是,我使用的是服务,可以通过接受发布请求与其他第三方服务集成,然后通过发布到URL将事件回调发布到该第三方服务。麻烦的是,它只支持配置中的单个URL,因此以这种方式集成多个服务变得不可能。
我已经研究过其他服务,如webhooks.io(waaaay对于中等流量而言过于昂贵)和reflector.io(测试版 - 以适量的流量摔倒),但到目前为止没有任何东西符合我的需求。所以我开始为自己的服务而努力,我希望尽可能的放手。感觉就像nginx的应该是能够做到这一点......
我碰到下面的代码片段,其别人归类为一个错误,但感觉就像我想要的东西开始:
upstream apache {
server 1.2.3.4;
server 5.6.7.8;
}
...
location/{
proxy_pass http://apache;
}
而不是轮询请求到Apache,这显然会发送相同的请求到这两个Apache服务器,这听起来很有希望。麻烦的是,它将它发送到两台服务器上的相同路径。在我的情况下,这两种服务将具有不同的路径(/ b和/ c),并且它们与入站请求(/ a)路径都不相同(/ a)
因此...任何指定每个服务器在上游配置,还是其他一些聪明的方式做到这一点?
不错!这做了我想要做的事情,不幸的是,我之前找到的上游作品似乎并未传播请求。它看起来像循环它们,因为只有其中一个获得请求。不知道这是否是一个关闭的bug。 – Gatos