文章目录
一、Apache连接保持
1.1 Apache连接保持相关参数
-
KeepAlive
是否打开连接保持,OFF关闭,ON打开
-
KeepAliveTimeout
一次连接多次请求之间的最大间隔时间,两次请求超过该时间连接断开
-
MaxKeepAliveRequests
一次长连接能够传输的最大请求数量
1.2 实验
1、安装http服务
[root@localhost ~]# yum -y install httpd
2、编辑http服务主配置文件,在配置文件末行插入以下内容
[root@localhost ~]# vim /etc/httpd/conf/httpd.conf ## 编辑配置文件
插入内容如下:
KeepAlive on
KeepAlive Timeout 400 ## 超时时间400秒
MaxKeepAliveRequests 100 ## 最大请求量100
3、保存退出配置文件后重启http服务
[root@localhost ~]# systemctl restart httpd
二、Apache访问控制
2.1 Apache访问控制
- 作用
- 控制对网站资源的访问
- 为特定的网站目录添加访问授权
- 常用访问控制方式
- 客户机地址限制
- 用户授权限制
2.2 基于客户端地址的访问控制方法
- 使用Require配置项实现访问控制,按先后顺序限制
- 可用于、、、配置段中
- Require配置项中的常见语法
Require all granted
Require all denied
Require local
Require [not] host <主机名或域名列表>
Require [not] ip <IP地址或网段列表>
注意:使用not禁止访问时要将其置于<RequireAll></RequireAll>容器中并在容器中指定相应的限制策略
2.3 访问控制实验步骤(拒绝某一IP访问网页)
-
实验环境:**VMware Workstation 15.5、Centos 7.6、windows 10专业工作站版、Xshell 6
-
**实验目标:**为test.com网站添加访问控制,必须输入正确的用户名及密码才可以看到网站页面
-
**实验前准备:**准备一台Centos7.6虚拟机作为DNS与http服务器,windows10作为访问的客户端;为客户机配置IP与dns,如下图:
-
实验步骤:
1、安装http与DNS域名解析服务
[root@localhost ~]# yum -y install httpd bind
2、编辑DNS主配置文件
[root@localhost ~]# vi /etc/named.conf ## 编辑配置文件
将两处127.0.0.1修改为any
[root@localhost ~]# vi /etc/named.rfc1912.zones
第一处修改为要设置的域名,第二处指定区域数据配置文件的文件名
[root@localhost ~]# cd /var/named/ ## 进入区域数据配置文件所在目录
[root@localhost named]# cp -p named.localhost test.com.zone ## 复制系统自带的模板,创建一个新的区域数据配置文件
[root@localhost named]# vim test.com.zone ## 编辑区域数据配置文件
修改最后一行为:www IN A 192.168.50.136
[root@localhost named]# systemctl start named
6、清空防火墙规则并关闭核心防护功能
[root@localhost named]# iptables -F
[root@localhost named]# setenforce 0
7、在客户机上打开命令提示符,输入以下命令测试域名解析服务是否生效
nslookup www.test.com
[root@localhost html]# vim /etc/httpd/conf/httpd.conf ## 编辑配置文件
修改41行的监听地址与端口为自身服务器的IP地址,端口默认为80
修改第42行内容,在行首插入#注释符号
修改95行的域名为www.test.com:80
9、为http服务创建一个默认首页
vim /var/www/html/index.html ## 创建一个网站页面
在其中写入如下内容:
<h1>Test Web</h1>
11、开启http服务
[root@localhost html]# systemctl start httpd
测试页面准备完成,现在来配置访问控制,拒绝客户机(192.168.50.140)访问页面:
13、进入http服务主配置目录,新建一个extra目录,并在其中新建一个名为vhost.conf的配置文件
[root@localhost ~]# mkdir /etc/httpd/conf/extra ## 创建extra目录
[root@localhost extra]# vim /etc/httpd/conf/extra/vhost.conf ## 创建vhost配置文件
写入如下内容:
<VirtualHost *:80>
DocumentRoot "/var/www/html"
ErrorLog "logs/www.test.com.error_log"
CustomLog "logs/www.test.com.access_log" common
<Directory "/var/www/html">
<RequireAll>
Require not ip 192.168.50.140 ## 拒绝该IP地址进行访问
Require all granted
</RequireAll>
</Directory>
</VirtualHost>
14、在http服务主配置文件尾部插入一行,让http服务在启动时读取vhost配置文件中的内容
Include conf/extra/vhost.conf
15、重启http服务
systemctl start httpd
在输入www.test.com进行访问,发现显示如下页面,原先的页面已经打不开了
2.4 使用登陆方式进行验证授权实验
需求:客户机在访问www.test.com时必须输入正确的用户名和密码才能打开网页
该实验接上一实验继续完成需求
1、将上一个实验设置的访问拒绝项目删除并重启服务
[root@localhost ~]# vim /etc/httpd/conf/extra/vhost.conf ## 编辑虚拟主机配置文件
将这一项访问控制项删除:
<RequireAll>
Require not ip 192.168.50.140
</RequireAll>
重启http服务:systemctl restart httpd
2、创建密码文件
[root@localhost ~]# htpasswd -c /etc/httpd/conf/pwd admin ## 创建密码文件(admin为用户名,可以自行设置)
New password: ## 设置密码
Re-type new password: ## 重复密码
Adding password for user admin
使用命令查看一下是否创建成功:
[root@localhost ~]# ls /etc/httpd/conf/
extra httpd.conf magic pwd ## 密码文件pwd已经创建成功
3、修改vhost.conf配置文件
在<Directory "/var/www/html">标签下方插入以下内容:
AuthName "root"
AuthType Basic
AuthUserFile /etc/httpd/conf/pwd
Require valid-user
4、重启http服务
[root@localhost ~]# systemctl restart httpd
5、在客户机上清除历史记录及缓存,重开浏览器进行访问www.test.com