基於Linux搭建apache服務後,怎麼構建web虛擬主機?

虛擬web主機指的是在同一臺服務器中運行多個web站點,其中的每一個站點實際上並不獨立佔用整個服務器,所以被稱爲「虛擬」web主機,經過虛擬web主機服務能夠充分利用服務器的硬件資源。html

使用httpd能夠很是方便的去搭建虛擬主機服務器,只須要運行一個httpd服務就可以同時支撐大量的web站點。httpd支持的虛擬主機類型有這麼三種(與Windows 的IIS服務同樣):web

一、相同IP、端口號、不一樣域名的虛擬主機;apache

二、相同IP、不一樣端口號的虛擬主機;vim

三、不一樣IP、相同端口號的虛擬主機;服務器

大多數運維人員在搭建虛擬主機時,應該都是採用第一種方案,基於不一樣域名來作虛擬主機,這也是最人性化的一種方案。運維

1、開始搭建基於域名的虛擬主機:ide

一、爲虛擬主機提供域名解析工具

安裝DNS服務的參考博文:http://www.javashuo.com/article/p-urpobsed-eo.html ,若對DNS服務的配置不太熟悉,建議參考博文連接去搭建DNS服務,而不建議參考下面的內容(沒解釋那麼詳細):測試

[root@localhost /]# vim /etc/named.conf              #named服務器主配置文件

                  .....................           #省略部份內容

zone "test1.com" in {                                          
        type master;
        file "test1.com.zone";
};

zone "test2.com" in {
        type master;
        file "test2.com.zone";
};

[root@localhost /]# vim /var/named/test1.com.zone             #test1.com區域配置文件

              ......................               #省略部份內容

        in      ns      www.test1.com.
www     in      a       192.168.1.1

[root@localhost /]# vim /var/named/test2.com.zone               #test2.com區域配置文件

              ......................                  #省略部份內容

        in      ns      www.test2.com.
www     in      a       192.168.1.1

[root@localhost named]# systemctl start  named              #啓動DNS服務

二、爲虛擬主機準備網頁文檔網站

爲每一個虛擬web主機準備網站目錄及網頁文檔。爲了方便測試,分別爲每一個虛擬web主機提供包含不一樣的首頁文件:

[root@localhost named]# mkdir -p /var/www/test1com
[root@localhost named]# mkdir -p /var/www/test2com
[root@localhost named]# echo "<h1>www.test1.com</h1>" > /var/www/test1com/index.html
[root@localhost named]# echo "<h1>www.test2.com</h1>" > /var/www/test2com/index.html

但願上述操做你們能夠看懂在幹什麼吧,懶得解釋了。

三、添加虛擬主機配置

[root@localhost named]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf               #建立獨立的配置文件
該文件默認存在)

   .....................               #省略部份內容

#設置test1虛擬站點區域

<VirtualHost *:80>             #配置監聽地址及端口號,*表明任意地址            
    ServerAdmin 916551516@qq.com               #設置服務器管理員的郵箱,當服務異常時,
        向該郵箱發送消息。該行也可刪除。
    DocumentRoot "/var/www/test1com"            #設置網站根目錄
    ServerName www.test1.com                         #配置域名
    ErrorLog "logs/test1-error_log"                        #錯誤日誌存放在/usr/local/httpd/logs
    CustomLog "logs/test1-access_log" common             #訪問記錄日誌存放處
    <directory "/var/www">              #設置目錄訪問權限
    require all granted
    </directory>
</VirtualHost>

# 設置test2虛擬站點區域
<VirtualHost *:80>
    ServerAdmin 916551516@qq.com
    DocumentRoot "/var/www/test2com"
    ServerName www.test2.com
    ErrorLog "logs/test2-error_log"
    CustomLog "logs/test2-access_log" common
    <directory "/var/www">
    require all granted
    </directory>
</VirtualHost>

[root@localhost named]# vim /usr/local/httpd/conf/httpd.conf         #修改網站主配置文件

         ............... #進入主配置文件後,在末行模式下執行   /vhosts  ,定位到下面該行

Include conf/extra/httpd-vhosts.conf           #刪除該行開頭的#號,以便加載獨立的配置文件     
[root@localhost named]# systemctl restart httpd                #重啓服務使配置生效,
我把httpd添加成了系統服務,
纔可以使用systemctl命令來控制httpd服務,若沒添加爲系統服務,
仍是老老實實的使用服務自帶的控制工具吧。

四、在客戶機中訪問虛擬web主機

驗證吧,結果以下:

基於Linux搭建apache服務後,怎麼構建web虛擬主機?

基於Linux搭建apache服務後,怎麼構建web虛擬主機?

齊活,基於不一樣域名的虛擬主機至此就作完了。

2、基於IP地址的虛擬主機:

(十萬個不想接着往下寫了,由於接下來的內容瞭解便可,不會用到的,不過呢.....爲了以防萬一,仍是簡單寫一下吧)

注意,每一種方式之間毫無任何關聯,千萬別把基於IP地址的虛擬主機和基於域名的搞混了

[root@localhost named]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf      #編輯子配置文件
         ..............
<VirtualHost 192.168.1.1:80>                 #配置監聽地址192.168.1.10
    ServerAdmin 916551516@qq.com
    DocumentRoot "/var/www/test1com"
    ErrorLog "test1-error_log"
    CustomLog "test1-access_log" common
    <directory "/var/www">
    require all granted
    </directory>
</VirtualHost>

<VirtualHost 192.168.1.10:80>                 #配置監聽地址爲192.168.1.10
    ServerAdmin 916551516@qq.com
    DocumentRoot "/var/www/test2com"
    ErrorLog "test2-error_log"
    CustomLog "test2-access_log" common
    <directory "/var/www">
    require all granted
    </directory>
</VirtualHost>

[root@localhost named]# vim /usr/local/httpd/conf/httpd.conf          
                ......................             
Include conf/extra/httpd-vhosts.conf            #加載獨立的配置文件

[root@localhost named]# systemctl restart httpd            #重啓httpd服務

客戶機訪問:

基於Linux搭建apache服務後,怎麼構建web虛擬主機?

基於Linux搭建apache服務後,怎麼構建web虛擬主機?

2、基於端口的虛擬主機:

[root@localhost named]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf      #編輯子配置文件

<VirtualHost 192.168.1.1:80>                     #配置監聽端口號爲80
    ServerAdmin 916551516@qq.com
    DocumentRoot "/var/www/test1com"                       #正常訪問的網站目錄
    ErrorLog "test1-error_log"
    CustomLog "test1-access_log" common
    <directory "/var/www">
    require all granted
    </directory>
</VirtualHost>

<VirtualHost 192.168.1.1:8000>                     #配置監聽端口號爲8000
    ServerAdmin 916551516@qq.com
    DocumentRoot "/var/www/test2com"               #後臺管理系統的網站目錄
    ErrorLog "test2-error_log"
    CustomLog "test2-access_log" common
    <directory "/var/www">
    require all granted
    </directory>
</VirtualHost>

listen 8000                  #監聽8000,因爲80端口默認監聽,因此不用寫listen  80,寫上會報錯

[root@localhost named]# vim /usr/local/httpd/conf/httpd.conf          
                ......................             
Include conf/extra/httpd-vhosts.conf            #加載獨立的配置文件

[root@localhost named]# systemctl restart httpd            #重啓httpd服務

客戶機訪問:
基於Linux搭建apache服務後,怎麼構建web虛擬主機?

注意:在訪問時老實點輸入:http://192.168.1.1:8000。不輸入「http://」的話訪問不到。
基於Linux搭建apache服務後,怎麼構建web虛擬主機?

相關文章
相關標籤/搜索