文章目录
Apache连接和访问控制
Apache连接
Apache通过设置配置文件或者虚拟主机配置文件中相关的连接保持参数来开启与控制连接保持功能,如TCP的三次握手和四次挥手过程。
KeepAlive
决定是否打开连接保持功能,后面接on表示开启,接off表示关闭。可以根据网站的并发请求量决定是否打开,即在高并发时打开连接保持功能。
KeepAlive Timeout
表示一次连接多次请求之间的最大时间间隔,超过间隔时间就会断开,从而避免客户端占用连接资源。
MaxKeepAliveTimeout
表示一次长连接能够传输最大请求数量。
[root@localhost ~]# yum -y install httpd
[root@localhost ~]# vim /etc/httpd/conf/httpd.conf ## 编辑配置文件
插入内容如下:
KeepAlive on
#KeepAlive off
KeepAlive Timeout 400 ## 超时时间400秒
MaxKeepAliveRequests 100 ## 最大请求量100
Apache访问控制
为了控制网站的资源访问,可以为特定的网站目录添加访问授权
客户端地址的访问控制方法
使用Require配置项实现访问控制,按先后顺序限制,可用于、、、配置段中。Require配置项中常见的语法:
Require all granted
Require all denied
Require local
Require [not] host <主机名或者域名列表>
Require [not] ip <IP地址或网段列表>
实验步骤
编辑DNS
[root@localhost ~]# vim /etc/named.conf
options {
listen-on port 53 { any; };
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
secroots-file "/var/named/data/named.secroots";
allow-query { any; };
[root@localhost ~]# vim /etc/named.rfc1912.zones
zone "text.com" IN {
type master;
file "text.ccom.zone";
allow-update { none; };
[root@localhost named]# vim text.com.zone
www IN A 192.168.136.88
输入以下命令测试域名解析服务是否生效
[root@localhost named]# vim /etc/httpd/conf/httpd.conf
Listen 192.168.136.88:80
#Listen 80
ServerName www.text.com:80
vim /var/www/html/index.html ## 创建一个网站页面
<h1>this is web</h1>
测试页面准备完成,现在来配置访问控制,拒绝客户机(192.168.136.88)访问页面
[root@localhost named]# mkdir /etc/httpd/conf/extra
[root@localhost named]# vim /etc/httpd/conf/extra/vhost.conf
<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.136.123 拒绝对方的地址
Require all granted
</RequireAll> ###在这结束
</Directory>
</VirtualHost>
[root@localhost named]# vim /etc/httpd/conf/httpd.conf 在http服务主配置文件尾部插入一行
Include conf/extra/vhost.conf
[root@localhost named]# systemctl restart httpd 重启http服务
使用登陆方式进行验证授权实验
需求:客户机在访问www.kgc.com时必须输入正确的用户名和密码才能打开网页
实验设置的访问拒绝项目删除并重启服务
[root@localhost ~]# vim /etc/httpd/conf/extra/vhost.conf ## 编辑虚拟主机配置文件
将这一项访问控制项删除:
<RequireAll>
Require not ip 192.168.50.140
</RequireAll>
重启http服务:systemctl restart httpd
创建密码文件
[root@localhost ~]# htpasswd -c /etc/httpd/conf/pwd zhang ## 创建密码文件(zhang为用户名,可以自行设置)
New password: ## 设置密码
Re-type new password: ## 重复密码
Adding password for user admin
[root@localhost named]# vim /etc/httpd/conf/extra/vhost.conf
修改vhost.conf配置文件
<Directory "/var/www/html">标签下方插入以下内容:
AuthName "root"
AuthType Basic
AuthUserFile /etc/httpd/conf/pwd
Require valid-user
[root@localhost ~]# systemctl restart httpd 重启http服务
输入用户和密码即可登录