我正在尝试将我的apache服务器配置为代理以提供两个内部服务,一个监听8080并且应该接收特定URL的流量,另一个监听8077并且应该接收所有其他http流量
我在运行这两个服务的同一台服务器上部署并配置了apache,它正在监听443以及所有SSL配置,并且工作正常
我也启用了proxy_module,proxy_http_module和proxy_http2_module
我想要实现的目标
如果请求的网址是/ 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 :(得分:14)
根据需要按正确的顺序放置ProxyPass规则
如果你想评估/ webhook1规则并将其发送到8080,否则将流量发送到8077,规则应按以下顺序
ProxyPass /webhook1 http://localhost:8080
ProxyPassReverse /webhook1 http://localhost:8080
ProxyPass / http://localhost:8077
ProxyPassReverse / http://localhost:8077
答案 1 :(得分:0)
您可以在/ etc / apache2 / sites-enabled /下编写ssl.conf文件,如下所示: -
RewriteEngine on
ProxyPass /webhook1 http://127.0.0.1:8080/
ProxyPassReverse /webhook1 http://127.0.0.1:8080/
RewriteRule ^/$ /webhook1/ [R,L]
RewriteEngine on
ProxyPass / http://127.0.0.1:8087/
ProxyPassReverse / http://127.0.0.1:8087/
RewriteRule ^/$ /EP2/ [R,L]
如果在apache2中配置了ssl证书,它将自动重定向到HTTPS。