Apache 配置与应用
1. Apache连接保持
Apache连接保持相关参数
KeepAlive
是否打开连接保持,OFF关闭,ON打开
KeepAliveTimeout
一次连接多次请求之间的最大间隔时间,两次请求超过该时间连接断开
MaxKeepAliveRequests
一次长连接能够传输的最大请求数量
2. Apache访问控制概述
Apache访问控制
作用
控制对网站资源的访问
为特定的网站目录添加访问授权
常用访问控制方式
客户机地址
限制用户授权限制
2.1 Apache的访问控制
2.1.1 客户机限制
通过Require配置项,可以根据客户端的主机名或IP地址来决定是否允许客户端访问。在httpd服务的主配置文件的、、、配置段中均可以使用Require配置项来控制客户端的访问。使用Require配置项时,需要设置客户端地址以构成完整的限制策略,地址形式可以是IP地址、网络地址、主机名或域名。当Require配使用的是“Require all granted”的策略,表示允许从任何客户机访问,策略格式如下所示。置项之后为“all”时,表示匹配任意地址。限制策略的格式如下所示。
- Require all granted:允许所有主机访问;
- Require all denied:拒绝所有主机访问;
- Require local:仅允许本地主机访问;
- Require [not]host<主机名或域名列表>∶允许或拒绝指定主机或域名访问;
- Require [not]ip <IP地址或网段列表>∶允许或拒绝指定IP地址网络访问
通常情况下,网站服务器是对所有客户机开放的,网页文档目录并未做任何限制
2.1.1.1 例子
例子一:认目录允许所有
vi /usr/local/httpd/conf/httpd.conf <Directory " /usr/local/httpd/htdocs" >
######省略部分内容Require all granted</Directory>
例子二:只允许20.0.0.15登录
<Directory " /usr/local/httpd/htdocs" >
######省略部分内容
Require ip 20.0.0.15
</Directory>
例子三:不允许20.0.0.0网段登录
<Directory " /usr/local/httpd/htdocs" >
######省略部分内容
Require not ip 20.0.0.0/24
2.2 用户授权限制
2.2.1 创建用户认证的数据库
htpasswd -c /usr/local/httpd/conf/.awspwd weba 创建认证的数据库.awspwd 登录账号
cat /usr/local/httpd/conf/.awspwd 确认用户数据库文件
"-c”选项,则表示指定的用户数据文件已经存在,用于添加新的用户或修改现有用户的密码。例如,需要向.awspwd数据文件中添加一个新用户51xit时,可以执行以下操作
htpasswd /usr/local/httpd/conf/.awspwd 51xit
2.2.2 添加用户授权配置
有了授权用户账号以后,还需要修改httpd.conf配置文件,在特定的目录区域中添加授权配置,以启用基本认证并设置允许哪些用户访问。例如,若只允许.awspwd数据文件中的任一用户访问系统,可以执行以下操作。
root@www~]# vim /usr/local/httpd/conf/httpd.conf
。。。。。。。。。。####省略部分内容
Directory "/usr/local/httpd/htdocs">
####省略部分内容
……
AuthName "DocumentRoot"
AuthType Basic
AuthUserFile /usr/local/httpd/conf/.awspwd
Require valid-user
</Directory>
root@www ~]# systemctl restart httpd ####重启服务使配置生效
在上述配置内容中,相关配置项的含义如下。
1、AuthName:定义受保护的领域名称,该内容将在浏览器弹出的认证对话框中显示。
2、AuthType:设置认证的类型,Basic表示基本认证。
3、AuthUserFile:设置用于保存用户账号、密码的认证文件路径。
4、require valid-user:要求只有认证文件中的合法用户才能访问。其中,valid-user
表示所有合法用户,若只授权给单个用户,可改为指定的用户名(如webadmin)
##验证用户访问授权##
20.0.0.15输入weba 密码
3. 日志分隔
3.1 系统自带的分割软件
mkdir /var/log/httpd/ 创建日志文件分割文件夹
vim /usr/local/httpd/conf/httpd.conf 编辑
#ErrorLog "|/usr/local/bin/rotatelogs -l /var/log/httpd/error_%Y%m%d.log 86400"
#CustomLog "|/usr/local/bin/rotatelogs -l /var/log/httpd/acess_%Y%m%d.log 86400" common
systemctl restart httpd.service 重启服务
cd /var/log/httpd/ 进入分割文件夹
ll 查看文件
用真机登录一下,看有没有产生新的文件
其中ErrorLog行是错误日志,不用太多关注,一般不会记录错误的访问,-表示使用
本地时间代替GMT时间作为时间基准。注意:在一个改变GMT偏移量(比如夏令时)的环
境中使用-l会导致不可预料的结果。
CustomLog 行是定义访问日志格式,86400表示一天,即每天生成一个新的日志文件。
重启Apache服务,查看日志文件是否已经按日期分割
3.2 第三方分割软件
将 cronolog-1.6.2.tar.gz 放在opt目录下
tar zxvf cronolog-1.6.2.tar.gz 解压软件
cd cronolog-1.6.2/
./configure
make && make install
vim /usr/local/httpd/conf/httpd.conf
#ErrorLog "|/usr/local/sbin/cronolog /var/log/httpd/www.51xit.top-error_%Y%m%d.log "
#CustomLog "|/usr/local/sbin/cronolog /var/log/httpd/www.51xit.top-acess_%Y%m%d.log" common
systemctl restart httpd.service 重启服务
ll /var/log/httpd/ | grep "www.51xit.top" 查看是否有日志文件产生
用真机登录ip地址测试
4. AWStats 日志分析
awstats-7.7.tar.gz 将这个放入opt目录下tar zxvf awstats-7.7.tar.gz 解压软件mv awstats-7.7 /usr/local/awstats 将解压的软件内容移动到/usr/local/awstats下为要统计的站点建立配置文件cd /usr/local/awstats/tools/ chmod +x awstats_configure.pl ./awstats_configure.pl
第一步:/usr/local/httpd/conf/httpd.conf
第二部:y
第三步:www.51xit.top
然后就一直到最后把最后出现的地址保存下来,方便等下测试http://20.0.0.15/awstats/awstats.pl?config=www.51xit.top
4.1 修改站点统计配置文件
vim /etc/awstats/awstats.www.51xit.top.conf
修改上图1处的地址,改为LogFile="/usr/local/httpd/logs/access_log"
vi usr/local/httpd/conf/httpd.conf
上图中的1.2把前面的#去掉,找到三个这一块,在里面修改三个小的参数
systemctl restart httpd.service 重启服务
执行日志分析,并设置cron计划任务
使用AWStats提供的awstats_updateall.pl脚本,可以更新所有站点〔根据站点配置文
件)的日志统计数据。执行该脚本时,系统将会自动分析新增的日志内容,并将分析结果更
新到统计数据库中。
cd /usr/local/awstats/tools/
chmod +x awstats_updateall.pl
./awstats_updateall.pl now
测试
然后登入真机看一下http://20.0.0.15/awstats/awstats.pl?config=www.51xit.top
crontab -e 设置周期行任务
*/5 * * * * /usr/local/awstats/tool/awstats_updateall.pl now
设置网页自动跳转,方便访问
vim /usr/local/httpd/htdocs/awb.html
<html>
<head>
<meta http-equiv=refresh content="0;
url=http://20.0.0.15/awstats/awstats.pl?config=www.51xit.top">
</head>
<body></body>
</html>