目录
前言
一、Apache连接保持
会话保持的相关参数
二、Apache 的访问控制
客户机地址限制
用户授权限制
创建用户认证数据文件
添加用户授权配置
验证用户访问权限
三、Apache 日志分割
Apache 自带 rotatelogs 分割工具
使用第三方工具 cronolog 分割
四、Apache日志分析
总结
前言
?Apache(音译为阿帕奇)是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩充,将Perl/Python等解释器编译到服务器中。
一、Apache连接保持
- HTTP协议是基于TCP协议之上的可靠传输,在进行HTTP连接之前,要先进行TCP连接,每个TCP连接都要进行三次握手与四次挥手。HTTP协议建立与关闭连接对于HTTP协议而言会消耗很多的内存与CPU资源,解决办法是HTTP连接保持。
- 对于HTTP/1.1而言,就是尽量地保持客户端的连接,通过一个TCP连接传送多个HTTP请求响应,对于客户端可以提高50%以上的响应时间,对于服务器可以降低建立与关闭连接时的资源消耗
- Apache 通过设置配置文件 httpd-default.conf 中相关的连接保持参数来开启与控制连接保持功能
会话保持的相关参数
① KeepAlive 决定是否打开连接保持功能,后面接 OFF 表示关闭,接 ON 表示打开。可以根据网站的并发请求量决定是否打开,即在高并发时打开连接保持功能,并发量不高时关闭此功能。 ② KeepAliveTimeout 表示一次连接多次请求之间的最大间隔时间,即两次请求之间超过该时间,连接就会自动断开,从而避免客户端占用连接资源 ③ 在一次长连接中可以传输的最大请求数量可以使用 MaxKeepAliveRequstes 设置,超过此最大请求数量就会断开连接。最大值的设置决定干网站中网页的内容,一般设置数量会多于网站中所有的元素
二、Apache 的访问控制
为了更好的控制对网站资源的访问,可以为特定的网站目录添加访问授权。
客户机地址限制
通过配置Order、Deny from、Allow from,可以根据客户机的主机名或IP地址来决定是否允许客户端访问。
#地址形式可以是IP地址、网络地址、主机名或域名
Deny from address1 address2 .... #默认允许所有未明确拒绝的客户机地址
Allow from address1 address2 .... #默认拒绝所有未明确允许的客户机地址
用户授权限制
httpd服务器支持使用摘要认证和基本认证。摘要认证必须在编译前加"--enable-auth-digest",而基本认证是httpd服务的基本功能不需要特别配置
基于用户的访问控制包含认证和授权两个过程。认证指识别用户身份的过程,授权是指允许特定用户访问特定目录区域的过程
创建用户认证数据文件
cd /usr/local/httpd/bin
[root@www bin]#./htpasswd -c /usr/local/httpd/user xjj #创建xjj用户数据文件,此处有-c
#-c选项表示新建用户数据文件,缺省时则表示指定的用户数据文件已经存在,用于添加新的用户或修改现有用户的密码
New password: #输入用户密码
Re-type new password: #确认密码
Adding password for user xjj
[root@www bin]#./htpasswd /usr/local/httpd/user xjj1 #创建xjj1用户数据文件,此处没有-c
New password:
Re-type new password:
Adding password for user xjj1
#-c指定的文件位置为/usr/local/httpd/目录下的任意目录中都可以
[root@www bin]#cat /usr/local/httpd/user
#查看用户是否添加成功
添加用户授权配置
vim /usr/local/httpd/conf/httpd.conf
------在末行添加以下内容--------
Alias /test /var/www/html/test
<Directory "/var/www/html/test">
AuthName "Hello!"
AuthType Basic
AuthUserFile /usr/local/httpd/user
Require valid-user
#authgroupfile /usr/local/httpd/conf/group
#Require user xjj
#Require group xjj
</Directory>
解释:
Alias /test /var/www/html/test #设置虚拟目录的根目录,/test为虚拟目录名称
<Directory "/var/www/html/test"> #设置虚拟目录配置区域
AuthName "Hello!" #定义受保护的领域名称,会在认证对话框中显示
AuthType Basic #设置认证的类型,Basic表示基本认证
AuthUserFile /usr/local/httpd/user #设置用于保存用户账号和密码的认证文件的路径
Require valid-user #开启用户认证,只有认证文件中的合法用户才能访问
#authgroupfile /usr/local/httpd/conf/group #设置用于保存组账号和密码的认证文件的路径
#Require user xjj #仅允许指定用户访问
#Require group xjj #仅允许指定组访问
</Directory>
验证用户访问权限
[root@www bin]#mkdir -p /var/www/html/test
[root@www bin]#echo "<h1>hello world</h1>" > /var/www/html/test/index.html
[root@www bin]#systemctl restart httpd.service
http://192.168.126.11:80/test
三、Apache 日志分割
默认情况下Apache服务器产生的单个日志文件也会越来越大,如果不对日志进行分割,那么日志文件占用磁盘空间过多会导致开启日志文件变得困难,也不便于管理和清除。
Apache 自带 rotatelogs 分割工具
vim /usr/local/httpd/conf/httpd.conf
#275行,修改
ErrorLog "| /usr/local/bin/rotatelogs -l /var/log/httpd/error_%Y%m%d.log 86400"
#分剖错误日志
#305行,修改
CustomLog "| /usr/local/bin/rotatelogs -l /var/log/httpd/accesss_%Y%m%d.log 86400"combined
#分割访问日志
#开头的|为管道符号。
#-l选项表示使用本地时间为时间基准
#86400表示一天,即每天生成一个新的日志文件
mkdir /var/log/httpd #创建分剖后的日志文件保存目录
systemctl restart httpd
ls /var/log/httpd #查看日志文件
使用第三方工具 cronolog 分割
#解压源码包
tar zxvf cronolog-1.6.2.tar.gz
cd cronolog-1.6.2
#然后编译安装
./configure
make && make install
#修改 Apache 的虚拟主机 httpd-vhost.conf 文件,将上面的内容修改为下面所示的内容
<VirtualHost *:80>
ServerAdmin administrator@kqn.cn
DocumentRoot "/usr/local/apache/htdocs"
ServerName www.test.com
ErrorLog "/usr/local/sbin/cronolog /usr/local/apachelogs/www.test.com-error _%Y%m%d.log"
CustomLog " /usr/local sbin/cronolog /usr/local/apachelogs/www.test.com-access_ %Y%m%d.log"combined
</VirtualHost>
#重启 Apache 服务,查看日志是否被分割
四、Apache日志分析
#安装 AWStats 软件包
cd /opt
tar zxvf awstats-7.6.tar.gz
mv /opt/awstats-7.6 /usr/local/awstats
#执行日志分析,并设置 cron 计划任务
systemctl restart httpd.service
cd /usr/local/awstats/tools/
./awstats_updateall.pl now #更新数据(根据站点配置文件指定的日志文件路径)
#设置定时任务进行刷新
crontab -e
*/5 * * * * /usr/local/awstats/tools/awstats_updateall.pl now
systemctl start crond
systemctl enable crond
总结
Apache 通过设置配置文件中相关的连接保持参数来开启与控制连接保持功能 httpd 服务通过 Order、Allow from 、Deny from 配置项实现客户机地址访问控制 为网站目录设置用户授权时,需先通过htpasswd 工具创建用户认证数据文件。 httpd 服务器的日志文件包括访问日志 access_log 与错误日志 error_log ?
|