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