2017-03-10 91 views
0

我在Debian服務器上的Apache2中有兩個虛擬主機設置子域。 IP是104.130.6.104。當ip被輸入到瀏覽器時,apache會返回blog.goaltilt.com的文件。我希望它爲www.goaltilt.com返回文件。我已經搜索了一個小時的答案。有人可以幫助我瞭解如何強制apache解決ip到我選擇的子域?apache2多個子域名

goaltilt.com.conf是:

<VirtualHost *:80> 
    ServerName goaltilt.com 
    ServerAlias www.goaltilt.com 
    ServerAdmin [email protected] 
    DocumentRoot /var/www/goaltilt.com/public_html 
</VirtualHost> 

blog.goaltilt.com.conf是:

<VirtualHost *:80> 
    ServerName blog.goaltilt.com 
    ServerAdmin [email protected] 
    DocumentRoot /var/www/blog.goaltilt.com/public_html 
</VirtualHost> 
+0

我推測你已經在運行瀏覽器的客戶端機器上編輯hosts文件來將主機名映射到ip地址了?如果沒有,請讓我知道你是否需要幫助。 –

+0

嗨,Alvin,謝謝你的迴應。我想在服務器端執行此操作,以便任何使用IP瀏覽到該站點的人都可以訪問www.goaltilt.com。如果他們使用一個虛擬主機,他們將獲得該網站。虛擬主機已經工作。我不知道在服務器端將IP解析到www.goaltilt.com需要進行什麼樣的配置。基於這個我想我需要添加一個虛擬主機定義到apache2.conf文件。 http://httpd.apache.org/docs/current/vhosts/name-based.html這看起來合適嗎? – Bob

回答

0

正常情況下,主機名應該使用DNS映射,所以根據您的意見你使用IP而不是名字。既然如此,你需要修改你的主機文件,或者如果你碰巧是網絡管理員,你可以添加一個cname

在Windows下你會修改該文件C:\Windows\System32\drivers\etc\hosts像這樣添加一些文件:

192.168.20.24 blog.goaltilt.com 

然後,當你在Windows機器http://blog.goaltilt.com在瀏覽器中輸入,這將是主機名發送到您的Apache服務器(上面的例子顯示'192.168.20.24'作爲服務器地址)並且適當地解決。

在Linux上,您需要修改/etc/hosts文件並使用相同的格式。

1

我發現我已經禁用了000-default.conf文件,因此服務器正在解析可用站點中的第一個虛擬主機。我修改了000-default.conf文件以確保它進入主站點,然後啓用它並重新啓動apache以使其運行。現在,000-default.conf文件將104.130.6.104 IP解析爲正確的虛擬主機。感謝您的幫助Alvin。您的回答幫助我找出了文檔中要查找的內容。