我在 natting fw 上運行 apache,它可以進行身份驗證、反向代理,並為後端的 2 個 web 應用程式提供 ssl 包裝器。這適用於虛擬主機,並根據請求的頂級目錄進行代理,例如https://example.com/app1/ <-> http://app1/app1/
。 (見圖1)
我想找到一種方法,根據請求中設定的任意標頭將請求代理回 Web 服務,例如,如果設定了標頭 web_service:coolwebservice,它將代理回 webservice:8000。這可能嗎?
圖1 [Apache:example.com:443 / FW / NAT] | ┌--------------------┬------------------┐ | | | 維維維 [app1:80 /app1/] [app2:8080 /app2/] [web_service:8000]
答案1
是的,這對 mod_rewrite 來說絕對是可能的,像這樣的東西應該可以解決問題:
RewriteCond %{HTTP:web-service} coolwebservice
RewriteRule ^/(.*) http://web_service:8000/$1 [P,L]
您%{HTTP:...}
可以檢查任意標頭並據此做出決定。