red hat 6&red hat 7 Apache網站搭建(二)虛擬主機

虛擬Web 主機指的是在同一臺服務器中運行多個Web 站點,其中的每個站點實際上並不html

獨立佔用整個服務器,所以被稱爲‘虛擬」Web 主機。經過虛擬Web 主機服務能夠充分利用服務linux

器的硬件資源,從而大大下降網站構建及運行成本。apache

使用httpd 能夠很是方便地構建虛擬主機服務器,只須要運行一個httpd 服務就可以同時支撐vim

大量的Web站點。httpd支持的虛擬主機類型包括如下三種。windows

基於域名: 爲每一個虛擬主機使用不一樣的域名,可是其對應的IP 地址是相同的。例如,服務器

www.benet.com和www.accp com站點的地址都是173.17 17.11.這是使用最爲普網絡

遍的虛擬Web 主機類型。ide

基於IP地址:爲每一個虛擬主機使用不一樣的域名,且各自對應的P地址也不相同。這種方網站

式須要爲服務器配備多個網絡接口,所以應用並非很是普遍。ui

基於端口:這種方式並不使用域名、IP 地址來區分不一樣的站點內容,而是使用了不一樣的

TCP 端口號,所以用戶在瀏覽不一樣的虛擬站點時須要同時指定端口號才能訪問。

在上述幾種虛擬Web主機中,基於域名的虛擬主機是使用最爲普遍的。也是本節介紹的重點

內容,關於另外兩種類型的虛擬主機,將只介紹其配置要點。另外,因不一樣類型的虛擬主機建

分機制各不相同,建議不要同時使用,以避免相互混淆。

實驗環境:一臺裝有red hat 7的主機或者red hat 6的系統,已經搭建好Apache網站,YUM倉庫

1.咱們先配置DNS服務器,用來解析域名。(這裏就不用源碼包安裝了,也不作過多的介紹,下一個博客寫DNS服務器,使用yum進行安裝)

[root@localhost ~]# yum install -y bind bind-utils

2.修改全局配置文件

[root@localhost ~]# vim /etc/named.conf

options {

        listen-on port 53 { any; };

allow-query     { any; };

}

3.修改區域配置文件

[root@localhost ~]# vim /etc/named.rfc1912.zones

添加如下內容

zone "benet.com" IN {

        type master;

        file "benet.com.zone";

        allow-update { none; };

};


zone "accp.com" IN {

        type master;

        file "accp.com.zone";

        allow-update { none; };

};

4.修改區域數據配置文件

[root@localhost ~]# cd /var/named/

[root@localhost named]# cp -p named.localhost benet.com.zone

$TTL 1D

@       IN SOA  @ rname.invalid. (

                                        0       ; serial

                                        1D      ; refresh

                                        1H      ; retry

                                        1W      ; expire

                                        3H )    ; minimum

        NS      @

        A       127.0.0.1

        AAAA    ::1

        PTR     localhost.

www     IN A    192.168.100.70

~

5.將benet的配置文件拷貝成accp

[root@localhost named]# cp -p benet.com.zone accp.com.zone

6.將本機的地址寫入庫文件中

[root@localhost named]# echo "namedserver 192.168.100.70" >/etc/resolv.conf

7.啓動DNS服務

[root@localhost named]# service named start

1.準備虛擬機文檔

[root@localhost ~]# mkdir -p /var/www/html/benet

[root@localhost ~]# mkdir -p /var/www/html/accp

2.寫一個網頁導入到目錄中

echo "<h1>www.benet.com</h1>" >/var/www/html/benet/index.html

echo "<h1>www.accp.com</h1>" >/var/www/html/accp/index.html

3.建立一個目錄寫虛擬機的配置文件

[root@localhost ~]# mkdir /usr/local/apache/conf.d

4.在目錄中建立一個虛擬主機的文檔,一個虛擬路徑的文檔

[root@localhost conf.d]# vim vdir.conf

Alias /test/ "/var/www/html/benet"

<Directory "/opt/benet">

Options Indexes MultiViews FollowSymLinks

AllowOverride None

Order allow,deny

Allow from all

Require all granted

</Directory>


Alias /test1/ "/opt/accp"

<Directory "/var/www/html/accp">

Options Indexes MultiViews FollowSymLinks

AllowOverride None

Order allow,deny

Allow from all

Require all granted

</Directory>

 Order 配置項能夠設置爲「allow.deny" 或"deny,allow
以決定主機應用「容許」和「拒絕」
策略的前後順序。
allow.deny: 先「容許」後「拒絕」,默認拒絕全部未明確容許的客戶機地址,
deny,allow: 先「拒絕」後
容許,默認容許全部未明確拒絕的客戶機地址。

(以上沒解釋的請參考上一個博文)

[root@localhost conf.d]# vim vhost.conf 

(基於域名的虛擬主機,須要在本機或者linux上添加hosts指向)

windows以下

C:\Windows\System32\drivers\etc(默認路徑)

192.168.100.70   www.accp.com

192.168.100.70   www.benet.com

<VirtualHost 192.168.100.70:80>

    ServerAdmin xiao_liu_@139.com

    DocumentRoot /var/www/html/accp

    ServerName www.accp.com

    ErrorLog logs/bjxh.com-error_log

    CustomLog logs/bjxh.com-access_log common

</VirtualHost>

<Directory "/var/www/html/accp">

   Options Indexes MultiViews FollowSymLinks

    AllowOverride None

    Order allow,deny

    Allow from all

   Require all granted

</Directory>


<VirtualHost 192.168.100.70:80>

    ServerAdmin xiao_liu_@139.com

    DocumentRoot /var/www/html/benet

    ServerName www.benet.com

    ErrorLog logs/bjxh.com-error_log

    CustomLog logs/bjxh.com-access_log common

</VirtualHost>

<Directory "/opt/benet/">

   Options Indexes MultiViews FollowSymLinks

    AllowOverride None

    Order allow,deny

    Allow from all

   Require all granted

</Directory>

<VirtualHost 192.168.100.70:80>

    ServerAdmin xiao_liu_@139.com

    DocumentRoot /var/www/html/accp

    ServerName www.accp.com

    ErrorLog logs/bjxh.com-error_log

    CustomLog logs/bjxh.com-access_log common

</VirtualHost>

監聽地址: 使用NameVirtualHost 配置項指定提供虛擬主機服務的IP 地址,也就是進行域

名查詢時各虛擬Web主機的IP地址,如173.17.17.11。

虛擬主機區域: 使用<VirtualHost 監聽地址>....<"/VirtualHost>區域配置,爲每個虛擬

Web 主機創建獨立的配置內容。其中至少應包括虛擬主機的網站名稱、網頁根目錄的配

其餘(如管理郵箱、訪問日誌等) 配置項可根據實際須要添加。

目錄權限,使用<Directory 目錄位置....Dpcdo>區域配置,爲每個虛擬Web

主機的網站目錄設置訪問權限,如容許任何人訪問。目錄訪問能夠繼承其父目錄的受權

許可,所以能夠採起直接爲父文件夾受權訪問權限的方法來簡化配置。

5.配置基於端口的虛擬主機

Listen 8080


<VirtualHost 192.168.100.70:80>

    ServerAdmin xiao_liu_@139.com

    DocumentRoot /var/www/html/benet

    ServerName www.benet.com

    ErrorLog logs/benet.com-error_log

    CustomLog logs/benet.com-access_log common

</VirtualHost>

<Directory "/var/www/html/benet">

    Options Indexes MultiViews FollowSymLinks

    AllowOverride None

    Order allow,deny

    Allow from all

    Require all granted

</Directory>


<VirtualHost 192.168.100.70:8080>

    ServerAdmin xiao_liu_@139.com

    DocumentRoot /var/www/html/accp

    ServerName www.accp.com

    ErrorLog logs/accp.com-error_log

    CustomLog logs/accp.com-access_log common

</VirtualHost>

<Directory "/var/www/html/accp">

    Options Indexes MultiViews FollowSymLinks

    AllowOverride None

    Order allow,deny

    Allow from all

    Require all granted

</Directory>

6.配置基於IP地址的主機(須要添加一塊網卡配置IP地址等信息,並啓用)

須要在本機或者linux上添加hosts指向

windows以下

C:\Windows\System32\drivers\etc(默認路徑)

192.168.100.70   www.accp.com

192.168.90.70   www.benet.com

<VirtualHost 192.168.100.70:80>

    ServerAdmin xiao_liu_@139.com

    DocumentRoot /var/www/html/accp

    ServerName www.accp.com

    ErrorLog logs/accp.com-error_log

    CustomLog logs/accp.com-access_log common

</VirtualHost>

<Directory "/var/www/html/accp">

    Options Indexes MultiViews FollowSymLinks

    AllowOverride None

    Order allow,deny

    Allow from all

    Require all granted

</Directory>


<VirtualHost 192.168.90.70:80>

    ServerAdmin xiao_liu_@139.com

    DocumentRoot /var/www/html/benet

    ServerName www.benet.com

    ErrorLog logs/benet.com-error_log

    CustomLog logs/benet.com-access_log common

</VirtualHost>

<Directory "/var/www/html/benet">

    Options Indexes MultiViews FollowSymLinks

    AllowOverride None

    Order allow,deny

    Allow from all

    Require all granted

</Directory>


  1. 修改完成以後再httpd的配置中添加虛擬主機的路徑

[root@localhost ~]# vim /usr/local/apache/conf/httpd.conf

Include conf.d/*.conf

2.修改httpd的配置文件給網頁路徑權限

<Directory "/var/www/html/">

    AllowOverride None

    Options None

    Require all granted

</Directory>

3.重啓服務後就能夠訪問了

[root@localhost ~]# service httpd restart

注:本篇文章注意細節

本篇文章可能讓你們等過久了(這幾天實在太忙),小編在此向你們道歉!

相關文章
相關標籤/搜索