Apache-2.2

如何將特定域的請求重定向到偵聽特定埠的特定 Web 應用程序?

  • December 3, 2011

我有 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指令和模組提供的附加 ProxyPassProxyPassReverse指令從 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 傳遞,增加了額外的成本)。

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