
我目前有一個pfSense
防火牆,可將連接埠 80 和 443 重定向到內部 Apache,該內部 Apache 充當我們公司多個子網域的反向代理。
由於pfSense
透過 Squid3 提供反向代理,我想擺脫 Apache 伺服器並用它來路由所有內容pfSense
。
我目前的 Apache 配置是這樣的:
<VirtualHost *:80 *:443>
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
ServerName trac.mycompany.com
SSLProxyEngine on
SetEnv force-proxy-request-1.0 1
SetEnv proxy-nokeepalive 1
ProxyPreserveHost On
ProxyPass / https://trac.mycompany.com/
ProxyPassReverse / https://trac.mycompany.com/
ProxyVia on
</VirtualHost>
<VirtualHost *:80 *:443>
ServerName svn.mycompany.com
ProxyPass / http://svn.mycompany.com/
ProxyPassReverse / http://svn.mycompany.com/
ProxyVia On
</VirtualHost>
正如您所看到的,兩者都非常簡單。我知道使用帶有 HTTPS 和單一外部 IP 位址的虛擬主機會限制我使用自簽名證書,並且我知道其中的風險,但目前不在乎(我只想發送使用者名稱和密碼)加密)。
在 上pfSense
,我配置如下:
反向代理已開啟。兩者都在同一本地伺服器(192.168.0.26)上運行trac
。svn
問題是,當代理程式存取內部伺服器時,本機伺服器 Apache 總是嘗試為trac
子網域提供服務,而不是按名稱進行比對。
這是我可以使用 的反向代理模組完成的事情嗎pfSense
?我在這裡遺漏了一些明顯的東西嗎?
答案1
我知道這是一個遲到的回复,但遲到總比不到好:) 您現在可能已經解決了自己的問題,但如果您沒有...在運行相同NIC 的本地伺服器上創建一個輔助IP 地址,並在單獨的IP 上運行每個網站。
我不認為你可以透過相同的 IP 位址和連接埠為 2 個 https 網站提供服務,因為標頭會因加密而遺失,而且你總是會出現在主預設網站上。 2 個 http 站點可以,但 2 個 https 站點需要不同的連接埠或不同的 IP。