一、默认虚拟主机

1、修改主配置文件

vim /usr/local/apache2.4/conf/httpd.conf
image.png
搜素vhost,去掉虚拟主机的注释项

image.png

2、然后修改配置文件

vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
image.png
做如下修改
image.png

3、创建目录

mkdir /usr/local/apache2.4/docs
image.png
image.png

4、编写文件

vim abc.com/index.html
image.png
image.png
vim 111.com/index.html
image.png
image.png

5、测试

/usr/local/apache2.4/bin/apachectl -t
image.png
/usr/local/apache2.4/bin/apachectl graceful
image.png
尝试链接
curl -xlocalhost:80 www.abc.com
image.png
curl -xlocalhost:80 111.com
image.png

二、httpd的用户认证

1、编辑配置文件

vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
image.png
image.png

2、重新加载配置

/usr/local/apache2.4/bin/apachectl -t
image.png
/usr/local/apache2.4/bin/apachectl graceful
image.png

3、生成密码文件

/usr/local/apache2.4/bin/htpasswd -cm /usr/local/apache2.4/docs/.htpasswd sxb
image.png

4、测试访问

curl -xlocalhost:80 abc.com -I
image.png
加上用户名密码访问
curl -xlocalhost:80 -u sxb:123456 abc.com -I
image.png

三、域名跳转

1.编写文件

vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
如下内容
image.png

2.测试重启

/usr/local/apache2.4/bin/apachectl -t
image.png
/usr/local/apache2.4/bin/apachectl graceful
image.png

3.创建目录

mkdir -p /usr/local/apache2.4/docs/www.111.com
image.png

4.编写文件

image.png
image.png

5.编写另一个文件

image.png
image.png

6.然后重新加载

image.png

7.查看是否有该模块

/usr/local/apache2/bin/apachectl -M|grep -i rewrite
image.png

8.需要编写主配置文件

vim /usr/local/apache2.4/conf/httpd.conf
image.png

9.搜素rewite,把前面的#号注释掉

image.png

10.然后继续重新加载

image.png

11.这回可以查看有该模块了

image.png

12.最后测试成功

curl -xlocalhost:80 211.com -I
image.png

四、配置访问日志

1.查看主配置文件

image.png

2.搜素LogFormat

image.png

3.修改配置文件

Vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
把common 改为 combined
image.png

4.加载重启

image.png

5.测试

curl -xlocalhost:80 2211.com
image.png

6.最后查看日志

cat abc.com-access_log
image.png

五、访问日志不记录静态文件

编写文件

vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
image.png

1.日志切割测试

1.1.重启加载

image.png

1.2.测试链接

curl -x127.0.0.1:80 -I 123.com
image.png

1.3.查看日志,会发现一个带时间戳的日志文件

ls /usr/local/apache2.4/logs/
image.png

2、静态文件不记录日志 测试

2.1.创建文件

image.png

2.2.测试链接并查看日志

image.png
cat /usr/local/apache2.4/logs/123.com-access_20210722.log
image.png
从日志可以看到,我访问了txt文件和jpg文件,日志只记录了txt的记录

六、配置静态元素过期时间

1.首先配置文件

vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
image.png

2.重启加载

image.png

3.编辑主配置文件

vim /usr/local/apache2.4/conf/httpd.conf
搜索LoadModuleexpires_module放开这一行注释
image.png

4.最后查看加载模块

image.png

5.测试访问jpg文件,发现max-age=86400 表示缓存一天

curl -x127.0.0.1:80 -I www.123.com/sxb.jpg
image.png

6.测试访问txt 发现 max-age=0 表示没有缓存

image.png

七、配置防盗链

1.编写文件

vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
image.png

2.重新加载

/usr/local/apache2.4/bin/apachectl -t
/usr/local/apache2.4/bin/apachectl graceful
image.png

3.测试

从被允许的网站跳转被允许访问
curl -x127.0.0.1:80 -I -e “http://www.123.com/123.txt” http://www.123.com/sxb.jpg
image.png
使用非允许的referer 报错403
curl -x127.0.0.1:80 -I -e “http://www.1234.com/1.txthttp://www.123.com/sxb.jpg
image.png
访问html文件可以被访问
curl -x127.0.0.1:80 -I -e “http://www.1234.com/1.txthttp://www.123.com/index.html
image.png

八、访问控制

1.配置限制目录

vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
image.png
配置限制文件
image.png

2.重新加载

/usr/local/apache2.4/bin/apachectl -t
/usr/local/apache2.4/bin/apachectl graceful
image.png

3.测试限制目录

创建目录,模拟网站后台
mkdir /data/wwwroot/www.123.com/admin
echo “admin” > /data/wwwroot/www.123.com/admin/index.html
image.png
清空日志
> /usr/local/apache2.4/logs/123.com-access_20210522.log> /usr/local/apache2.4/logs/123.com-access_20210522.log
image.png
curl -x192.168.100.10:80 -I www.123.com/admin/index.html
image.png
curl测试状态码为403则被限制访问了
curl -x127.0.0.1:80 -I www.123.com/admin/index.html
image.png
测试发现,只可以通过127这个地址访问

九、禁止解析PHP

1.编辑配置文件

vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
image.png

2.重新加载

/usr/local/apache2.4/bin/apachectl -t
/usr/local/apache2.4/bin/apachectl graceful
image.png
3.测试
创建目录、模拟网站上传目录
mkdir /data/wwwroot/www.123.com/upload
cp /usr/local/apache2.4/htdocs/1.php /data/wwwroot/www.123.com/upload/
image.png
测试链接访问
curl -x127.0.0.1:80 www.123.com/upload/1.php
image.png
curl测试时直接返回了php源代码,并未解析

十、限制user_agent

1.首先配置文件

vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
image.png

2.重新加载

/usr/local/apache2.4/bin/apachectl -t
/usr/local/apache2.4/bin/apachectl graceful
image.png

3.测试

curl -I -x127.0.0.1:80 www.123.com/upload/1.php
image.png
curl -A “123123” -I -x127.0.0.1:80 www.123.com/upload/1.php
image.png
curl -A “123123” 指定user_agent