web主機構建的三種方式


一、虛擬web主機的類型

1、虛擬 Web 主機介紹

虛擬 Web 主機指的是在同一台服務器中運行多個 Web 站點,其中每一個站點實際 上並不獨立占用整個服務器,因此被稱為“虛擬”Web 主機。通過虛擬 Web 主機服務可 以充分利用服務器的硬件資源,從而大大降低網站構建及運行成本。

使用 httpd 服務可以非常方便地構建虛擬主機服務器,只需要運行一個 httpd 服務 就能夠同時支撐大量的 Web 站點。

2、apache服務支持的三種虛擬web主機類型

2.1、基於域名的類型

基於域名:為每個虛擬主機使用不同的域名,但是其對應的 IP 地址是相同的。這是使用最為普遍的虛擬 Web 主機類型。

2.2、基於IP地址的類型

基於 IP 地址:為每個虛擬主機使用不同的域名,且各自對應的 IP 地址也不相同。 這種方式需要為服務器配備多個網絡接口,因此應用並不是非常廣泛。

2.3、基於端口的類型

基於端口:這種方式並不使用域名、IP地址來區分不同的站點內容,而是使用了不同的 TCP 端口號,因此用戶在瀏覽不同的虛擬站點時需要同時指定端口號才能訪問。

注:因為不同類型的虛擬主機其區分機制各不相同,建議不要同時使用,以免相互混淆。

二、構建基於域名的虛擬web主機

1、提供域名解析

首先需要向 DNS 服務提供商注冊各虛擬 Web 站點的域名,以便當訪問其中任何一 個虛擬 Web 站點時,最終訪問的都是同一個 IP 地址——實際支撐所有虛擬 Web 站點 的服務器的 IP 地址。

假設我們有兩個域名www.wlm.com、www.wat.com。對用應的IP地址為20.0.0.58。我們可以將兩個域名作為apache服務的兩個虛擬的web站點同時對應一個IP地址20.0.0.58。

2、准備網頁文檔

為每個虛擬 Web 主機准備網站目錄及網頁文檔。分別為每個虛擬 Web 主機提供包含不同內容的首頁文件。

[root@localhost ~]# mkdir -p /var/www/html/wlmcom
[root@localhost ~]# mkdir -p /var/www/html/watcom
[root@localhost opt]# echo "<h1>www.wlm  web1</h1>" > /var/www/html/wlm/index.html
[root@localhost opt]# echo "<h1>www.wat  web2</h1>" > /var/www/html/wat/index.html
3、更改配置文件

在 apache服務的主配置文件中,若要啟用基於域名的虛擬 Web 主機,通常需要更改以下兩個區域

  • 虛擬主機區域配置:使用<VirtualHost 監聽地址>……區域配置,為每一 個虛擬 Web 主機建立獨立的配置內容。其中至少應包括虛擬主機的網站名稱、網 頁根目錄的配置項;其他(如管理郵箱、訪問日志等)配置項可根據實際需要添加。

  • 訪問網頁根目錄的權限配置:使用<Directory 目錄位置>……區域配置,為每一個虛擬 Web 主機的網站目錄設置訪問權限,如允許任何人訪問。目錄訪問可以繼承其父目錄的授權許可,因此可以采取直接為父文件夾授權訪問權限的方法來簡化配置。 當虛擬 Web 主機的數量較多時,建議使用獨立的虛擬主機配置文件。

[root@localhost opt]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf 
.......                  //省略部分信息
  //可在此位置手動創建獨立的訪問目錄權限                            
<VirtualHost *:80>           //設置域名 www.wlm.com 虛擬站點區域
    DocumentRoot "/var/www/html/wlm"    //服務訪問域名網頁的路徑
    ServerName www.wlm.com      //服務訪問的域名
    ErrorLog "logs/www.wlm.com.error_log"      //錯誤訪問日志存放路徑
    CustomLog "logs/www.wel.com.access_log" common      //訪問日志存放路徑
        <Directory "/var/www/html">        //設置目錄訪問權限
        Require all granted              //允許所有訪問
        </Directory>
</VirtualHost>

<VirtualHost *:80>    //設置域名 www.wlm.com 虛擬站點區域。
    DocumentRoot "/var/www/html/wat"    //服務訪問域名網頁的路徑
    ServerName www.wat.com    //服務訪問的域名
    ErrorLog "logs/www.wat.com.error_log"     //錯誤訪問日志存放路徑
    CustomLog "logs/www.wat.com.access_log" common   //訪問日志存放路徑
        <Directory "/var/www/html">     //設置目錄訪問權限
        Require all granted   //允許所有訪問
        </Directory>
</VirtualHost>

然后在 httpd.conf 文件中通過開啟 “Include conf/extra/httpd-vhosts.conf”加載這些配置。這樣可以將對 httpd.conf 文件的改動減至最少,更方便配置內容的維護。

[root@localhost opt]# vim /usr/local/httpd/conf/httpd.conf 
.......                  //省略部分信息
Include conf/extra/httpd-vhosts.conf //加載獨立的配置文件,將行首的 "#" 刪除
.......                  //省略部分信息
[root@localhost opt]# systemctl restart httpd   //重啟httpd服務
4、客戶機訪問虛擬的web主機

首先,在客戶機的hosts文件中加入dns域名的映射,再在客戶機的瀏覽器中,使用網站名稱分別訪問不同的域名,能夠看到之前設定的網頁內容,此時表示基於域名的虛擬主機配置成功。若無法看到此結果,則需要檢查兩個站點的首頁文件,根據上述過程排查配置錯誤,必要時清空瀏覽器緩存后重新訪問。

Linux的hosts文件路徑為:/etc/hosts  
20.0.0.58    www.wlm.com      //添加內容
20.0.0.58    www.wat.com
window的hosts文件路徑為:C:\Windows\System32\drivers\etc\hosts
20.0.0.58    www.wlm.com         //添加內容
20.0.0.58    www.wat.com

測試結果顯示:
域名為www.wlm.com的測試頁

 

 

 

 

 

 

三、構建基於IP地址的虛擬web主機

構建基於 IP 地址或基於端口的虛擬主機的過程與基於域名的虛擬主機類似,也需要先提供域名解析、准備網頁文檔,再調整 httpd 配置、重啟 httpd 服務,然后在客戶 機中訪問虛擬主機進行測試。其中最主要的區別是,不同類型的虛擬主機在 httpd.conf 文件中的配置內容略有不同。

對於基於 IP 地址的虛擬主機,每個虛擬 Web 主機各自使用不同的 IP 地址,但是 都通過同一台 httpd 服務器對外提供 Web 瀏覽服務。正因為如此,用來支撐這些虛擬 Web 主機的服務器也就需要有大量的網絡接口,這在實際應用中往往不太方便,所以 基於 IP 地址的虛擬主機並不像基於域名虛擬主機那樣應用廣泛。

更改httpd.conf文件配置

[root@localhost opt]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf 
.......                  //省略部分信息
  //可在此位置手動創建獨立的訪問目錄權限                            
<VirtualHost 20.0.0.58>           //基於20.0.0.58IP的虛擬web主機配置
    DocumentRoot "/var/www/html/wlm"    //服務訪問域名網頁的路徑
    ServerName www.wlm.com      //服務訪問的域名
    ErrorLog "logs/www.wlm.com.error_log"      //錯誤訪問日志存放路徑
    CustomLog "logs/www.wel.com.access_log" common      //訪問日志存放路徑
        <Directory "/var/www/html">        //設置目錄訪問權限
        Require all granted              //允許所有訪問
        </Directory>
</VirtualHost>

<VirtualHost 20.0.0.55>    //基於20.0.0.55的虛擬web主機的配置
    DocumentRoot "/var/www/html/wat"    //服務訪問域名網頁的路徑
    ServerName www.wat.com    //服務訪問的域名
    ErrorLog "logs/www.wat.com.error_log"     //錯誤訪問日志存放路徑
    CustomLog "logs/www.wat.com.access_log" common   //訪問日志存放路徑
        <Directory "/var/www/html">     //設置目錄訪問權限
        Require all granted   //允許所有訪問
        </Directory>
</VirtualHost>
[root@localhost opt]# vim /usr/local/httpd/conf/httpd.conf 
.......                  //省略部分信息
Include conf/extra/httpd-vhosts.conf //加載獨立的配置文件,將行首的 "#" 刪除
.......                  //省略部分信息
[root@localhost opt]# systemctl restart httpd   //重啟httpd服務

 

 

 

四、構建基於端口的虛擬web主機

基於端口的虛擬主機通常只用於同一個 Web 站點,其針對的網站名稱、IP 地址往 往是相同的,但通過不同的 TCP 端口來提供訪問不同網頁內容的服務入口。在瀏覽器 中訪問非 80 端口的 Web 服務器時,需要明確指出服務器的端口號,如訪問 http://www.wat.com:55/或http://20.0.0.58.55/。

[root@localhost opt]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf 
<VirtualHost 20.0.0.58:80>    //基於80端口的虛擬web主機配置
    DocumentRoot "/var/www/html/wlm"
    ServerName www.wlm.com
    ErrorLog "logs/www.wlm.com.error_log"
    CustomLog "logs/www.wel.com.access_log" common
        <Directory "/var/www/html">
        Require all granted
        </Directory>
</VirtualHost>

<VirtualHost 20.0.0.58:55>   //基於55端口的web主機配置
    DocumentRoot "/var/www/html/wat"
    ServerName www.wat.com
    ErrorLog "logs/www.wat.com.error_log"
    CustomLog "logs/www.wat.com.access_log" common
        <Directory "/var/www/html">
        Require all granted
        </Directory>
</VirtualHost>

配置基於端口的虛擬 Web 主機時,要通過多個 Listen 配置項來指定要監聽的 TCP 端口號,需要更改httpd.conf配置文件。  

[root@localhost ~]# vim /usr/local/httpd/conf/httpd.conf   //編輯配置文件
// 使用vim編輯器末行模式/搜索Listen 80服務器默認監聽的端口,在其下一行添加配置
.......                  //省略部分信息
Listen 80
Listen 55     //添加監聽55端口
.......                  //省略部分信息
Include conf/extra/httpd-vhosts.conf //加載獨立的配置文件,將行首的 "#" 刪除
.......                  //省略部分信息
[root@localhost opt]# systemctl restart httpd   //重啟httpd服務

 

 

  

 

 

 

  

 

 

  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  


免責聲明!

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



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