Apache配置与应用(Apache配置剖析,日志分割管理)

文章目录

  • 一、Apache配置剖析
    • 1.1 Apache连接保持
    • 1.2 Apache访问控制概述
    • 1.3 基于客户端地址的访问控制
    • 1.4 用户授权限制
  • 二、Apache日志管理
    • 2.1 日志分割
    • 2.2 rotatelogs分割工具
      • 2.2.1 rotatelogs分割工具实验
    • 2.3 cronolog第三方分割工具
      • 2.3.1 cronolog分割工具实验

一、Apache配置剖析

1.1 Apache连接保持

相关参数

  • KeepAlive
    是否打开连接保持,OFF关闭,ON打开
  • KeepAlive Timeout
    一次连接多次请求之间的最大间隔时间,两次请求超过改时间连接断开
  • MaxKeepAliveRequests
    一次长连接能够传输的最大请求数量
[root@fire html]# vim /etc/httpd/conf/httpd.conf
KeepAlive on
KeepAlive Timeout 600

1.2 Apache访问控制概述

  • Apache访问控制
  • 作用
    控制对网站资源的访问
    为特定的网站目录添加访问授权
  • 常用访问控制方式
    客户机地址限制
    用户授权限制

1.3 基于客户端地址的访问控制

  • 使用Require配置项实现访问控制,按先后顺序限制
  • 可用于< Location >、< Directory >、< Files >、< Limit >配置段中
  • Require配置项的常见语法
Require all granted
Require all denied
Require local
Require [not] host <主机名或域名列表>
Require [not] ip <IP地址或网段列表>
'使用not禁止访问时要将其置于容器中,并在容器中指定相对应的限制策略'

实验准备
服务器IP:192.168.179.100
客户机IP:192.168.179.119

服务器安装Apache服务实现正常访问
Apache配置与应用(Apache配置剖析,日志分割管理)_第1张图片
httpd配置

[root@fire html]# vim /etc/httpd/conf/kkc/vhost.conf 
   <VirtualHost 192.168.179.100:80>
      DocumentRoot "/var/www/html/cllt"
      ErrorLog "logs/www.cllt.com.error_log"
      CustomLog "logs/www.cllt.com.access_log" common
      <Directory "/var/www/html">
        <RequireAll>
         Require not ip 192.168.179.119
         Require all granted
       </RequireAll>
      </Directory>
   </VirtualHost>
[root@fire html]# systemctl restart httpd

Apache配置与应用(Apache配置剖析,日志分割管理)_第2张图片

1.4 用户授权限制

  • 创建用户认证数据库
命令基本格式
'htpasswd命令是httpd自带的'
[root@fire httpd]# htpasswd -c /etc/httpd/conf/abc webadmin '为用户webadmin创建密码文件'
New password'输入密码'
Re-type new password'再次输入密码'
[root@fire httpd]# cat /etc/httpd/conf/abc
webadmin:加密密码
  • 添加用户授权配置
'配置基本格式'
  <Directory "/var/www/html">
  AuthName "DocumentRoot"  '受保护的领域名称'
  AuthType Basic		'认证类型'
  AuthUserFile /etc/httpd/conf/qwe  '用户认证账号文件'
  Require valid-user  '要求通过认证才能访问'
  </Directory>

实验准备
服务器IP:192.168.179.200
客户机IP:192.168.179.119
客户机正常访问web服务
Apache配置与应用(Apache配置剖析,日志分割管理)_第3张图片
创建用户认证数据库

[root@fire httpd]# htpasswd -c /etc/httpd/conf/passwd tom
New password: 
Re-type new password: 
Adding password for user tom
[root@fire httpd]# cat /etc/httpd/conf/passwd 
tom:$apr1$ipcCrnwq$5r.nzt39f7w4feubwBBAm1

添加用户授权配置

[root@fire httpd]# vim /etc/httpd/conf/kkc/vhost.conf
<VirtualHost 192.168.179.200:80>
    DocumentRoot "/var/www/html/juejue"
    ErrorLog "logs/www.juejue.com.error_log"
    CustomLog "logs/www.juejue.com.access_log" common
    <Directory "/var/www/html">
       AuthName "DocumentRoot"
       AuthType basic
       AuthUserFile /etc/httpd/conf/passwd
       Require valid-user
    </Directory>
</VirtualHost>
[root@fire httpd]# systemctl restart httpd

测试
清空浏览器历史记录
Apache配置与应用(Apache配置剖析,日志分割管理)_第4张图片
Apache配置与应用(Apache配置剖析,日志分割管理)_第5张图片

二、Apache日志管理

2.1 日志分割

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

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

对日志文件进行分割

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

2.2 rotatelogs分割工具

  • 配置网站的日志文件转交给rotatelogs分割处理
  • 配置格式
ErrorLog "| rotatelogs 命令的绝对路径 -l 日志文件路径/网站名-error_%Y%m%d.log 86400"	'which rotatelogs命令查看绝对路径,%Y%m%d表示年月日,86400表示一天的秒数'
CustomLog "| rotatelogs 命令的绝对路径 -l 日志文件路径/网站名-access_%Y%m%d.log 86400" combined 
例如
[root@localhost logs]vim /etc/httpd/conf/httpd.conf
ErrorLog "| /usr/sbin/rotatelogs -l logs/error_%Y%m%d.log 86400"
CustomLog "| /usr/sbin/rotatelogs -l logs/access_%Y%m%d.log 86400" combined 

2.2.1 rotatelogs分割工具实验

实验准备
一台虚拟机做Apache服务器,IP地址为:192.168.179.144

[root@localhost opt]# yum install httpd -y
[root@localhost opt]# which rotatelogs       'rotatelogs命令的绝对路径'
/usr/sbin/rotatelogs

httpd配置修改

[root@localhost opt]# vim /etc/httpd/conf/httpd.conf 
Listen 192.168.179.144:80
#Listen 80
...
ServerName www.cllt.com:80
...
[root@localhost opt]# systemctl start httpd
[root@localhost opt]# netstat -natp | grep httpd
tcp        0      0 192.168.179.144:80      0.0.0.0:*               LISTEN      13625/httpd 

Apache配置与应用(Apache配置剖析,日志分割管理)_第6张图片
更改配置文件,日志分割

[root@localhost opt]# vim /etc/httpd/conf/httpd.conf    
ErrorLog "| /usr/sbin/rotatelogs -l logs/www.cllt.com.error_%Y%m%d.log 86400"
CustomLog "| /usr/sbin/rotatelogs -l logs/www.cllt.com.access_%Y%m%d.log 86400" combined
[root@localhost httpd]# systemctl restart httpd
[root@localhost httpd]# ls
access_log  error_log  www.cllt.com.error_20200805.log

Apache配置与应用(Apache配置剖析,日志分割管理)_第7张图片

[root@localhost httpd]# ls
access_log  www.cllt.com.access_20200805.log
error_log   www.cllt.com.error_20200805.log

可以改变日期进行验证

[root@localhost httpd]# date
20200805日 星期三 02:34:26 CST
[root@localhost httpd]# date -s 09/05/20
20200905日 星期六 00:00:00 CST
[root@localhost httpd]# ls    '刷新网页后再次查看'
access_log  www.cllt.com.access_20200805.log  www.cllt.com.error_20200805.log
error_log   www.cllt.com.access_20200905.log  www.cllt.com.error_20200905.log

2.3 cronolog第三方分割工具

  • 源码编译安装cronolog工具
  • 配置网站日志文件转交给cronolog分割处理

cronolog第三方分割工具需要自己在网上下载工具包放入系统中
在这里插入图片描述

  • 配置格式
[root@localhost httpd]# which cronolog    'cronolog命令的绝对路径'
/usr/sbin/cronolog

2.3.1 cronolog分割工具实验

配置日志分割

[root@localhost httpd]# rm -rf www.cllt.com.*  '现将分割的日志文件删除'
[root@localhost httpd]# ls
access_log  error_log
[root@localhost httpd]# vim /etc/httpd/conf/httpd.conf 
CustomLog "| /usr/sbin/cronolog logs/www.cllt.com.access_%Y%m%d.log" combined
ErrorLog "| /usr/sbin/cronolog logs/www.cllt.com.error_%Y%m%d.log"
[root@localhost httpd]# systemctl restart httpd
[root@localhost httpd]# ls
access_log  error_log  www.cllt.com.error_20200905.log
[root@localhost httpd]# ls   '刷新网页后'
access_log  www.cllt.com.access_20200905.log
error_log   www.cllt.com.error_20200905.log

改变日期进行验证

[root@localhost httpd]# date
20200905日 星期六 00:13:20 CST
[root@localhost httpd]# date -s 08/05/20
20200805日 星期三 00:00:00 CST
[root@localhost httpd]# systemctl restart httpd
[root@localhost httpd]# ls
access_log  www.cllt.com.access_20200805.log  www.cllt.com.error_20200805.log
error_log   www.cllt.com.access_20200905.log  www.cllt.com.error_20200905.log

你可能感兴趣的:(企业平台架构)