Apache-2.2

如何將請求從一個 apache 伺服器傳遞到另一個

  • July 23, 2014

我有兩個啟用了 mod_proxy 的 Apache 伺服器。我想知道如何使用相同的埠(80)將請求從“Apache Server A”“傳遞”到“Apache Server B”。

在具有內部 IP 的“伺服器 A”中:192.168.0.5 我已經配置了 DNS,並且我也將它用作我的郵件伺服器。

在具有內部 IP 的“伺服器 B”中:192.168.0.10 我有自己的雲伺服器。

今天,當我訪問 www.mydomain.comwww.mydomain.com/webmail 時,一切正常,因為內容都在“伺服器 A”中,我需要的是當有人嘗試訪問 owncloud.mydomain.com 時,他們可以訪問我的伺服器 B沒有將它們重定向到像owncloud.mydomain.com:81這樣的另一個埠,我只想使用埠80。

實際上我得到了一個重定向循環,因為當我嘗試重定向時,我猜“SERVER A”自己收到了相同的請求。我已經將我的虛擬主機設置在同一個“伺服器 A”中,我想要使用相同的埠和 URL(owncloud.mydomain.com)“重定向”到另一台伺服器。

我不想使用另一個埠重定向。

你會想在伺服器 A 上做這樣的事情:

NameVirtualHost *
<VirtualHost *>
   ServerName owncloud.mydomain.com

   ProxyRequests Off
   <Proxy *>
       Order deny,allow
       Allow from all
   </Proxy>

   ProxyPass / http://192.168.0.10:80/
   ProxyPassReverse / http://192.168.0.10:80/
   <Location />
       Order allow,deny
       Allow from all
   </Location>
</VirtualHost>

根據您的應用程序,您可能需要使用以下一項或全部:

  • X-Forwarded-For - 客戶端的 IP 地址。
  • X-Forwarded-Host - 客戶端在 Host HTTP 請求標頭中請求的原始主機。
  • X-Forwarded-Server - 代理伺服器的主機名。

查看mod_proxy 文件以獲取更多提示和技巧。

參考

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