Apache-2.2
如何在同一個 Apache 2.2 伺服器上擁有兩個虛擬主機
我有一個 Apache 2.2 伺服器,上面有一個現有的虛擬主機 (foo.com),它代理到內部伺服器。
我已經添加了另一個虛擬主機(bar.com),我想代理到不同的內部伺服器。
我的 vhost.conf 文件看起來像這樣(減去一些評論和匿名化):
# START <VirtualHost *:80> ProxyPreserveHost On ProxyPass / http://foointernal:80/ ProxyPassReverse / http://foointernal:80/ DocumentRoot "E:/Apache/htdocs/foo/" ServerName foo.com ServerAlias foo.com ServerAdmin me@mydomain.com ErrorLog "E:/Apache/logs/foo_error.log" TransferLog "E:/Apache/logs/foo_ccess.log" </VirtualHost> <VirtualHost *:80> ProxyPreserveHost On ProxyPass / http://barinternal:80/ ProxyPassReverse / http://barinternal:80/ DocumentRoot "E:/Apache/htdocs/bar/" ServerName bar.com ServerAlias bar.com ServerAdmin me@mydomain.com ErrorLog "E:/Apache/logs/bar_error.log" TransferLog "E:/Apache/logs/bar_access.log" </VirtualHost> # END
當我在瀏覽器中打開http://foo.com時,一切正常。我得到了我期望的內部伺服器等。
當我在瀏覽器中打開http://bar.com時,我得到了 foo.com 使用的內部伺服器
它似乎與 Proxy 部分沒有任何關係,因為當我註釋掉 Proxy* 行
foo
並且bar
DocumentRoot 仍然交叉連接時。為什麼以及如何說服 Apache 2.2 代理到正確的伺服器?
呈現的配置應該可以工作。您只收到傳遞的第一個虛擬主機表明其他未顯示的內容配置錯誤。
檢查您是否有合適的
NameVirtualHost
指令。