1. 程式人生 > >Apache伺服器在80埠配置多域名虛擬主機的方法

Apache伺服器在80埠配置多域名虛擬主機的方法

我們在配置一臺伺服器的時候,如果只執行一個站點,往往過於浪費資源。Nginx和Apache都可以通過配置虛擬主機實現多站點。配置虛擬主機的方式主要有兩種,一種是多個不同埠對應的多個虛擬主機站點,一種是同一埠對應多個不同域名的虛擬主機站點。這裡我用80埠為例,在Apache配置多個不同域名虛擬主機。

試驗環境:Windows+Apache (Linux+Apache同理)
1、 虛擬機器需要用到Rewrite,所以先編輯Apache的conf目錄下的httpd.conf檔案
掉Rewrite模組列行中前面的#號(刪除註釋)。新增mod_rewrite.so模組支援。
LoadModule rewrite_module modules/mod_rewrite.so
同時,還要讓主配置檔案包含虛擬機器配置檔案:
找到 #Include conf/extra/httpd-vhosts.conf 這一行去掉前面的 # 。

2、 然後編輯 /conf/extra/httpd-vhosts.conf 檔案:
(1)如果裡面有預設的設定,刪除裡面預設設定的虛擬主機,我這裡是以下這段程式碼:

<VirtualHost _default_:80>
DocumentRoot "/Apache24/htdocs"
ServerName example.com:80
</VirtualHost>

(2)修改NameVirtualHost引數,要在本機的所有IP的80埠上面做多域名:NameVirtualHost *:80

(3)新增虛擬主機一:

<VirtualHost *:80>
\#管理員郵箱
ServerAdmin *@163.com \#虛擬主機根目錄 DocumentRoot "E:/www/linux/" \#虛擬主機名 ServerName linuxidc.net \#虛擬主機別名 ServerAlias linuxidc.net \#日誌路徑 ErrorLog "logs/linux-error.log" CustomLog "logs/linux-access.log" common RewriteEngine on </VirtualHost>

(4)新增虛擬主機二:


<VirtualHost *:80>
\#管理員郵箱
ServerAdmin *@163
.com \#虛擬主機根目錄 DocumentRoot "E:/www/linuxidc/" \#虛擬主機名 ServerName linuxidc.com \#虛擬主機別名 ServerAlias linuxidc.com \#日誌路徑 ErrorLog "logs/linuxidc-error.log" CustomLog "logs/linuxidc-access.log" common RewriteEngine on </VirtualHost>

(5)儲存退出

3、修改本地hosts檔案:
在windows中,進入C:/Windows/System32/drivers/etc (在linux環境中應該是在/etc/hosts)
開啟host檔案,在最後面新增下面兩行:
127.0.0.1 linuxidc.net
127.0.0.1 linuxidc.com
儲存退出

4、重啟伺服器。
在你兩個虛擬機器的根目錄下新建一些測試檔案,比如在”E/www/linux/”目錄新建個test.html,在目錄”E:/www/linuxidc/”頁新建個test.html,寫上對應的測試程式碼,在瀏覽器裡輸入linuxidc.net/test.html和linuxidc.com/test.html檢視結果。