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 www.example.com:80

</VirtualHost>

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

(3)添加虛擬主機一:

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

(4)添加虛擬主機二:

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

(5)保存退出

3、修改本地hosts文件:

在windows中,進入C:/Windows/System32/drivers/etc (在linux環境中應該是在/etc/hosts)

打開host文件,在最后面添加下面兩行:

127.0.0.1       www.slg.com

127.0.0.1       www.sanguo.com

保存退出

 

4、重啟服務器。

在你兩個虛擬機的根目錄下新建一些測試文件,比如在”E/www/slg/”目錄新建個test.html,在目錄"E:/www/sanguo/"頁新建個test.html,寫上對應的測試代碼,在瀏覽器里輸入www.slg.com/test.htmlwww.sanguo.com/test.html查看結果。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM