[英]Apache: proxy to unix socket named in URL
我正在構建一個設置,其中一個主機運行一堆Docker容器來測試不同的代碼分支,我想訪問容器中正在運行的webserver。
所有容器都在host
運行。 每個容器通過主機上的unix套接字提供Web應用程序,例如/var/sockets/<socket_name>
。
我想要的是host
上的apache基於url代理容器,這樣當我GET https://<host>.com/<socket_name>/my_url
,apache代理<socket_name>
請求: GET https://<host>.com/my_url
。 也就是說,它識別url中的套接字名稱,重寫url並將其發送到該套接字。
這可能嗎? 我仍在閱讀文檔,但似乎找不到任何提示
基於網上的各種文檔,其思想是分兩步包含mod_proxy
和mod_rewrite
,即URL應被處理以提取套接字名稱並在沒有該部分的情況下進行重寫,並且代理應基於新的(縮短的) )URL和套接字名稱。
這里是如何可能看起來像:
RewriteEngine On
RewriteRule /(.*)/(.*) http://%{HTTP_HOST}/$2 [P]
ProxyPass / unix:/var/sockets/$1.sock|http://%{HTTP_HOST}/
ProxyPassReverse / unix:/var/sockets/$1.sock|http://%{HTTP_HOST}/
我將我的建議提交給(.*)
表達式,這些表達式將提取感興趣的兩個參數。 然后我們重寫URL,並通過P
標志表示結果將傳遞給代理。 后來我們指定兩個相同ProxyPass
和ProxyPassReverse
並指定Unix套接字路徑,管|
分隔符和主機基地址。
我希望這可以起作用,或者至少給你一些我們要尋找的草圖。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.