Apache 连接保持与访问控制配置方法

一、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访问控制

  • 作用
  1. 控制对网站资源的访问
  2. 为特定的网站目录添加访问授权
  • 常用访问控制方式
    1. 客户机地址限制
    2. 用户授权限制

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,如下图:
    a6rbd0.png

  • 实验步骤:

1、安装http与DNS域名解析服务

[root@localhost ~]# yum -y install httpd bind

2、编辑DNS主配置文件

[root@localhost ~]# vi /etc/named.conf    ## 编辑配置文件
将两处127.0.0.1修改为any

a6rHZq.png
3、修改DNS区域配置文件

[root@localhost ~]# vi /etc/named.rfc1912.zones 
第一处修改为要设置的域名,第二处指定区域数据配置文件的文件名

a6ross.png
4、创建区域数据配置文件

[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

a6rIMj.png
5、启动DNS服务

[root@localhost named]# systemctl start named

6、清空防火墙规则并关闭核心防护功能

[root@localhost named]# iptables -F
[root@localhost named]# setenforce 0

7、在客户机上打开命令提示符,输入以下命令测试域名解析服务是否生效

nslookup www.test.com

a6r4zQ.png
8、修改http服务主配置文件

[root@localhost html]# vim /etc/httpd/conf/httpd.conf   ## 编辑配置文件
修改41行的监听地址与端口为自身服务器的IP地址,端口默认为80
修改第42行内容,在行首插入#注释符号
修改95行的域名为www.test.com:80

a6rTLn.png
a6rqoV.png

9、为http服务创建一个默认首页

vim /var/www/html/index.html  ## 创建一个网站页面
在其中写入如下内容:
<h1>Test Web</h1>

11、开启http服务

[root@localhost html]# systemctl start httpd

12、在客户机上访问www.test.com
a6rOiT.png

测试页面准备完成,现在来配置访问控制,拒绝客户机(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

a6rXJU.md.png

15、重启http服务

systemctl start httpd

16、进入客户机,首先清除浏览器缓存(很重要!)
a6rvz4.png

在输入www.test.com进行访问,发现显示如下页面,原先的页面已经打不开了
a6sSy9.md.png

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

提示需要进行登陆:
a6rzQJ.md.png

输入刚才设置的用户名及密码即可登录
a6rjWF.png

猜你喜欢

转载自blog.csdn.net/u014042047/article/details/107827570