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

注:本篇文章注意细节

本篇文章可能让你们等过久了(这几天实在太忙),小编在此向你们道歉!