练习: (1)基于主机名实现三个虚拟主机
(2) 每虚拟主机使用独立的访问日志和错误日志
(3) 第三个虚拟主机的/admin要进行用户访问认证
(4) 在第二个虚拟主机上提供/status;
(5) 在第三个虚拟主机提供路径别名/bbs,访问其它文件系统路径;
(6) 尝试使用混合类型的虚拟主机:
基于IP,PORT和ServerName
练习2: 使用脚本实现以上功能;
每虚拟使用单独的配置文件;
脚本可接受参数,参数虚拟主机名称;
(1)基于主机名实现三个虚拟主机
基于FQDN的虚拟主机不再需要NameVirtualHost指令,其他并没变化
注意:任意目录下的页面只有显式授权才能被访问
1,vim /etc/httpd/conf/httpd.conf
找到中心主机,并将其注释掉
2,创建放置3台虚拟主机的目录
mkdir -pv /apps/{a.com,b.net,c.org}/htdocs
3,分别编写三台虚拟主机的首页文件,以为后面验证
vim /apps/a.com/htdocs/index.html
a
vim /apps/b.net/htdocs/index.html
b
vim /apps/c.org/htdocs/index.html
c
4,编写基于FQDN的虚拟主机的配置文件
vim /etc/httpd/conf.d/virtualhost.conf
5,检查语法 httpd -t
Syntax OK
6,重载服务 systemctl reload httpd.service
7,在真机的host文件添加:
10.1.252.172 www.a.com
10.1.252.172 www.b.net
10.1.252.172 www.c.org
8,在centos7中添加
vim /etc/hosts
10.1.252.172 www.a.com
10.1.252.172 www.b.net
10.1.252.172 www.c.org
9,验证
(2) 每虚拟主机使用独立的访问日志和错误日志
编辑自定义的虚拟主机配置文件
vim /etc/httpd/conf.d/virtualhost.conf
以下以a为例,在原基础上添加两行。b,c方法同样,记得把b,c的路径变换
检查语法 httpd -t
重启服务 systemctl restart httpd.service
(3) 第三个虚拟主机的/admin要进行用户访问认证
将配置文件的c改为
检查语法 httpd -t
重启服务 systemctl restart httpd.service
(4) 在第二个虚拟主机上提供/status;
检查语法 httpd -t
重启服务 systemctl restart httpd.service
(5) 在第三个虚拟主机提供路径别名/bbs,访问其它文件系统路径;
(6) 尝试使用混合类型的虚拟主机:
基于IP,PORT和ServerName
示例:不同ip,相同端口。相同ip,不同端口的混合使用
ifconfig eth0:0 10.1.252.171
[root@centos6 conf]# vim /etc/httpd/conf.d/vhosts.conf
删除Listen 808
<VirtualHost 10.1.252.168:80>
ServerName www.a.com
DocumentRoot "/www/a.com/htdocs"
</VirtualHost>
<VirtualHost 10.1.252.171:80>
ServerName www.b.net
DocumentRoot "/www/b.net/htdocs"
</VirtualHost>
<VirtualHost 10.1.252.168:8080>
ServerName www.c.org
DocumentRoot "/www/c.org/htdocs"
</VirtualHost>
检查语法:httpd -t
重启服务:service httpd restart
查看3个端口是否都在监听:ss -tnl
网站:10.1.125.168 10.1.252.171 10.1.252.168:8080
原创文章,作者:wutianyou,如若转载,请注明出处:http://www.178linux.com/49713