2012-12-21 20 views
5

我已經將wiki軟件Gitit設置爲在同一個Apache服務器(端口1848和4000)的兩個獨立端口上運行。我已經證實,他們正在運行:如何設置VirtualHosts將同一IP上的兩個端口指向不同的ServerNames?

http://wcaleb.rice.edu:4000
http://wcaleb.rice.edu:1848

現在我要代理這兩個網站的網址漂亮,像http://wiki.wcaleb.rice.eduhttp://hist118.wcaleb.rice.edu。兩者的IP地址是128.42.173.84

我的服務器管理員爲這些名稱添加了DNS條目,但似乎無法讓我的Apache配置正常工作。繼instructions here,我試圖建立一個虛擬主機是這樣的:

NameVirtualHost *:1848 

<VirtualHost *:1848> 
    ServerName hist118.wcaleb.rice.edu 
    DocumentRoot /var/www/ 
    RewriteEngine On 
    ProxyPreserveHost On 
    ProxyRequests Off 

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

    ProxyPassReverse/ http://127.0.0.1:1848 
    RewriteRule ^(.*) http://127.0.0.1:1848$1 [P] 

    ErrorLog /var/log/apache2/error.log 
    LogLevel warn 

    CustomLog /var/log/apache2/access.log combined 
    ServerSignature On 

</VirtualHost> 

而在端口4000另一個類似的虛擬主機http://wiki.wcaleb.rice.edu但是,當我再發出service httpd restart,我開始的httpd時收到FAILED消息,我的瀏覽器無法連接到http://hist118.wcaleb.rice.edu

據我所知,我的httpd.conf的其餘部分是發行版隨附的默認文件。我的服務器正在RedHat Enterprise機器上運行。我是Apache的新手,所以我確信這裏有一個明顯的答案,但在嘗試對配置進行各種調整後,我無法弄清楚我做錯了什麼。

+1

這個問題更appropiate到serverfault – Atropo

+0

你可以嘗試運行在httpd -t'直接把它檢查語法,你可能有一個語法錯誤。當你看到失敗時,服務器從未開始。 – Collin

+0

該命令返回'語法OK'。我也不完全明白說服務器從未開始意味着什麼。即使在我收到FAILED消息後,我仍然可以訪問我的網站。 –

回答

0

這就是你需要做的。

NameVirtualHost *:80 

    <VirtualHost *:80> 
    ServerName hist118.wcaleb.rice.edu 
     DocumentRoot /var/www/ 
     RewriteEngine On 
     ProxyPreserveHost On 
     ProxyRequests Off 

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

     ProxyPassReverse/ http://127.0.0.1:1848 
     RewriteRule ^(.*) http://127.0.0.1:1848$1 [P] 

     ErrorLog /var/log/apache2/error.log 
     LogLevel warn 

     CustomLog /var/log/apache2/access.log combined 
     ServerSignature On 

</VirtualHost> 
+0

謝謝,這是一個有用的迴應。然而,主要的錯誤是,我的分發存儲在/ var/log/httpd而不是/ var/log/apache2中記錄日誌文件,所以Apache每次到達ErrorLog行時都會因爲該目錄不存在而窒息,直到我去嘗試看看錯誤日誌,找不到!* facepalm * –

0

在您的NameVirtualHostVirtualHost上刪除:1848(或將其更改爲:80)。本練習的重點是讓Apache監聽默認HTTP端口(端口80),以獲取這些主機名並將代理流量傳送到Gitit正在偵聽的高端口。

相關問題