- 虚拟web主机介绍
- 基本配置办法
- 三种具体配置办法
- 1.基于域名的配置
- 测试
- 2.基于 IP 地址
- 2.1修改虚拟主机配置
- 2.2 测试
- 3.基于端口进行配置
- 测试(后面加上端口号测试)
虚拟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测试
测试成功
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测试
测试成功
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>
测试(后面加上端口号测试)