2013-03-03 49 views
1

因此,我可能會在這裏錯過一些基本的理解,但我無法得到這個工作。我有兩個django網站,我希望能夠在同一個盒子上同時在端口80上託管它們。有沒有什麼魔法可以讓它正常工作?這裏是我的地盤 - 可用/默認文件樣子:在端口80上託管多個網站

<VirtualHost *:80> 
    WSGIScriptAlias//path/to/proj/apache/django.wsgi 
    AliasMatch ^/([^/]*\.css) /path/to/proj/static/ 
    Alias /media /path/to/proj/static/ 
    Alias /static/ /path/to/proj/static/ 

    ErrorLog ${APACHE_LOG_DIR}/error.log 
    LogLevel warn 
    CustomLog ${APACHE_LOG_DIR}/access.log combined 
</VirtualHost> 

<VirtualHost *:80> 
    WSGIScriptAlias//path/to/otherproj/apache/django.wsgi 

    ErrorLog ${APACHE_LOG_DIR}/error2.log 
    LogLevel warn 
    CustomLog ${APACHE_LOG_DIR}/access.log combined 
</VirtualHost> 

顯然,這並不工作,因爲瀏覽該網站打的第一個,它從來就沒有到第二個。所以我的問題是,我怎麼設置這個,所以我可以在端口80上託管2個網站。也許我可以像localhost/site1和localhost/site2那樣去搞定它,但不管我嘗試什麼,我都可以'似乎得到這個工作。

我玩過的ServerName屬性,但我真的不明白如何可以工作,設置它似乎並沒有改變,打到該機器的IP只顯示第一個網站,我不知道在哪裏使用ServerName影響任何東西。

任何建議,或讓我知道如果我需要提供更多信息。

另外請注意,他們都工作,如果我將第二個端口更改爲端口8080,但是當我這樣做似乎無法將域名置於myip:8080之上。

+0

它是如何應該知道服務於哪個網站? – 2013-03-03 23:20:35

回答

1

我不認爲這裏有任何解釋。您只需要指定每個虛擬域的名稱。

注:了NameVirtualHost已被棄用

<VirtualHost *:80> 
    ServerName site1.ltd 
    WSGIScriptAlias//path/to/proj/apache/django.wsgi 
    AliasMatch ^/([^/]*\.css) /path/to/proj/static/ 
    Alias /media /path/to/proj/static/ 
    Alias /static/ /path/to/proj/static/ 

    ErrorLog ${APACHE_LOG_DIR}/error.log 
    LogLevel warn 
    CustomLog ${APACHE_LOG_DIR}/access.log combined 
</VirtualHost> 

<VirtualHost *:80> 
    ServerName site2.ltd 
    WSGIScriptAlias//path/to/otherproj/apache/django.wsgi 

    ErrorLog ${APACHE_LOG_DIR}/error2.log 
    LogLevel warn 
    CustomLog ${APACHE_LOG_DIR}/access.log combined 
</VirtualHost> 
+0

因此,讓我說我的IP是1.2.3.4,這將如何讓我訪問每個站點不同? – 2013-03-03 23:29:04

+1

您將不得不註冊site1.ltd和site2.ltd作爲指向ip 1.2.3.4。然後,訪問site2.ltd的用戶將被路由到您的服務器,您的服務器將知道(通過HTTP請求標頭)僅向他們提供第二個站點。 – 2013-03-03 23:32:57

+0

好的,所以一旦我指向該地址的域名,它就會根據所使用的域名知道要解析哪個域名,但是如果我直接訪問該地址,它將只是第一個域名?我想這是有道理的,我會看看它是否有效(儘管需要長達一個小時才能更改我的域名所指的位置) – 2013-03-03 23:39:55

相關問題