Apache服务(二)Apache服务的虚拟主机和内部访问控制

一、Apache的虚拟主机

1 编辑本地解析文件

vim /etc/hosts
172.25.254.127 www.westos.com news.westos.com music.westos.com mail.westos.com

在这里插入图片描述
2 建立递归目录,作为虚拟主机的默认发布目录
mkdir /var/www/virtual/westos.com/music -p
mkdir /var/www/virtual/westos.com/news -p
建立在/var/www/目录下会继承该目录的安全上下文
在这里插入图片描述
编写这两个新建目录对应的测试页
在这里插入图片描述
3 切换到apache的子配置文件
cd /etc/httpd/conf.d/
ls查看
这个目录中文件读取顺序按照先后顺序去读取
所以建立一个文件以a开头
vim adefault.conf
在这里插入图片描述

<VirtualHost _default_:80>
	DocumentRoot "/var/www/html" 指定默认的发布目录
</VirtualHost>

在这里插入图片描述
其他没有指定的就是默认的
ls查看
4 vim news.conf
在这里插入图片描述
编辑news.westos.com的发布文件

 <VirtualHost *:80>
          Servername "news.westos.com" 指定站点名称
          DocumentRoot "/var/www/virtual/westos.com/news" 站点默认发布目录
          CustomLog logs/news.log combined (站点日志combined自定义日志  combined混合型的,
          把所有的文件都放在同一个中,logs/news.log是一个相对路径)
  </VirtualHost>
  <Directory "/var/www/virtual/westos.com/news">
           Require all granted   用户授权
  </Directory>

在这里插入图片描述
5 建立编辑music.westos.com的发布文件
cp news.conf music.conf

vim music.conf
在这里插入图片描述:%s/news/music/g将所有的news字符串替换成music字符串
在这里插入图片描述
6 重启服务
systemctl restart httpd
用户授权
在这里插入图片描述
7 浏览器访问,出现不同的界面
www.westos.com
在这里插入图片描述
news.westos.com
在这里插入图片描述
music.westos.com
在这里插入图片描述
访问过后浏览器里会有缓存
crtl shift delete 清除浏览器的缓存

二、Apache内部的访问控制

1.针对于主机的访问控制
1 编辑配置文件
在这里插入图片描述

<VirtualHost _default_:80>
	Documentroot "/var/www/html"
</VirtualHost>
<Directory "/var/www/html"> 
	Require all granted
	Order Allow,Deny     列表的对去顺序,先读取的文件会被后读取的文件覆盖掉,
	就是说,谁在后面谁生效,如果没有这一行的话,allow的优先级大区deny
	Allow from 172.25.254.27
	Deny from all
</Directory>

在这里插入图片描述
2 打开127主机的浏览器访问
127主机无法访问172.25.254.127这台主机
在这里插入图片描述
3 再次编辑配置文件,修改黑白名单
在这里插入图片描述
4 打开浏览器访问127主机
127主机无法访问自己
在这里插入图片描述
27主机可以访问127
在这里插入图片描述
5 编辑配置文件
在这里插入图片描述
设置为允许所有人访问
在这里插入图片描述
6 打开浏览器访问
127主机可以访问
在这里插入图片描述
27主机也可以访问
在这里插入图片描述

2.用户方式的访问控制
准备工作:
创建一个admin目录
编写一个admin目录的测试页
在这里插入图片描述
1 创建两个用户,这里的用户不是系统中真实存在的用户,而是用字符串来充当用户
htpasswd -cm /etc/httpd/userpass admin
htpasswd -m /etc/httpd/userpass haha
-c 表示创建
-m表示motify
再次建立时需要去掉c,否则会覆盖原来的文件
创建两个用户
在这里插入图片描述

2 编辑配置文件

<VirtualHost _default_:80>
	Documentroot "/var/www/html"
</VirtualHost>
<Directory "/var/www/html"> 
	Require all granted
	Order Allow,Deny
	Allow from all
</Directory>
<Directory "/var/www/html/admin">
	AuthUserFile "/etc/httpd/userpass"  指定用户认证文件
	AuthName "Please input your name and password"  客户能看到的信息
	AuthType basic  认证的类型,验证用户名和密码,基本认证basic 
#	Require user admin
	Require valid-user
</Directory>

####
Require user   admin 指定用户,只有在这里出现的用户才可以访问
Require vaild-user 指定所有用户,即用户列表

用字符串充当用户的角色
在这里插入图片描述
在这里插入图片描述
2 打开浏览器访问admin目录,出现用户登录界面,但haha用户无法访问
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3 编辑配置文件,退出保存后重启服务
在这里插入图片描述
在这里插入图片描述
4 打开浏览器再次访问,haha用户可以登录
在这里插入图片描述
在这里插入图片描述
5 再次编辑配置文件
上面的方法虽然可行但过于麻烦,如果是大量的用户需要登录访问的话不够简便
在这里插入图片描述
在这里插入图片描述
6 打开浏览器,清除缓存,再次访问,两个用户都可以访问
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_44224894/article/details/88322367