Apache访问控制和日志管理

Apache配置解析

一、Apache连接保持

HTTP 是属于应用层的面向对象协议,基于 TCP 协议之上的可靠传输。每次在进行
HTTP 连接之前,需要先进行 TCP 连接,在 HTTP 连接结束后要对 TCT 连接进行终止,每
个 TCP 连接都需要进行三次握手与四次断开。HTTP 协议不会对之前发生过的请求和响应
进行管理,所以建立与关闭连接对于 HTTP 而言会消耗更多的内存与 CPU 资源。能不能允
许通过同一个 TCP 连接发出多个请求,从而减少与多个连接相关的延迟,解决办法就是连
接保持。

1.1 Apache连接保持相关参数

1、KeepAlive 决定是否打开连接保持功能

接 OFF 表示关闭,接 ON 表示打开(默认是On)

可以根据网站的并发请求量决定是否打开,即在高并发时打开连接保持功能,并发量不高时
关闭此功能;

2、KeepAliveTimeout (默认超时时间5,保持连接状态的时间)

表示一次连接多次请求之间的最大间隔时间,
即两次请求之间超过该时间连接就会自动断开,从而避免客户端占用连接资源;

3、MaxKeepAliveRequests(默认100)

用于设置在一次长连接中可以传输的最大请求数量,超过此最大请求数量就会断开连接,单位是秒。

Apache 基础配置

案例

  1. 查看系统配置
[root@server1 ~]# vi /usr/local/httpd/conf/extra/httpd-default.conf 
   
   KeepAlive On //是否开启连接保持功能,On开启,Off关闭,
   MaxKeepAliveRequests 100//一次连接最多请求100个文件"如果网站是元素是600,那么这边最少设置620
   KeepAliveTimeout 5 //单位是秒 保持时间,意思是超过5秒钟断开

默认是开启的
在这里插入图片描述
2、修改主配置文件

vi /etc/httpd.conf 或 vi /usr/local/httpd/conf/httpd.conf   //主配置文件
保证主配置文件可以使用
注意-要在主配置文件中把Include conf/extra/httpd-default.conf 前面的#去掉

在这里插入图片描述
3、重新启动服务

systemctl restart httpd

1.4 抓包验证∶看应答报文。使用Fiddler软件
在这里插入图片描述

4、在浏览器上抓网页包
在这里插入图片描述
在这里插入图片描述
5、查看系统日志:

cd /usr/local/httped/logs/
ls -lh

在这里插入图片描述

二、Apache访问控制

通过 Require 配置项,可以根据客户端的主机名或 IP 地址来决定是否允许客户端访问。
在 httpd 服务的主配置文件的、、、配置段中均可以使用 Require 配置项来控制客户端的访问。使用 Require 配置项时,需要设置客户端地址以构成完整的限制策略,地址形式可以是 IP 地址、网络地址、主机名或域名。当 Require 配置项之后为“all”时,表示匹配任意地址。

常用访问控制方式:

客户机地址限制
用户授权限制

2.1、客户端地址限制

 1. Require all granted∶允许所有主机访问; 
 2. Require all denied∶ 拒绝所有主机访问; 
 3. Require local∶仅允许本地主机访问; 
 4. Require [not] host<主机名或域名列表>∶允许或拒绝指定主机或域名访问;
 5. Require [not] ip <IP 地址或网段列表>∶ 允许或拒绝指定 IP 地址网络访问.

用法解析

拒绝某一个指定地址访问网页

方法一:在网页站点目录中设置权限

  1. 访问站点目录:
vi /usr/local/httpd/conf/httpd.conf //网页站点,对htdocs目录设置控制,
vi /etc/httpd.conf 

<Directory "/usr/local/httpd/htdocs"> //站点目录
Order deny,allow            //先拒绝,再允许
Deny from 192.168.40.1/32   //24是网段,/32是IP地址          
</Directory>

在这里插入图片描述
2. 重启服务后systemctl restart httpd
在浏览器上输入http://IP地址,结果禁止访问

在这里插入图片描述
3. 查看系统错误日志

root@server1 ~]# cd /usr/local/httpd/logs/
[root@server1 logs]# tail -5 error_log 

客户机被拒绝
在这里插入图片描述

方法二:

  1. 访问站点目录并修改:
vi /etc/httpd.conf //网页站点

<Directory "/usr/local/httpd/htdocs">
....
<RequireAll>
Require all granted
Require not ip 192.168.40.1/32 
</RequireAll>
</Directory>

在这里插入图片描述
2.重启服务后systemctl restart httpd
在浏览器上输入http://IP地址,结果禁止访问
在这里插入图片描述

2.2、用户授权限制

有了授权用户账号以后,还需要修改 httpd.conf 配置文件,在特定的目录区域中添加授权配置,以启用基本认证并设置允许哪些用户访问。例如,若只允许.awspwd 数据文件中的任一用户访问系统,可以执行以下操作:

2.2.1 创建用户认证数据库

[root@server1 ~]# cd /usr/local/httpd/conf/   //创建用户认证文件
[root@server1 conf]# htpasswd -c /usr/local/httpd/conf/.awspwd tom
New password: 
Re-type new password: 
Adding password for user tom

-C :新建使用,再次建用户则不需要
/usr/local/httpd/conf/ .awspwd:新建密码文件

[root@server1 ~]# cat /usr/local/httpd/conf/.awspwd //确认用户数据库文件
tom:$apr1$2lkh7pTV$s1sAtvmQ2GYkYbBmJF.x3/  //密文

2.2.2 添加用户授权配置

[root@server1 ~]# vi /etc/httpd.conf

AuthName "www.aa.com"        //受保护的领域名称
AuthType Basic               //认证类型
AuthUserFile /usr/local/httpd/conf/.awspwd    //用户认证账户文件
Require valid-user           //要求通过认证才能访问

#Require all granted      //加#号
[root@server1 ~]# systemctl restart httpd

2.2.3 验证用户访问授权

在这里插入图片描述


Apache日志管理

三、日志分割

1.随着网站的访问量增加,默认情况下Apache的单个日志文件也会越来越大

日志文件占用磁盘空间很大
查看相关信息不方便

2.对日志文件进行分割

Apache自带rotatelogs分割工具实现
第三方工具cronolog分割

3.1 项目测试

第一种:Apache自带rotatelogs分割工具实现

先查看路径:which rotatelogs

1.编辑主配置文件

[root@server1 ~]# vi /etc/httpd.conf 
[root@server1 ~]# systemctl restart httpd

2.日志设置格式

ErrorLog "|/usr/bin/rotatelogs -l logs/error_log_%Y-%m-%d 86400"

-l:表示使用本地时间
/error_log:日志名称
%Y-%m-%d:年-月-日
86400:表示日志分隔的间隔是1天,单位是秒

3.错误日志设置

ErrorLog "|/usr/local/bin/rotatelogs -l logs/error_log_%Y-%m-%d 86400"

在这里插入图片描述
4.访问日志设置

CustomLog "|/usr/local/bin/rotatelogs -l logs/access_log_%Y-%m-%d 86400" common"  //commmon日志类型

在这里插入图片描述
5.在浏览器上http://192.168.40.11
在这里插入图片描述
6.查看日志文件

[root@server1 ~]# cd /usr/local/httpd/logs/
[root@server1 logs]# ls -lh

在这里插入图片描述

第二种:第三方cronolog工具进行日志分隔

在这里插入图片描述

1 解压缩安装包

[root@server1 ~]# tar zxvf cronolog-1.6.2.tar.gz

2.配置文件

[root@server1 ~]# cd cronolog-1.6.2/
[root@server1 cronolog-1.6.2]# ./configure

3.编译安装

make && make install 

4.查看软件路径

[root@server1 cronolog-1.6.2]# which cronolog
/usr/local/sbin/cronolog
[root@server1 cronolog-1.6.2]# vi /etc/httpd.conf 

ErrorLog "|/usr/local/sbin/cronolog logs/error.log_%Y-%m-%d"
CustomLog "|/usr/local/sbin/cronolog logs/access.log_%Y-%m-%d" common

在这里插入图片描述

在这里插入图片描述
5.测试

[root@server1 ~]# systemctl restart httpd
[root@server1 ~]# httpd -t                              查看语法
[root@server1 ~]# cd /usr/local/httpd/logs/    查看日志文件
[root@server1 logs]# ls -lh

在这里插入图片描述

四、AWstats日志分析软件

4.1 介绍

Perl语言开发的一款开源日志分析系统
可用来分析Apache,Samba,Vsftpd,IIS等服务器的访问日志
结合crond等计划任务服务,可对日志内容定期进行分析

4.2 使用AWstats日志分析软件

不同于日志分割,是对整个日志进行分析

1.确认是否加载cgi模块

[root@server1 ~]# apachectl -D DUMP_MODULES | grep cgi

2.查看模块

ls /usr/local/httpd/modules | grep cgi

在这里插入图片描述
3.配置文件,开启cgi模块

[root@server1 ~]# vi /etc/httpd.conf 

日志分析工具与命令引用接口
LoadModule cgid_module modules/mod_cgid.so
LoadModule cgi_module modules/mod_cgi.so

在这里插入图片描述
4.解压缩文件

[root@server1 ~]# tar zxvf awstats-7.6.tar.gz 
[root@server1 ~]# mv awstats-7.6 /usr/local/awstats

在这里插入图片描述
5.AWstats可以同时分析多个站点的数据

[root@server1 ~]# vi /etc/hosts   //本地映射记录

192.168.40.11   www.aa.com

[root@server1 ~]# vi /etc/httpd.conf 

ServerName www.aa.com:80

在这里插入图片描述
在这里插入图片描述

[root@server1 ~]# cd /usr/local/
[root@server1 local]# ls -lh
[root@server1 local]# chown -R root.root awstats/
[root@server1 local]# cd awstats/tools/   //进入工具目录
[root@server1 tools]# ./awstats_configure.pl   //自动配置脚本,根据提示填写

在这里插入图片描述

./awstats_configure.pl  //自动配置脚本,根据提示填写http配置文件路径
Config file path ('none' to skip web server setup):
输入apache日志文件路径(绝对路径)
/usr/local/httpd/conf/httpd.conf
是否设置apache日志文件格式为combined(日志文件格式默认是common)
y
是否生成AWstats配置文件
y
输入域名
www.aa.com
设置AWstats的配置文件(回车,保持默认)
回车
生成AWstats的访问路径
> http://localhost/awstats/awstats.pl?config=www.aa.com

6.查看apache日志文件格式

[root@server1 tools]# vi /etc/httpd.conf 

CustomLog "logs/access_log" combined
[root@server1 tools]# systemctl start httpd

在这里插入图片描述

7.编辑AWstats的配置文件

[root@server1 tools]# vi /etc/awstats/awstats.www.aa.com.conf  //修改程序的主配置文件

LogFile="/usr/local/httpd/logs/access_log"         //修改日志文件位置
DirData="/var/lib/awstats"                           //手动建立每次抓取的数据存放位置

在这里插入图片描述
在这里插入图片描述

[root@server1 ~]# mkdir /var/lib/awstats
[root@server1 ~]# systemctl restart httpd //重启让日志格式生效

8.如果之前修改过日志格式需要清空一下

[root@server1 ~]# cd /usr/local/httpd/logs/
[root@server1 logs]# ls -lh
[root@server1 logs]# rm -f *log
[root@server1 logs]# ls -lh
[root@server1 logs]# systemctl restart httpd //重新生成日志文件

在这里插入图片描述
9.重启主机, 在不同主机浏览器上http://192.168.40.11

10.手动采集日志

[root@server1 ~]# cd /usr/local/awstats/tools/
[root@server1 tools]# ./awstats_updateall.pl now

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值