一、默认虚拟主机
1、修改主配置文件
vim /usr/local/apache2.4/conf/httpd.conf
搜素vhost,去掉虚拟主机的注释项
2、然后修改配置文件
vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
做如下修改
3、创建目录
mkdir /usr/local/apache2.4/docs
4、编写文件
vim abc.com/index.html
vim 111.com/index.html
5、测试
/usr/local/apache2.4/bin/apachectl -t
/usr/local/apache2.4/bin/apachectl graceful
尝试链接
curl -xlocalhost:80 www.abc.com
curl -xlocalhost:80 111.com
二、httpd的用户认证
1、编辑配置文件
vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
2、重新加载配置
/usr/local/apache2.4/bin/apachectl -t
/usr/local/apache2.4/bin/apachectl graceful
3、生成密码文件
/usr/local/apache2.4/bin/htpasswd -cm /usr/local/apache2.4/docs/.htpasswd sxb
4、测试访问
curl -xlocalhost:80 abc.com -I
加上用户名密码访问
curl -xlocalhost:80 -u sxb:123456 abc.com -I
三、域名跳转
1.编写文件
vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
如下内容
2.测试重启
/usr/local/apache2.4/bin/apachectl -t
/usr/local/apache2.4/bin/apachectl graceful
3.创建目录
mkdir -p /usr/local/apache2.4/docs/www.111.com
4.编写文件
5.编写另一个文件
6.然后重新加载
7.查看是否有该模块
/usr/local/apache2/bin/apachectl -M|grep -i rewrite
8.需要编写主配置文件
vim /usr/local/apache2.4/conf/httpd.conf
9.搜素rewite,把前面的#号注释掉
10.然后继续重新加载
11.这回可以查看有该模块了
12.最后测试成功
curl -xlocalhost:80 211.com -I
四、配置访问日志
1.查看主配置文件
2.搜素LogFormat
3.修改配置文件
Vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
把common 改为 combined
4.加载重启
5.测试
6.最后查看日志
cat abc.com-access_log
五、访问日志不记录静态文件
编写文件
vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
1.日志切割测试
1.1.重启加载
1.2.测试链接
curl -x127.0.0.1:80 -I 123.com
1.3.查看日志,会发现一个带时间戳的日志文件
ls /usr/local/apache2.4/logs/
2、静态文件不记录日志 测试
2.1.创建文件
2.2.测试链接并查看日志
cat /usr/local/apache2.4/logs/123.com-access_20210722.log
从日志可以看到,我访问了txt文件和jpg文件,日志只记录了txt的记录
六、配置静态元素过期时间
1.首先配置文件
vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
2.重启加载
3.编辑主配置文件
vim /usr/local/apache2.4/conf/httpd.conf
搜索LoadModuleexpires_module放开这一行注释
4.最后查看加载模块
5.测试访问jpg文件,发现max-age=86400 表示缓存一天
curl -x127.0.0.1:80 -I www.123.com/sxb.jpg
6.测试访问txt 发现 max-age=0 表示没有缓存
七、配置防盗链
1.编写文件
vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
2.重新加载
/usr/local/apache2.4/bin/apachectl -t
/usr/local/apache2.4/bin/apachectl graceful
3.测试
从被允许的网站跳转被允许访问
curl -x127.0.0.1:80 -I -e “http://www.123.com/123.txt” http://www.123.com/sxb.jpg
使用非允许的referer 报错403
curl -x127.0.0.1:80 -I -e “http://www.1234.com/1.txt“ http://www.123.com/sxb.jpg
访问html文件可以被访问
curl -x127.0.0.1:80 -I -e “http://www.1234.com/1.txt“ http://www.123.com/index.html
八、访问控制
1.配置限制目录
vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
配置限制文件
2.重新加载
/usr/local/apache2.4/bin/apachectl -t
/usr/local/apache2.4/bin/apachectl graceful
3.测试限制目录
创建目录,模拟网站后台
mkdir /data/wwwroot/www.123.com/admin
echo “admin” > /data/wwwroot/www.123.com/admin/index.html
清空日志
> /usr/local/apache2.4/logs/123.com-access_20210522.log> /usr/local/apache2.4/logs/123.com-access_20210522.log
curl -x192.168.100.10:80 -I www.123.com/admin/index.html
curl测试状态码为403则被限制访问了
curl -x127.0.0.1:80 -I www.123.com/admin/index.html
测试发现,只可以通过127这个地址访问
九、禁止解析PHP
1.编辑配置文件
vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
2.重新加载
/usr/local/apache2.4/bin/apachectl -t
/usr/local/apache2.4/bin/apachectl graceful
3.测试
创建目录、模拟网站上传目录
mkdir /data/wwwroot/www.123.com/upload
cp /usr/local/apache2.4/htdocs/1.php /data/wwwroot/www.123.com/upload/
测试链接访问
curl -x127.0.0.1:80 www.123.com/upload/1.php
curl测试时直接返回了php源代码,并未解析
十、限制user_agent
1.首先配置文件
vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
2.重新加载
/usr/local/apache2.4/bin/apachectl -t
/usr/local/apache2.4/bin/apachectl graceful
3.测试
curl -I -x127.0.0.1:80 www.123.com/upload/1.php
curl -A “123123” -I -x127.0.0.1:80 www.123.com/upload/1.php
curl -A “123123” 指定user_agent