2017-08-28 73 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很高興幫助! –