2017-08-28 72 views
1

我想配置我的apache服务器作为代理服务两个内部服务,一个在8080上侦听,应该接收特定URL上的流量,另一个在8077上侦听,并且应该接收所有其他http流量配置Apache与多个ProxyPass

我部署并在这两个服务运行在同一台服务器上配置Apache和它与所有的SSL配置一起听443,它是工作的罚款

也是我启用了proxy_module,proxy_http_module和proxy_http2_module

什么我想实现

如果请求的URL/webhook1 - >将它传递给EP1 http://localhost:8080和 任何其他请求的URL应该传递给EP2 http://localhost:8077

我目前的配置向第一服务现在

ProxyPass /webhook1 http://localhost:8080 
ProxyPassReverse /webhook1 http://localhost:8080 

我想定义另一个代理合格,如

ProxyPass/http://localhost:8077 
ProxyPassReverse/http://localhost:8077 

将两个配置放在一起不是工作,感谢您对如何配置Apache达到我的要求帮助

预先感谢您

+0

这应该工作,如果你把这两个规则究竟发生了什么? –

+0

当我添加第二个代理所有的流量去第二个服务,所以/ webhook1将被传递到8077而不是8080 –

+0

我只是想出了代理规则的顺序,影响了Apache如何执行它们。我在/ webhook1规则之前放置了根策略,这就是为什么所有流量都会发送到第二个服务。现在我把webhook1规则放在根规则之前,事情就像预期的那样开始工作。我不确定是否有更好的方法来配置服务器,但这看起来有点笨拙。 –

回答

2

把的ProxyPass规则以正确的顺序按要求

如果要评估/ webhook1规则和发送

它到8080,否则发送流量到8077规则应该是在以下顺序

ProxyPass /webhook1 http://localhost:8080 
ProxyPassReverse /webhook1 http://localhost:8080 
ProxyPass/http://localhost:8077 
ProxyPassReverse/http://localhost:8077 
+0

非常棒的答案!我有一个类似的情况下,这完美无缺 –

+0

@ KalyanPradhan很高兴帮助! –