Mod-Rewrite

基於任意標頭的 Apache 反向代理邏輯

  • March 2, 2014

我在一個 natting fw 上執行 apache,它可以進行身份驗證、反向代理,並為後端的 2 個 webapps 提供一個 ssl 包裝器。這適用於基於請求的頂級目錄的虛擬主機和代理,例如https://example.com/app1/ <-> http://app1/app1/. (見圖1)

我想找到一種方法來根據請求中設置的任意標頭將請求代理回網路服務,例如,如果設置了標頭 web_service:coolwebservice,它會代理回 webservice:8000。這甚至可能嗎?

圖 1 [Apache:example.com:443 / FW / NAT]
|
┌------------------┬------------------┐
| | |
VVV
[app1:80 /app1/] [app2:8080 /app2/] [web_service:8000] 

是的,使用 mod_rewrite 絕對可以做到這一點,這樣的事情應該可以解決問題:

RewriteCond %{HTTP:web-service} coolwebservice
RewriteRule ^/(.*) http://web_service:8000/$1 [P,L]

有了%{HTTP:...}您,您可以檢查任意標題並據此做出決定。

引用自:https://serverfault.com/questions/535985