Linux
在 Linux 上根據請求的 URL 將 HTTP(S) 流量路由到特定 IP
我在雲中有一個 Ubuntu 伺服器。我們稱之為ServerA。 ServerA安裝了 apache2,並為 HTTP 請求提供預設頁面。
mydomain.com
指向ServerA的 IP,因此預設ServerA的站點也可通過此域名獲得。ServerA安裝了 OpenVPN,並作為 VPN 網關供不同客戶端連接。
當ServerB作為 OpenVPN 客戶端連接到ServerA時,它會被分配到**ServerA的 OpenVPN 創建的 OpenVPN 網路中的本地 IP。
我設置
myotherdoamin.com
為指向同一個ServerA的 IP。我希望以這種方式配置ServerA,以便如果有 HTTP 請求mydomain.com
進入 - 它被路由到ServerA的 apache2 並提供本地站點。如果有請求myotherdomain.com
進入,我希望ServerA將請求路由到連接的ServerB的 HTTP 埠,從而返回 VPN 客戶端的 HTTP 響應。我的問題是:
- iptables 是否能夠基於 HTTP 請求標頭進行路由規則?
- apache2 是否能夠根據 HTTP 請求標頭將請求路由到其他 IP?
- 哪個應用程序最適合處理我想要的行為?
謝謝你。
iptables 是否能夠基於 HTTP 請求標頭路由規則?
不,這不對。IPTables 在第 3/4 層工作,HTTP 請求標頭在第 7 層。
apache2 是否能夠根據 HTTP 請求標頭將請求路由到其他 IP?
是的,使用mod_proxy,Apache 可以將這些請求代理到另一台伺服器。
哪個應用程序最適合處理我想要的行為?
如上所述,mod_proxy 可以為您工作,但任何其他可以在第 7 層執行的反向代理都可以解決問題。除了 Apache 的 mod_proxy,Nginx 和 HAproxy 可能是最常見的。