一.虚拟主机的概念
如果有俩个不同域名的网站,但是只有一台服务器,这时候就需要利用nginx或者apache可以帮助用一台机器来模拟多台机器最为服务器提供服务。
虚拟主机:就是把一台物理服务器划分成多个“虚拟“的服务器,每一个虚拟主机都可以有独立的域名和独立的目录, |
二.Apache虚拟主机
添加虚拟解析可以访问不同的页面
1.实验环境的搭建
在有浏览器的一端的真机上
vim /etc/hosts
添加要浏览的信息:
172.25.254.202 www.westos.com news.westos.com music.westos.com
2.在虚拟机上建立虚拟解析
- 建立虚拟解析目录
mkdir /var/www/virtual/westos.com/music -p
mkdir /var/www/virtual/westos.com/news -p ##建立所添加的要访问的域名的专属目录
注意:要建在/var/www下,保持其安全上下文一致
- 编辑访问该网页时的目录中的文件
vim /var/www/virtual/westos.com/music/index.html
vim /var/www/virtual/westos.com/new/index.html
- 在httpd服务的子目录下编辑虚拟配置文件
cd /etc/httpd/conf.d ##在子配置目录下编辑文件
vim adefault.conf ##编辑默认发布目录的文件,有访问顺序,不能为a_default
文件编辑内容:
编辑访问news.westos.com网页时的设置
vim news.conf ##编辑所添加的目录的内容设置为其如果访问添加网页时的次目录设置
<VirtualHost *:80>
ServerName "news.westos.com" ##访问的域
DocumentRoot "/var/www/virtual/westos.com/news" ##访问的次目录为自己刚刚建立的目录
CustomLog logs/news.log combined ##产生的日志存放的地点,为相对路径,因为在主配置文件中它有默认产生的日志的目录为/etc/httpd
</VirtualHost>
<Directory "/var/www/virtual/westos.com/news">
Require all granted //允许所有人使用
</Directory>
文件内容为:
编辑访问music.westos.com网页时的设置
cp news.conf music.conf //复制摸版
vim music.conf
验证如下:
http://www.westos.com/ ##浏览的是默认发布目录下的内容
http://news.westos.com/ ##浏览的是该目录下的内容
http://music.westos.com/ ##浏览的是music目录下的内容
三.访问控制
1.针对主机的访问控制
mkdir /var/www/html/admin ##建立一个新目录
vim /var/www/html/admin/index.html ##编辑该目录下的默认访问文件
vim adefault.conf ##编辑子配置文件,添加相应允许信息
文件编辑内容:
vim adefault.conf
解释:
建立允许和拒绝,是有顺序的,表示先是读取deny拒绝所有人再只允许172.25.77.250
验证如下:
真机登陆可以登陆
vim adefault.conf //编辑文件,修改顺序
表示拒绝所有人登录
验证如下:发现真机的浏览器登录不了
2.用户方式的访问控制
首先要将上一步的访问控制文件编写内容还原,以保证实验的正确率
- 生成加密用户
htpasswd -cm /etc/httpd/htuser admin ##建立登陆方式的加密登陆
htpasswd -m /etc/httpd/htuser admin1 ##添加新的登陆用户,改用户为虚拟用户实际是一个文件
注意:第二次加密的时候直接-m不加c如果加了c会覆盖掉之前的加密字符,即俩次建立的密码相同
- 编辑相应的配置文件建立联系
[root@dns conf.d]# vim adefault.conf
[root@dns conf.d]# systemctl restart httpd
文件编辑内容为:
<Directory "/var/www/html/admin"> ##建立目录加密访问权限
AuthUserFile "/etc/httpd/htuser" ##密码所在路径
AuthName "Please input username and password" ##认证方式
AuthType Basic
Require user admin ##允许通过加密方式认证的指定的用户
Require valid-user ##允许加密方式的所有用户登陆
</Directory>
表示只允许admin用户通过加密认证
验证如下:
在真机端:
http://172.25.77.102/admin/ ##会弹出输入用户名和密码界面,如果输入admin及其密码则可登陆进去,但如果输入admin1及其密码则登陆不进去
- 用admin登陆的时候
- 用admin1登陆的时候
发现登录不进去
[root@dns conf.d]# vim adefault.conf
[root@dns conf.d]# systemctl restart httpd
编辑如下:
表示加密用户都通过认证
用admin1登陆的时候
发现admin1也能登录