一、Apache 连接保持
HTTP 协议是基于 TCP 协议之上的,在进行 HTTP 连接之前,要先进行 TCP 连接,在连接 结束后要对 TCP 连接进行终止。建立与关闭连接对于 HTTP 而言会消耗更多的内存与 CPU资源。
–
解决办法是连接保持。对于 HTTP/1.1,就是尽量地保持客户端的连接,通过一个连接传 送多个 HTTP 请求响应,对于客户端可以提高 50%以上的响应时间,对于服务器可以降低资 源开销。Apache 有相关的连接保持参数,可通过设置响应参数开启与控制保持连接功能。
- keepalive ON/OFF:是否打开连接保持功能。根据网站的并发请求量决定是否打开,高 并发时打开,并发量不高时可关闭。
- keepalive timeout:一次连接多次请求之间的最大间隔时间,两次请求超过改时间连接 断开。
- maxkeepaliverequestes:一次连接能够传输的最大请求数量。
[root@huyouba1 ~]# cd /usr/local/apache/conf/extra/
[root@huyouba1 extra]# cp httpd-default.conf httpd-default.conf.bak
[root@huyouba1 extra]# vim /usr/local/apache/conf/httpd.conf
405 Include conf/extra/httpd-default.conf //去掉注释
[root@huyouba1 extra]# vim httpd-default.conf
16 KeepAlive On
23 MaxKeepAliveRequests 100
29 KeepAliveTimeout 5
[root@huyouba1 extra]# /usr/local/apache/bin/apachectl restart
二、Apache 的访问控制
1、httpd 服务的访问控制:
控制对网站资源的访问 为特定的网站目录添加访问授权
2、常用访问控制方式
(1)客户机地址限制
通过配置项 Order、Deny from、Allow from,可根据客户机的主机名或 IP 地址来决定是否允许客户端访问。
1>参数及其含义
Order 配置项用于设置限制顺序
Deny from 和 Allow from 配置项用于设置具体限制内容。
2>格式
Allow from 192.168.1.10 192.168.2.0/24
Deny from all
3>Order 配置项的控制判断顺序:
- 首先判断默认的
- 然后判断逗号前的
- 最后判断逗号后的
- 按顺序叠加而得出判断
4>示例 配置拒绝某些用户访问特定目录
配置拒绝某些用户访问特定目录
[root@huyouba1 extra]# vim httpd-vhosts.conf
<VirtualHost *:80>
ServerAdmin webmaster@huyouba11.xyz
DocumentRoot "/usr/local/apache/htdocs/huyouba11"
ServerName www.huyouba11.xyz
ServerAlias www.huyouba11.xyz
ErrorLog "logs/huyouba11.xyz-error_log"
CustomLog "logs/huyouba11.xyz-access_log" common
<Directory "/usr/local/apache/htdocs/huyouba11">
Order deny,allow
Deny from 192.168.100.221 192.168.2.0/24
</Directory>
</VirtualHost>
[root@huyouba1 extra]# /usr/local/apache/bin/apachectl restart
用宿主机(IP 地址:192.168.100.221)测试
配置只允许默认用户访问的特定目录
[root@huyouba1 extra]# vim httpd-vhosts.conf
<VirtualHost *:80>
ServerAdmin webmaster@huyouba11.xyz
DocumentRoot "/usr/local/apache/htdocs/huyouba11"
ServerName www.huyouba11.xyz
ServerAlias www.huyouba11.xyz
ErrorLog "logs/huyouba11.xyz-error_log"
CustomLog "logs/huyouba11.xyz-access_log" common
<Directory "/usr/local/apache/htdocs/huyouba11">
Order allow,deny
Allow from 192.168.100.221
</Directory>
</VirtualHost>
[root@huyouba1 extra]# /usr/local/apache/bin/apachectl restart
仅允许 192.168.100.221 主机访问
本机测试:
IP 地址 192.168.100.221 主机测试:
(2)用户授权限制
基于用户的访问控制权限就是对网页目录进行认证配置,用户输入用户名密码之后才能 访问网页。httpd 服务支持使用摘要认证(Digest)和基本认证(Basic)两种方式。
使用摘要认证需要在编译 httpd 之前添加“–enable-auth-digest”选项,但并不是所有的 浏览器都支持摘要认证;而基本认证是 httpd 服务的基本功能,不需要预先配置特别的选项。
基于用户的访问控制包含认证(Authentication)和授权(Authorization)两个过程。认证是指识别用户身份的过程,授权是指允许特定用户访问特定目录区域的过程。
1>创建用户认证数据库
httpd 的基本认证通过校验用户名、密码组合来判断是否允许用户访问。授权访问的用 户账号需要事先建立,并保存在固定的数据文件中。
使用专门的 htpasswd 工具程序,可以创建授权用户数据文件,并维护其中的用户账号。 使用 htpasswd 工具时,必须指定用户数据文件的位置,添加“-c”选项表示新建立此 文件,省略“-c”选项,则表示指定用户数据文件已存在,用于添加新的用户或修改现有用 户的密码。
2>根据之前的设置,修改 httpd.conf 配置文件或 httpd-vhosts.conf 配置文件
[root@huyouba1 extra]# vim httpd-vhosts.conf
<Directory "/usr/local/apache/htdocs/huyouba11">
Order allow,deny
Allow from 192.168.100.221
AuthName "aaa"
AuthType Basic
AuthUserFile /usr/local/apache/conf/.huyouba11.pwd
require valid-user
</Directory>
[root@huyouba1 extra]# /usr/local/apache/bin/apachectl restart
[root@huyouba1 extra]# /usr/local/apache/bin/htpasswd -c /usr/local/apache/conf/.huyouba11.pwd admin
New password: 123123
Re-type new password: 123123
Adding password for user admin
[root@huyouba1 extra]# cat /usr/local/apache/conf/.huyouba11.pwd
admin:$apr1$CgrYPrT5$IwqTp5JosdYrlJNWCPFhm/
若用户名密码认证失败,则出现 401 报错
修改和删除密码
[root@huyouba1 extra]# /usr/local/apache/bin/htpasswd -b /usr/local/apache/conf/.huyouba11.pwd admin 123
Updating password for user admin
[root@huyouba1 extra]# /usr/local/apache/bin/htpasswd -D /usr/local/apache/conf/.huyouba11.pwd admin
Deleting password for user admin
[root@huyouba1 extra]# cat /usr/local/apache/conf/.huyouba11.pwd