Apache的配置与应用【Apache访问控制】以及日志管理【日志分割、awstats日志分析】

Apache的配置与应用以及日志管理

文章目录

    • Apache的配置与应用以及日志管理
      • 一、Apache连接和访问控制
        • 1、Apache连接
          • 【1】KeepAlive
          • 【2】KeepAlive Timeout
          • 【3】MaxKeepAliveTimeout
          • 【4】部署keepalive优化连接
        • 2、Apache的访问控制
          • 【1】客户机地址的限制
          • 【2】用户授权限制
            • (1)创建用户认证数据库htpasswd
            • (2)添加用户授权配置
            • (3) 访问验证
      • 二、Apache日志管理
        • 1、日志分割
        • 2、AWStats日志分析
          • 【1】AWStats日志分析介绍
          • 【2】部署AWStats
            • (1)安装AWStats软件包
            • (2)为要统计的站点建立配置文件
            • (3)开启模块控制,添加控制语段
            • (4)修改AWStats站点统计配置文件
            • (5)测试及优化
            • (6)访问网址的优化

一、Apache连接和访问控制

1、Apache连接

Apache通过设置配置文件或者虚拟主机配置文件中相关的连接保持参数来开启与控制连接保持功能,如TCP的三次握手和四次挥手过程。

【1】KeepAlive

决定是否打开连接保持功能,后面接on表示开启,接off表示关闭。可以根据网站的并发请求量决定是否打开,即在高并发时打开连接保持功能。

【2】KeepAlive Timeout

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

【3】MaxKeepAliveTimeout

表示一次长连接能够传输最大请求数量。

【4】部署keepalive优化连接
[root@promote ~]# yum install -y httpd
[root@promote ~]# vim /etc/httpd/conf/httpd.conf
KeepAlive on
#KeepAlive off
KeepAliveTimeout 600
[root@promote ~]# systemctl restart httpd.service 

2、Apache的访问控制

为了控制网站的资源访问,可以为特定的网站目录添加访问授权

【1】客户机地址的限制

使用Require配置项实现访问控制,按先后顺序限制,可用于、、、配置段中。Require配置项中常见的语法:

Require all granted
Require all denied
Require local
Require [not] host <主机名或者域名列表>
Require [not] ip 

配置举例:

[root@promote ~]# vim /etc/httpd/conf/httpd.conf

    AllowOverride none
    
    Require not ip 192.168.60.0/24
    Require all denied
    

[root@promote ~]# systemctl restart httpd.service 

注意:使用not禁止访问时要将其置于容器中指定相应的限制策略。

【2】用户授权限制
(1)创建用户认证数据库htpasswd
[root@promote ~]# which htpasswd
/usr/bin/htpasswd
[root@promote ~]#  htpasswd -c /etc/httpd/conf/pwd tom
New password: (添加访问密码)
Re-type new password: 
Adding password for user tom
[root@promote ~]# cd /etc/httpd/conf/
[root@promote conf]# ls
httpd.conf  magic  pwd
(2)添加用户授权配置
[root@promote ~]# vim /etc/httpd/conf/httpd.conf
DocumentRoot "/var/www/html/"

#名称
    AuthName "DocumentRoot"
#基本验证
    AuthType basic
#验证密码存放路径
    AuthUserFile /etc/httpd/conf/pwd
#允许身份验证
    Require valid-user

(3) 访问验证

Apache的配置与应用【Apache访问控制】以及日志管理【日志分割、awstats日志分析】_第1张图片
设置之后需要输入访问的用户和密码进行访问
Apache的配置与应用【Apache访问控制】以及日志管理【日志分割、awstats日志分析】_第2张图片

二、Apache日志管理

1、日志分割

【1】分割原因
随着网站的访问量增加,默认情况下Apache单个日志文件也会越来越大----日志文件占用的磁盘空间大,查看相关信息不方便,所以要对日志文件进行分割,只要使用的工具是Apache自带的rotatelogs和第三方工具cronlog。
【2】部署日志分割
(1)rotatelogs分割
在实际的环境中,一个服务器绝大多数对应N个子域名站点,为了方便统一管理,可以用虚拟主机的方式进行配置,并使用网站名表示日志文件。
在http配置文件中修改两行配置文件即可实现rotatelogs分割

ServerName www.test.com:80
Listen 192.168.60.60:80
ErrorLog "| /usr/sbin/rotatelog -l logs/www.test.com.error_%Y%m%d.log 86400"  
CustomLog "| /usr/sbin/rotatelog -l logs/www.test.com.access_%Y%m%d.log 86400" combined

进入该目录查看日志

[root@localhost httpd]# ls -l /var/log/httpd/
总用量 16
-rw-r--r--. 1 root root 11484 8月   5 19:24 www.test.com.access_20200805.log
-rw-r--r--. 1 root root   632 8月   5 19:26 www.test.com.error_20200805.log

(2)cronlog分割
cronolog是分割网站日志文件的工具,配置格式:

ErrorLog "| cronolog命令的绝对路径 日志文件的路径/网站名-error_%Y%m%d.log"
CustomLog "| cronolog命令的绝对路径 日志文件的路径/网站名-access_%Y%m%d.log" combined

部署安装步骤:
【1】上传安装

[root@localhost opt]# rz -E
rz waiting to receive.
[root@localhost opt]# ls
awstats-7.6.tar.gz  cronolog-1.6.2-14.el7.x86_64.rpm
[root@localhost opt]# rpm -ivh cronolog-1.6.2-14.el7.x86_64.rpm 
警告:cronolog-1.6.2-14.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID 352c64e5: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
   1:cronolog-1.6.2-14.el7            ################################# [100%]
[root@localhost opt]# which cronolog 
/usr/sbin/cronolog

【2】修改配置文件

[root@localhost opt]# cd /etc/httpd/conf
[root@localhost conf]# ls
httpd.conf  magic
[root@localhost conf]# vim httpd.conf 
ServerName www.test.com:80
Listen 192.168.60.10:80
ErrorLog "| /usr/sbin/cronolog logs/www.test.com.error_%Y%m%d.log"
CustomLog "| /usr/sbin/cronolog logs/www.test.com.access_%Y%m%d.log" combined
[root@localhost conf]# systemctl start httpd.service
[root@localhost conf]# cd /var/log/httpd/
[root@localhost httpd]# ls
www.test.com.access_20200806.log  www.test.com.error_20200806.log

2、AWStats日志分析

【1】AWStats日志分析介绍

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

【2】部署AWStats
(1)安装AWStats软件包
[root@localhost opt]# tar zxvf awstats-7.6
[root@localhost opt]# ls
awstats-7.6  awstats-7.6.tar.gz
[root@localhost opt]# mv awstats-7.6 /usr/local/awstats 
(2)为要统计的站点建立配置文件
[root@localhost opt]# cd /usr/local/awstats/
[root@localhost awstats]# ls
docs  README.md  tools  wwwroot
[root@localhost awstats]# cd tools/
[root@localhost tools]# ./awstats_configure.pl
............................................................
Config file path ('none' to skip web server setup):
> /etc/httpd/conf/httpd.conf
............................................................
Do you want me to build a new AWStats config/profile
file (required if first install) [y/N] ? y
...............................................................
Your web site, virtual server or profile name:
> www.test.com
...............................................................
#一直回车到完成
You can also read your statistics for 'www.test.com' with URL:
> http://localhost/awstats/awstats.pl?config=www.test.com
(3)开启模块控制,添加控制语段
[root@localhost ~]# vim /etc/httpd/conf/httpd.conf

查看http配置文件再末行会自动添加下面内容
Apache的配置与应用【Apache访问控制】以及日志管理【日志分割、awstats日志分析】_第3张图片

(4)修改AWStats站点统计配置文件
[root@localhost awstats]# cd /var/log/httpd/
[root@localhost httpd]# ls
www.test.com.access_20200806.log  www.test.com.error_20200806.log
[root@localhost ~]#cd /etc/awstats
[root@localhost awstats]# vim awstats.www.test.com.conf 
DirData="/var/lib/awstats"
LogFile="/var/log/httpd/www.test.com.access_20200806.log"
[root@localhost awstats]# cd /var/lib/
[root@localhost lib]# mkdir awstats
[root@localhost lib]# systemctl restart httpd
(5)测试及优化

Apache的配置与应用【Apache访问控制】以及日志管理【日志分割、awstats日志分析】_第4张图片
再次刷新页面模拟访问
Apache的配置与应用【Apache访问控制】以及日志管理【日志分割、awstats日志分析】_第5张图片
但问题是AWStats没有自动统计
Apache的配置与应用【Apache访问控制】以及日志管理【日志分割、awstats日志分析】_第6张图片
分析:是没有刷新AWStats系统,所以没有显示

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

解决并优化:
Apache的配置与应用【Apache访问控制】以及日志管理【日志分割、awstats日志分析】_第7张图片
为了让系统实现自动的优化,所以我们使用crontab任务计划,让它买几分钟执行刷新脚本

/usr/local/awstats/tools./awstats_updateall.pl now
[root@localhost tools]# crontab -e
*/1 * * * * /usr/local/awstats/tools/awstats_updateall.pl now

这样就能实现自动更新
Apache的配置与应用【Apache访问控制】以及日志管理【日志分割、awstats日志分析】_第8张图片

(6)访问网址的优化

实现这个功能需要使用dns服务功能。

[root@localhost ~]# cd /var/www/html/
[root@localhost html]# vim aws.html






[root@localhost html]# systemctl restart httpd.service 

Apache的配置与应用【Apache访问控制】以及日志管理【日志分割、awstats日志分析】_第9张图片

你可能感兴趣的:(群集架构部署)