Apache服务配置剖析及相关应用(日志管理)

一、Apache配置参数

1、Apache连接保持

  • 相关参数:
    KeepAlive:是否打开连接保持(OFF关闭,ON打开)
    KeepAliveTimeout:请求间的最大间隔时间,超过就断开
    MaxKeepAliveRequests:一次连接能够传输的最大请求数量

2、Apache访问控制

1>作用:

  • 控制对网站资源的访问
  • 为特定的网站目录添加访问授权

2>常用访问控制的方式:

基于客户机地址限制

  • 使用Require配置项实现访问控制,按先后顺序限制
  • 可用于< Location >、< Directory>、< Files>、< Limit>配置段中
  • Require配置项的常用语法:
Require all granted
Require all denied
Require local
Require [not] host <主机名或域名列表>  
Require [not] ip <IP地址或网段列表>

注:使用not禁止访问时,要放置于<RequireAll> .. </RequireAll>容器中并在容器中指定相应的限制策略

用户授权限制

  • 创建用户认证数据库
cd /usr/local/httpd
bin/htpasswd -c /usr/local/httpd/conf/.awspwd  ##新建密码文件 

webadmin
New oassword:
Re-tyoe new password:
Adding password for user webadmin

cat /usr/local/httpd/conf/.awspwd   ##确认用户数据库文件
webadmin:$apr1$L53Ws/Y2$3L4xhs4zZKDbjb.9p1fNg
  • 添加用户授权配置
vim /etc/httpd/conf/httpd.conf
...
<Directory "/usr/local/httpd/htdocs">
  ...
  AuthName "DocumentRoot"  ##受保护领域名称
  AuthType Basic      ##认证类型
  AuthUserFile /etc/httpd/conf/.awspwd     ##用户认证账号文件
  Require valid-user    ##要求通过认证才能访问
</Directory>
systemctl restart httpd

二、Apache日志管理

1、日志分割

1>作用:

  • 随着网站的访问量增大,日志文件所占磁盘空间变大
  • 查看信息不方便

2>分割工具

Apache自带rotatelogs分割工具
  • 配置格式:
ErrorLog "| rotatelogs命令的绝对路径 -l 日志文件路径/网站名-error_%Y%m%d.log 86400"
CustomLog "| rotatelogs命令的绝对路径 -l 日志文件路径/网站名-access_%Y%m%d.log 86400" combined
实验:
[root@localhost /]# yum -y install httpd   ##安装Apache服务
[root@localhost /]# rpm -q httpd   ##查看已经安装
httpd-2.4.6-88.el7.centos.x86_64
[root@localhost /]# which rotatelogs   ##查找rotatelogs工具
/usr/sbin/rotatelogs
[root@localhost /]# vim /etc/httpd/conf/httpd.conf  ##配置文件设置
ServerName www.test.com:80
Listen 192.168.195.10:80
#Listen 80
[root@localhost /]# iptables -F
[root@localhost /]# setenforce 0
[root@localhost /]# systemctl start httpd
[root@localhost /]# ls /var/log/httpd/  ##查看日志文件所在位置
access_log  error_log
[root@localhost /]# cat /var/log/httpd/access_log   #当网站被访问时,会产生日志文件
192.168.195.1 - - [07/Aug/2020:10:58:34 +0800] "GET /favicon.ico HTTP/1.1" 404 209 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.81 Safari/537.36 SE 2.X MetaSr 1.0"
192.168.195.1 - - [07/Aug/2020:10:58:34 +0800] "GET / HTTP/1.1" 403 4897 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.81 Safari/537.36 SE 2.X MetaSr 1.0"
192.168.195.1 - - [07/Aug/2020:10:58:34 +0800] "GET /noindex/css/open-sans.css HTTP/1.1" 200 5081 "http://192.168.195.10/" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.81 Safari/537.36 SE 2.X MetaSr 1.0"

[root@localhost /]# vim /etc/httpd/conf/httpd.conf  ##修改2个日志相关配置文件,作日志分割
ErrorLog "| /usr/sbin/rotatelogs -l logs/www.test.com.error_%Y%m%d.log 86400"
CustomLog "| /usr/sbin/rotatelogs -l logs/www.test.com.access_%Y%m%d.log 86400" combined
[root@localhost /]# systemctl restart httpd  #重启服务
[root@localhost /]# cd /var/log/httpd/  #查看日志所在位置
[root@localhost httpd]# ls
access_log  error_log  www.test.com.error_20200807.log  ##此日志文件为分割后的文件
[root@localhost httpd]# ls
access_log  error_log  www.test.com.access_20200807.log  www.test.com.error_20200807.log
[root@localhost httpd]# date
2020 08 07 星期五 11:07:51 CST
[root@localhost httpd]# date -s 09/05/20   ##更换下时间验证
2020 09 05 星期六 00:00:00 CST
[root@localhost httpd]# date
2020 09 05 星期六 00:00:01 CST
[root@localhost httpd]# systemctl restart httpd
[root@localhost httpd]# ls
access_log  error_log  www.test.com.access_20200807.log  www.test.com.error_20200807.log  www.test.com.error_20200905.log   ##已经分割日志文件
第三方工具cronolog分割
  • 源码编译安装cronolog工具
  • 日志文件转交给cronolog分割处理
  • 配置格式:
ErrorLog "| cronolog命令的绝对路径 [-l] 日志文件路径/网站名-error_%Y%m%d.log"
CustomLog "| cronolog命令的绝对路径 [-l] 日志文件路径/网站名-access_%Y%m%d.log" combined
实验:
[root@localhost /]# yum -y install httpd   ##安装Apache服务
[root@localhost opt]# rz -E   #将第三方工具包拉进来(自己去网站下,或者私信我,我发你)
rz waiting to receive.
[root@localhost opt]# ls
cronolog-1.6.2-14.el7.x86_64.rpm  rh
[root@localhost opt]# rpm -ivh cronolog-1.6.2-14.el7.x86_64.rpm  #安装
[root@localhost opt]# which cronolog  #查看所在路径
/usr/sbin/cronolog
[root@localhost httpd]# vim /etc/httpd/conf/httpd.conf  #修改配置文件
ErrorLog "| /usr/sbin/cronolog -l logs/www.test.com.error_%Y%m%d.log"
CustomLog "| /usr/sbin/cronolog -l logs/www.test.com.access_%Y%m%d.log" combined
[root@localhost httpd]# systemctl restart httpd  #重启服务
[root@localhost httpd]# cd /var/log/httpd/
[root@localhost httpd]# ls   #访问后查看日志文件
access_log  error_log  www.test.com.access_20200807.log  www.test.com.error_20200807.log

2、AWStats日志分析

1、简介:

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

2、部署实验

1>dns解析
[root@localhost /]# yum -y install bind
[root@localhost /]# vim /etc/named.conf 
[root@localhost /]# vim /etc/named.rfc1912.zones 
[root@localhost /]# cp -p /var/named/named.localhost /var/named/test.com.zone
[root@localhost /]# vim /var/named/test.com.zone 
[root@localhost /]# systemctl start named
[root@localhost /]# vim /etc/httpd/conf/httpd.conf 
[root@localhost /]# cd /var/www/html/
[root@localhost html]# ls
[root@localhost html]# vim index.html
[root@localhost /]# systemctl start httpd

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

2>安装配置AWStats
[root@localhost opt]# rz -E
[root@localhost opt]# tar zvxf awstats-7.6.tar.gz 
[root@localhost opt]# ls
awstats-7.6  awstats-7.6.tar.gz  cronolog-1.6.2-14.el7.x86_64.rpm  rh
[root@localhost opt]# mv awstats-7.6 /usr/local/awstats
[root@localhost opt]# cd /usr/local/
[root@localhost local]# ls
awstats  bin  etc  games  include  lib  lib64  libexec  sbin  share  src
[root@localhost local]# cd awstats/
[root@localhost awstats]# ls
docs  README.md  tools  wwwroot
[root@localhost awstats]# cd tools/
[root@localhost tools]# ls
awstats_buildstaticpages.pl  awstats_updateall.pl  httpd_conf          nginx               xslt
awstats_configure.pl         dolibarr              logresolvemerge.pl  urlaliasbuilder.pl
awstats_exportlib.pl         geoip_generator.pl    maillogconvert.pl   webmin
[root@localhost tools]# ./awstats_configure.pl
##其他都回车
> /etc/httpd/conf/httpd.conf   ##指配置文件路径
file (required if first install) [y/N] ? y
> www.test.com        ##输入域名
A SIMPLE config file has been created: /etc/awstats/awstats.www.test.com.conf  #配置文件位置
Press ENTER to finish...
[root@localhost tools]# vim /etc/httpd/conf/httpd.conf
<Directory "/usr/local/awstats/wwwroot">
    Options None
    AllowOverride None
#    Order allow,deny
#    Allow from all
    Require all granted
</Directory>
[root@localhost tools]# cd /etc/awstats/
[root@localhost awstats]# ls
awstats.www.test.com.conf
[root@localhost awstats]# vim awstats.www.test.com.conf
LogFile="/var/log/httpd/access_log"
DirData="/var/lib/awstats"
[root@localhost awstats]# cd /var/lib/
[root@localhost lib]# mkdir awstats
[root@localhost lib]# systemctl restart httpd

在这里插入图片描述

在这里插入图片描述
此时访问页面数据不会改变,需要手动更新
在这里插入图片描述

3>执行日志分析,并设置cron计划任务
[root@localhost tools]# crontab -e
* /5 * * * * /usr/local/awstats/tools/awstats_updateall.pl now
4>优化网址地址
[root@localhost www]# cd html/
[root@localhost html]# ls
index.html
[root@localhost html]# vim count.html
[root@localhost html]# ls
count.html  index.html
[root@localhost html]# vim count.html
<html>
 <head>
  <meta http-equiv=refresh content="0;url=http://www.benet.com/awstats/awstats.pl?config=www.benet.com">
 </head>
 <body></body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值