!!Apache构建虚拟web主机

时间:2020-9-8 作者:admin


虚拟web主机介绍

构建虚拟web主机有三种形式:

1.基于域名:为每个虚拟主机使用不同的域名,但是其对应的 IP 地址是相同的。
例如,www.51xit.top 和 www.52xit.top 站点的 IP 地址都是 192.168.100.41。这
是使用最为普遍的虚拟 Web 主机类型。

2.基于 IP 地址:为每个虚拟主机使用不同的域名,且各自对应的 IP 地址也不相
同。这种方式需要为服务器配备多个网络接口,因此应用并不是非常广泛。(安全)

3.基于端口:这种方式并不使用域名、IP 地址来区分不同的站点内容,而是使用
了不同的TCP 端口号,因此用户在浏览不同的虚拟站点时需要同时指定端口号才
能访问

基本配置办法

添加虚拟主机配置
1)虚拟主机区域:使用<VirtualHost 监听地址>……区域配置,为
每一个虚拟 Web 主机建立独立的配置内容。其中至少应包括虚拟主机的网站
名称、网页根目录的配置项;其他(如管理邮箱、访问日志等)配置项可
根据实际需要添加。
2) 目录权限:使用<Directory 目录位置>……区域配置,为每一个虚
拟 Web 主机的网站目录设置访问权限,如允许任何人访问。目录访问可以继
承其父目录的授权许可,因此可以采取直接为父文件夹授权访问权限的方法来简化配置
当虚拟 Web 主机的数量较多时,建议使用独立的虚拟主机配置文件,然后在 httpd.conf文件中通过 Include 加载这些配置。这样可以将对 httpd.conf 文件的改动减至最少,更方便
配置内容的维护。

三种具体配置办法

先开启虚拟主机模块,并做好测试准备

root@www ~]# mkdir -p /opt/www/html/51xit.top  //创建网页首页目录
[root@www ~]# mkdir -p /opt/www/html/52xit.top  //创建网页首页目录
[root@www ~]# vim /opt/www/html/51xit.top/index.html  //编辑首页内容
<html><body><h1>www.51xit.top</h1>
<img src="ttttt.gif"/>
</body></html>
[root@www ~]# vim /opt/www/html/52xit.top/index.html    //编辑首页内容
<html><body><h1>www.52xit.top</h1>
<img src="aaaa.gif"/>
</body></html>
[root@localhost htdocs]# vi /etc/httpd.conf
……省略部分
Include conf/extra/httpd-vhosts.conf   ##去掉#号,开启虚拟主机模块
……省略部分

1.基于域名的配置

[root@www ~]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
<VirtualHost*:80>          ####设置 51xit.top 虚拟站点区域
    DocumentRoot "/opt/www/html/51xit.top"  //网页首页目录
    ServerName www.51xit.top  //域名
    ErrorLog "logs/www.51xit.top.error_log"   //错误日志文件(默认在/usr/loacl/httpd/log目录下)
    CustomLog "logs/www.51xit.top.access_log" common   //访问日志文件
    <Directory "/opt/www/html">      ####设置目录访问权限
        Require all granted           ####允许所有都有访问
    </Directory>
</VirtualHost>

<VirtualHost*:80>       ####设置 52xit.top 虚拟站点区域
    DocumentRoot "/opt/www/html/52xit.top" 
    ServerName www.52xit.top
    ErrorLog "logs/www.52xit.top.error_log" 
    CustomLog "logs/www.52xit.top.access_log" common
    <Directory "/opt/www/html">             ####设置目录访问权限
       Require all granted
    </Directory>
</VirtualHost>
[root@www ~]# systemctl restart httpd  ##重启生效
测试

另一台虚拟机测试

[root@localhost opt]# vi /etc/hosts  //做主机域名映射,(做DNS麻烦,这样省事)
……省略部分
20.0.0.11       www.51xit.top
20.0.0.12       www.52xit.top

登入http://www.51xit.top和www.52xit.top测试
!!Apache构建虚拟web主机
!!Apache构建虚拟web主机
测试成功

2.基于 IP 地址

[root@localhost ~]# ip addr   //查看网卡配置
……省略部分
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group 
……省略部分
       inet 20.0.0.11/24 brd 20.0.0.255 scope global noprefixroute ens33
……省略部分    
3: ens36: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group 
……省略部分    
inet 192.168.30.11/24 brd 192.168.30.255 scope global noprefixroute ens36
……省略部分     

2.1修改虚拟主机配置

[root@localhost ~]# vi /usr/local/httpd/conf/extra/httpd-vhosts.conf
<VirtualHost 192.168.30.11:80>    //这里修改ip,基于ip的web主机
    DocumentRoot "/opt/www/html/51xit.top"
#    ServerName www.51xit.top
    ErrorLog "logs/www.51xit.top.error_log"
    CustomLog "logs/www.51xit.top.access_log" common
    <Directory "/opt/www/html">
        Require all granted
    </Directory>
</VirtualHost>

<VirtualHost 20.0.0.11:80>
    DocumentRoot "/opt/www/html/52xit.top"
#    ServerName www.52xit.top
    ErrorLog "logs/www.52xit.top.error_log"
    CustomLog "logs/www.52xit.top.access_log" common
    <Directory "/opt/www/html">
       Require all granted
    </Directory>
</VirtualHost>

2.2 测试

登入http://20.0.0.11和http://192.168.30.11测试
!!Apache构建虚拟web主机
!!Apache构建虚拟web主机
测试成功

3.基于端口进行配置

[root@localhost ~]# vi /etc/httpd.conf   //基于端口的web虚拟主机,需要去主配置文件中监听端口(区别于上两种)
……省略部分
Listen 20.0.0.11:80
Listen 20.0.0.11:8080
……省略部分
[root@localhost ~]# vi /usr/local/httpd/conf/extra/httpd-vhosts.conf
<VirtualHost 20.0.0.11:80>   //修改后面的端口号,与主配置文件中监听端口要对应
    DocumentRoot "/opt/www/html/51xit.top"
#    ServerName www.51xit.top
    ErrorLog "logs/www.51xit.top.error_log"
    CustomLog "logs/www.51xit.top.access_log" common
    <Directory "/opt/www/html">
        Require all granted
    </Directory>
</VirtualHost>

<VirtualHost 20.0.0.11:8080>
    DocumentRoot "/opt/www/html/52xit.top"
#    ServerName www.52xit.top
    ErrorLog "logs/www.52xit.top.error_log"
    CustomLog "logs/www.52xit.top.access_log" common
    <Directory "/opt/www/html">
       Require all granted
    </Directory>
</VirtualHost>

测试(后面加上端口号测试)

!!Apache构建虚拟web主机
!!Apache构建虚拟web主机

声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。