一、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 打开浏览器,清除缓存,再次访问,两个用户都可以访问