Apache配置与应用
Apache连接保持
Apache连接保持相关参数
KeepAlive 默认开启
是否打开连接保持,Off关闭,On打开
KeepAliveTimeout 默认5
一次连接多次请求之间的最大间隔时间,两次请求超过该时间连接断开
MaxKeepAliveRequests 默认100
一次长连接能够传输的最大请求数量
配置访问控制
Require all granted //允许所有主机访问
Require all denied //拒绝所有主机访问
Require local //仅允许本地主机访问
Require [not] host <主机名或域名列表> //允许或拒绝指定主机或域名访问
Require [not] ip <地址或网段列表> //允许或拒绝指定IP地址网络访问
客户机地址限制
vi /usr/local/httpd/conf/httpd.conf #对htdocs目录设置控制,直接新增两行
#方法一:
<Directory "/usr/local/httpd/htdocs"> //搜索htdocs目录,在"AllowOverride None"下面添加:
Order deny,allow
Deny from 20.0.0.1/32
</Directory>
#方法二:
<Directory "/usr/local/httpd/htdocs"> ..... //对htdocs目录设置控制,增加<RequireAll>范围和拒绝的ip:
<RequireAll>
Require all granted
Require not ip 20.0.0.1/32
</RequireAll>
</Directory>
查验效果
tail -5 /usr/local/httpd/logs/error_log #查看错误日志后5行
用户授权限制
#查看域名是否配置
vi /etc/httpd.conf
ServerName www.aa.com:80
#创建一个需要认证的tom用户(.awspwd是一个格式)
htpasswd -c /usr/local/httpd/conf/.awspwd tom
输入密码:abc123
查看创建的用户
[root@client1 ~]# cat /usr/local/httpd//conf/.awspwd
tom:$apr1$V2DLN/xV$pv0ygMM7cN.HTY1dKW6H6/
#添加用户授权配置
vi /etc/httpd.conf //搜索htdocs目录,在"AllowOverride None"下面添加:
Order allow,deny
Allow from all
AuthName "www.aa.com" //受保护的领域名称
AuthType Basic //认证类型
AuthUserFile /usr/local/httpd/conf/.awspwd //用户认证账号的路径
Require valid-user //要求通过认证才能访问
.....
#Require all granted //记得注释掉
systemctl stop httpd //"systemctl restart httpd" 在这里可能不好用
systemctl start httpd
#为了让客户机也能访问主机,添加一个映射
vi /etc/hosts
20.0.0.15 www.aa.com (末行添加)
Apache日志管理
日志分割
随着网站的访问量增加,默认情况下Apache的单个日志文件也会越来越大
日志文件占用磁盘空间很大
查看相关信息不方便
Apache自带rotatelogs分割工具实现
[root@client1 ~]# which rotatelogs //查看文件路径
/usr/bin/rotatelogs
# 配置日志分割
vi /etc/httpd.conf
# 搜索 ErrorLog "logs/error_log"并修改
# 在这基础上修改:
ErrorLog "|/usr/bin/rotatelogs -l logs/error_log_%Y-%m-%d 86400" //通过管道符号把日志交给rotatelogs工具,通过-l命令,让日志分割间隔为一天。“error_log_%Y-%m-%d”是带有年月日时间戳的日志名,86400表示一天,单位为秒。
# 搜索CustomLog 并修改
CustomLog "|/usr/bin/rotatelogs -l logs/access_log_%Y-%m-%d 86400" common
#保存退出
#最后访问主页,然后切换到/usr/local/httpd/logs/目录下查看是否生成日志文件
使用cronolog进行日志分割
# 准备好压缩包 cronolog-1.6.2.tar.gz
tar -zxvf cronolog-1.6.2.tar.gz
cd cronolog-1.6.2/
./configure && make && make install
which cronolog
/usr/local/sbin/cronolog
# 修改配置
vi /etc/httpd.conf
#ErrorLog "logs/error_log"
ErrorLog "|/usr/local/sbin/cronolog logs/www.abc.com.error_%Y-%m-%d.log"
#CustomLog "/logs/access_log" common
CustomLog "|/usr/local/sbin/cronolog logs/www.abc.com.access_%Y-%m-%d.log" common
# 删除原有日志并访问主页,查看/usr/local/httpd/logs/下是否生成新的日志文件
rm -rf /usr/local/httpd/logs/www*
rm -rf /usr/local/httpd/logs/error_log_*
ls -lh /usr/local/httpd/logs/
AWStats日志分析
AWStats日志分析系统介绍
Perl语言开发的一款开源日志分析系统
可用来分析Apache、Samba、Vsftpd、IIS等服务器的访问日志
结合crond等计划任务服务,可对日志内容定期进行分析