Apache 配置与应用

一、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 

打赏一个呗

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦