【发布时间】:2018-02-05 10:36:46
【问题描述】:
我正在尝试将我的 apache 服务器配置为代理以提供两个内部服务,一个在 8080 上侦听并应接收特定 URL 上的流量,另一个在 8077 上侦听并应接收所有其他 http 流量
我在运行这两个服务的同一台服务器上部署和配置了 apache,它正在侦听 443 以及所有 SSL 配置,并且工作正常
我还启用了 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 以满足我的要求方面的帮助
提前谢谢你
【问题讨论】:
-
应该可以,如果同时设置两个规则会发生什么?
-
当我添加第二个代理时,所有流量都转到第二个服务,所以 /webhook1 将被传递到 8077 而不是 8080
-
我刚刚弄清楚了影响 apache 如何执行它们的代理规则的顺序。我将根规则放在 /webhook1 规则之前,这就是为什么所有流量都流向第二个服务的原因。现在我将 webhook1 规则放在根规则之前,事情开始按预期工作。我不确定是否有更好的方法来配置服务器,但这看起来有点笨拙