Apache-2.2
如何將特定域的請求重定向到偵聽特定埠的特定 Web 應用程序?
我有 apache2 在埠 80 上執行,其他應用程序伺服器在 81 上執行。
我只想將一個特定的選定域 (mydomain.com) 的流量重定向到在埠 81 上執行的伺服器,並訪問這個網站,如http://mydomain.com/
我添加了 iptables 規則:
iptables -A PREROUTING -t nat -i eth0 -p tcp -d mydomain.com -j REDIRECT --to-port 81
但不幸的是,不僅這個選定的域已被重定向,而且在埠 80 和 apache2 上執行的所有其他網站都不應重定向到埠 81。
是否有任何解決方案可以僅將一個選定的域重定向到另一個埠?
任何幫助將不勝感激。
您可以使用NameVirtualHost指令和模組提供的附加 ProxyPass和ProxyPassReverse指令從 apache 配置它。
mod_proxy
這是一個基本配置。NameVirtualHost *:80 <VirtualHost *:80> ServerName mydomain.com DocumentRoot /var/www/mydomain ProxyPass / http://localhost:81/ ProxyPassReverse / http://localhost:81/ </VirtualHost> <VirtualHost *:80> ServerName www.mydomain2.com DocumentRoot /var/www/mydomain2 </VirtualHost>
iptables 看不到 HTTP 主機標頭。
您要做的是從 Apache 進行 HTTP 重定向(告訴客戶端查看
http://mydomain.com:81/
)或從 Apache 埠 80 反向代理到埠 81 應用程序(客戶端的 URL 不需要更改,但所有流量都會通過 Apache 傳遞,增加了額外的成本)。