Apache-2.2

Apache 代理設置

  • April 4, 2013

我有一個場景如下:

我有一個帶有 DNS 條目的 URL,比如http://example.com 當使用者輸入時http://example.com/portal,他登陸 Apache (2.2) Web 伺服器(比如 AWS 1)。我有一個 VirtualHost 條目,它將請求代理到在 LAN 上執行的另一個 Apache Web 伺服器(比如 AWS 2),比如192.168.1.1使用反向代理的 IP。然後,Apache Web 伺服器192.168.1.1使用反向代理將請求轉發到 JBoss 應用程序伺服器。

這樣做時,結果頁面的 URL 將更改為 LAN IP https:\\192.168.1.2\portal

我希望原始 URL 完好無損,因為外部使用者的系統不知道是什麼192.168.1.2

這是我的第一個問題。如果它不是不言自明的,請耐心等待。

以下是來自 AWS 1 的 vhost 文件片段:

<VirtualHost 192.168.10.179:80>
 ServerAdmin admin@example.com
 DocumentRoot "D:/Program Files/Apache Software Foundation/Apache2.2/htdocs"
 ServerName example
 ServerAlias example
 ErrorLog "logs/example-error.log"

 # use always https
 Redirect pernament / https://example.com/
</VirtualHost>

以下是 AWS 1 的 ssl 文件的片段(它不是完整的配置):

<VirtualHost 192.168.10.179:443>
 ServerAdmin admin@example.com
 DocumentRoot "D:/Program Files/Apache Software Foundation/Apache2.2/htdocs"
 ServerName example
 ServerAlias example
 ErrorLog "logs/example-ssl-error.log"

 ProxyRequests Off
 ProxyPreserveHost On

 ProxyPass / http://192.168.1.1/
 ProxyPassReverse / http://192.168.1.1/
</VirtualHost>

下面是來自 AWS 2 的 vhost 文件的程式碼片段:

<VirtualHost 192.168.1.1:80>
 ServerAdmin admin@example.com
 DocumentRoot "D:/Program Files/Apache Software Foundation/Apache2.2/htdocs"
 ServerName aws2
 ServerAlias aws2
 ErrorLog "logs/aws2.log"

 # use always https
 Redirect pernament / https://192.168.1.1/
</VirtualHost>

以下是 AWS 2 的 ssl 文件的片段(它不是完整的配置):

<VirtualHost 192.168.1.1:443>
ServerAdmin admin@example.com
DocumentRoot "D:/Program Files/Apache Software Foundation/Apache2.2/htdocs"
ServerName aws2
ServerAlias aws2
ErrorLog "logs/aws2-ssl-error.log"

ProxyRequests Off
ProxyPreserveHost On

ProxyPass / http://192.168.1.2/   #This is where JBoss is running
ProxyPassReverse / http://192.168.1.2/
</VirtualHost>

當您在 AWS2 上啟用 https:// 時,為什麼要再次將 http:// 從 AWS1 重定向到 AWS2?將 AWS1 中的 ProxyPass 和 ProxyReverse 設置更改為 https://。

Redirect permanent不應引用內部 IP,而是在瀏覽器中完成重定向時站點的完整實際 URL :

在子句中使用完整的站點 URLRedirect或使用 mod_rewrite 進行動態重定向。

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