Apache-2.2
Apache 代理設置
我有一個場景如下:
我有一個帶有 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 :在子句中使用完整的站點 URL
Redirect
或使用 mod_rewrite 進行動態重定向。