在apache下配置虛擬主機

2021-08-22 18:53:28 字數 2929 閱讀 9831

這之前我一直以為搞虛擬主機是很高深的技術(可能在apache2.2以前是很困難的,我也沒有專門調查過),自己嘗試了一下,原來很簡單。

在apache的配置檔案目錄裡,找到extra目錄,你會發現httpd-vhosts.conf檔案,開啟檔案一看,你會發現以下內容(注釋已經省略)

namevirtualhost *:80

serveradmin [email protected]

documentroot "/www/docs/dummy-host.robert.qiu.com"

servername dummy-host.robert.qiu.com

serveralias www.dummy-host.robert.qiu.com

errorlog "logs/dummy-host.robert.qiu.com-error_log"

customlog "logs/dummy-host.robert.qiu.com-access_log common"

serveradmin [email protected]

documentroot "/www/docs/dummy-host2.robert.qiu.com"

servername dummy-host2.robert.qiu.com

errorlog "logs/dummy-host2.robert.qiu.com-error_log"

customlog "logs/dummy-host2.robert.qiu.com-access_log common"

在這一堆配置資訊中實際上我們只要注意以下內容既可(序號是我加上去的,注意,配置檔案的原文)

1. namevirtualhost *:80

2.

3. documentroot "/www/docs/dummy-host.robert.qiu.com"

4. servername dummy-host.robert.qiu.com

第一句表示apache針對本伺服器某個ip位址和埠,進行虛擬主機設定。聽上去有些拗口,舉個例子,如果伺服器有2個ip,192.168.1.1,192.168.1.2,那麼如果第一條設定成namevirtualhost 192.168.1.1:80, 那麼,只有針對192.168.1.1這個ip的請求才能按照下面虛擬主機的設定得到處理,比如:在這裡設定為*:80,則表示無論請求的ip是多少都能得到處理,因為你的伺服器放到不同的區域網裡可能分到的ip不同,設定成這樣就不需要修改了。

第二句配套第一句使用,即對虛擬主機進行具體的配置,其中的*:80含義和上面一句相同。

第三句 表示這個虛擬主機的檔案根目錄所在位置,它的意思和主配置檔案httpd.conf中的一樣

第四句 這是配置的關鍵,表示從客戶端的請求所定義的伺服器名,將得到伺服器的處理。這裡我一開始也不明白,上面不是設定了ip嗎,為什麼這裡還要設定機器名。所謂虛擬主機就是乙個臺伺服器能夠當成n臺伺服器使用,那在internet上,一台伺服器外網只有乙個ip,如果一台伺服器的外網ip是111.111.111.111,那麼我們第一句就可以設定為namevirtualhost 111.111.111.111:80,來響應客戶端的請求,當然設定成*:80,也可以。由於dns的作用,我們可以用n個網域名稱指向111.111.111.111,比如 www.domain1.com, www.domain2.com, www.domain3.com... 但是當你用這些網域名稱訪問的時候會發現,你開啟的都是同乙個頁面(當然是在設定虛擬主機之前)。如果你想用不同的網域名稱訪問不同的內容,那麼必須有乙個功能來根據你不同的網域名稱來定位不同的資源,於是servername這個命令就起作用了。所以整個2-4句的作用就是把對dummy-host.robert.qiu.com請求對映到/www/docs/dummy-host.robert.qiu.com目錄中

namevirtualhost *:80

serveradmin [email protected]

documentroot "/www/domain1"

servername www.domain1.com

serveralias www.domain1.com

errorlog "logs/domain1-error_log"

customlog "logs/domain1-access_log common"

serveradmin [email protected]

documentroot "/www/domain2.com"

servername www.domain2.com

errorlog "logs/domain2.com-error_log"

customlog "logs/domain2.com-access_log common"

serveradmin [email protected]

documentroot "/www/domain3.com"

servername www.domain3.com

errorlog "logs/domain3.com-error_log"

customlog "logs/domain3.com-access_log common"

按照上面的分析,上面的這些配置資訊就配置除了

www.domain1.com

www.domain2.com

www.domain3.com

三颱虛擬主機了

apache在wamp下配置虛擬主機虛擬目錄

在wamp下常用的配置主機方法 先在httpd.conf裡面啟用httpd vhosts.conf,然後再httpd vhosts.conf裡面新增下圖左邊部分 然後在虛擬主機物理路徑下新增.htaccess檔案,在檔案裡面輸入下圖右邊部分 儲存。然後在c windows system32 driv...

在Apache配置動態虛擬主機

步驟 1,在安裝apache的動態虛擬主機模組 enable vhost alias mass virtual hosting module,如果是source code安裝的,你在configure後面加這個引數就要可以了。你是用apt get安裝的,如果你不懂的話,你得先去了如何使用apt ge...

apache下虛擬主機的配置

修改apahce下的httpd.conf 增加 serveradmin admine mail servername your host name errorlog errorlog path customlog accesslog path common 例如 serveradmin 123 si...