Apache服务—配置与应用(Apache访问控制、Apache日志分割)

Apache配置剖析

Apache连接保持

Apache连接保持相关参数

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

Apache访问控制概述

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

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

  • 使用Require配置项实现访问控制,按先后顺序限制
  • 可用于< Location >、< Directory >、< Files >、< Limit >配置段中
  • Require配置项的常见语法
Require all granted
Require all denied
Require local
Require [not] host <主机名或域名列表>
Require [not] ip <IP地址或网段列表>
使用not禁止访问时要将其置于<RequireAll></RequireAll>容器中,并在容器中指定相对应的限制策略
httpd配置
[root@promote ~]# vim /etc/httpd/conf/kkc/vhost.conf 
   <VirtualHost 192.168.110.10: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.110.100			该IP受限制 将不能再访问网页
         Require all granted
       </RequireAll>
      </Directory>
   </VirtualHost>
[root@promote ~]# systemctl restart httpd

用户授权限制

创建用户认证数据库

命令基本格式
#htpasswd命令是httpd自带的
[root@promot httpd]# htpasswd -c /etc/httpd/conf/abc webadmin 
#为用户webadmin创建密码文件
New password:#输入密码
Re-type new password:#再次输入密码
[root@promot httpd]# cat /etc/httpd/conf/abc
webadmin:加密密码

添加用户授权配置

#配置基本格式
  <Directory "/var/www/html">
  AuthName "DocumentRoot"  #受保护的领域名称
  AuthType Basic		#认证类型
  AuthUserFile /etc/httpd/conf/qwe  #用户认证账号文件
  Require valid-user  #要求通过认证才能访问
  </Directory>
[root@promot httpd]# htpasswd -c /etc/httpd/conf/passwd tom
New password: 
Re-type new password: 
Adding password for user tom
[root@promote httpd]# cat /etc/httpd/conf/passwd 
tom:$apr1$ipcCrnwq$5r.nzt39f7w4feubwBBAm1
添加用户授权配置
[root@promote httpd]# vim /etc/httpd/conf/kkc/vhost.conf
<VirtualHost 192.168.179.200:80>
    DocumentRoot "/var/www/html/aaa"
    ErrorLog "logs/www.aaa.com.error_log"
    CustomLog "logs/www.aaa.com.access_log" common
    <Directory "/var/www/html">
       AuthName "DocumentRoot"
       AuthType basic
       AuthUserFile /etc/httpd/conf/passwd
       Require valid-user
    </Directory>
</VirtualHost>
[root@promote httpd]# systemctl restart httpd
最后登录需要输入用户名和密码

Apache日志管理

日志分割

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

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

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

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 

日志文件的产生

  • 服务安装后,不会生成日志文件不会产生
  • 服务启动后,生成日志文件
  • 访问服务后,日志文件会生成内容
[root@localhost ~]# yum install httpd -y
[root@localhost ~]# which rotatelogs 
/usr/sbin/rotatelogs
[root@localhost ~]# vim /etc/httpd/conf/httpd.conf

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

[root@localhost ~ ]# iptables -F
[root@localhost ~ ]# setenforce 0
[root@localhost ~]# systemctl start httpd
[root@localhost ~]# httpd -t
Syntax OK
[root@localhost ~]# ls /var/log/httpd/
www.abc.com.access_20200805.log

猜你喜欢

转载自blog.csdn.net/CN_PanHao/article/details/107822123