目录
一、Apache连接保持
需主配置文件开启连接保持,默认关闭
[root@server1 ~]# vi /usr/local/httpd/conf/httpd.conf
Include conf/extra/httpd-default.conf #删除#注释,开启连接保持
1.1 Apache连接保持相关参数
vi /usr/local/httpd/conf/extra/httpd-default.conf #连接保持配置路径
KeepAlive
◆ 是否打开连接保持,Off关闭,On打开,默认开启
KeepAlive Timeout #默认5秒保持时间,超过5秒断开
◆ 一次连接多次请求之间的最大间隔时间,两次请求超过该时间连接断开
MaxKeepAliveRequests #默认数量是100
◆ 一次长连接能够传输的最大请求数量
1.2 连接保持项目实操
[root@server1 ~]# vi /usr/local/httpd/conf/extra/httpd-default.conf #查看连接保持相关参数
[root@server1 ~]# vi /usr/local/httpd/conf/httpd.conf #编译配置文件,开启会话保持
Include conf/extra/httpd-default.conf #删除#注释,开启连接保持
[root@server1 ~]# systemctl stop httpd #关闭
[root@server1 ~]# systemctl start httpd #相当于重启
[root@server1 ~]# systemctl status httpd #查看服务状态,服务已开启
[root@server1 ~]# netstat -anpt | grep httpd #查看端口是否开启
[root@server1 ~]# curl http://localhost #查看是否有默认网页
打开网页进行抓包验证
二、Apache访问控制
2.1 作用
控制对网站资源的访问
为特定的网站目录添加访问授权
2.2 常用访问控制方式
客户机地址限制
用户授权限制
2.3 配置访问控制
Require all granted: 允许所有主机访问
Require all denied: 拒绝所有主机访问
Require local: 仅允许本地主机访问
Require [not] host <主机名或域名列表>:允许或拒绝指定主机或域名访问
Require [not] ip <IP地址或网段列表>:允许或拒绝指定IP地址网络访问
2.4 查看访问日志,错误日志
[root@server1 ~]# cd /usr/local/httpd/logs #进入日志列表
[root@server1 logs]# ls -lh #access_log:访问日志;error_log:错误日志
[root@server1 logs]# tail -5 access_log //查看访问日志文件最后5行,可看到谁访问了我
2.5 禁止访问控制项目实操
方法一:
[root@server1 ~]# vi /etc/httpd.conf #编辑配置文件,前面安装Apache链接到/etc目录下的
添加:#需在<Directory "/usr/local/httpd / htdocs">和</Directory>之间,主页内添加,添加到别处不生效
Order deny,allow #顺序先禁止再允许
Deny from 20.0.0.1/32 #禁止某一个网段或ip访问站点下的主页
[root@server1 ~]# systemctl restart httpd #重启服务
[root@server1 ~]# netstat -anpt | grep httpd #查看端口是否开启
访问一下,无法访问
[root@server1 ~]# cd /usr/local/httpd/logs #进入日志列表
[root@server1 logs]# tail -5 error_log #查看错误日志,显示被拒绝
方法二:
[root@server1 ~]# vi /etc/httpd.conf #编辑配置文件,前面安装Apache链接到/etc目录下的
删除:
Order deny,allow #顺序先禁止再允许
Deny from 20.0.0.1/32 #禁止某一个网段或ip访问站点下
添加:#需在<Directory "/usr/local/httpd / htdocs">和</Directory>之间,主页内添加,添加到别处不生效
<RequireAll>
Require all granted
Require not ip 20.0.0.1/32 #拒绝ip访问
</RequireAll>
[root@server1 ~]# systemctl restart httpd #重启服务
访问一下,无法访问
[root@server1 ~]# cd /usr/local/httpd/logs #进入日志列表
[root@server1 logs]# tail -5 error_log #查看错误日志,显示被拒绝
2.6 用户授权限制登录项目实操
[root@server1 ~]# vi /etc/httpd.conf #更改ServerName
[root@server1 ~]# htpasswd -c /usr/local/httpd/conf/.awspwd wkw #创建数据库文件
New password: #输入密码
Re-type new password: #确认密码
Adding password for user wkw #wkw用户已添加
[root@server1 ~]# cat /usr/local/httpd/conf/.awspwd #查看文件
wkw:$apr1$JYx5Cdb4$riP3Lhf.fmKaKUU7ygC8W1
[root@server1 ~]# vi /etc/httpd.conf
添加配置文件,并注释#Require all granted
Order allow,deny #顺序先允许再禁止
Allow from all #允许所有
AuthName "www.aa.com" #授权访问名称
AuthType Basic #认证类型
AuthUserFile /usr/local/httpd/conf/.awspwd #认证文件路径
require valid-user
#别忘添加注释 #Require all granted
[root@server1 ~]# systemctl stop httpd
[root@server1 ~]# systemctl start httpd
[root@server1 ~]# httpd -t #验证语法
Syntax OK
[root@server1 ~]# vi /etc/hosts
#需要授权访问 ,前面设置的用户名wkw密码
登陆后可正常访问
三、日志分割
随着网站的访问量增加,默认情况下Apache的单个日志文件也会越来越大
日志文件占用磁盘空间很大
查看相关信息不方便
对日志文件进行分割
Apache自带rotatelogs分割工具实现
第三方工具cronolog分割
3.1 rotatelogs日志分割项目实操
[root@server1 ~]# vi /etc/httpd.conf #修改
ErrorLog "|/usr/bin/rotatelogs -l logs/error_log_%Y-%m-%d 86400"
#错误日志每86400秒就是一天分割一次,文件夹带时间
[root@server1 ~]# httpd -t
Syntax OK
[root@server1 ~]# cd /usr/local/httpd/logs
[root@server1 logs]# ls -lh //看下设置的日志是否成功
-rw-r--r-- 1 root root 698 11月 26 15:16 access_log
-rw-r--r-- 1 root root 1.3K 11月 26 15:13 error_log
-rw-r--r-- 1 root root 290 11月 26 15:13 error_log_2020-11-26
-rw-r--r-- 1 root root 7 11月 26 15:13 httpd.pid
[root@server1 logs]# cd
[root@server1 ~]# vi /etc/httpd.conf #修改
[root@server1 ~]# cd /usr/local/httpd/logs
[root@server1 logs]# ls -lh
-rw-r--r-- 1 root root 698 11月 26 15:16 access_log
-rw-r--r-- 1 root root 864 11月 26 15:47 access_log_2020-11-26
-rw-r--r-- 1 root root 1.3K 11月 26 15:13 error_log
-rw-r--r-- 1 root root 705 11月 26 15:32 error_log_2020-11-26
-rw-r--r-- 1 root root 7 11月 26 15:32 httpd.pid
3.2 cronolog日志分割项目实操
导入依赖包:cronolog-1.6.2.tar
[root@server2 ~]# tar -zxvf cronolog-1.6.2.tar.gz #解包
[root@server2 ~]# cd cronolog-1.6.2/ #进入主目录
[root@server2 cronolog-1.6.2]# ./configure #配置
[root@server2 cronolog-1.6.2]# make && make install #编译并安装
[root@server2 cronolog-1.6.2]# cd
[root@server2 ~]# which cronolog #显示当前绝对路径
/usr/local/sbin/cronolog
[root@server2 ~]# vi /etc/httpd.conf #修改
[root@server2 ~]# cd /usr/local/httpd/logs
[root@server2 logs]# ls -lh
-rw-r--r-- 1 root root 870 11月 26 17:03 access_log
-rw-r--r-- 1 root root 585 11月 26 17:16 access.log_2020-11-26
-rw-r--r-- 1 root root 1.3K 11月 26 17:03 error_log
-rw-r--r-- 1 root root 705 11月 26 17:09 error.log_2020-11-26
-rw-r--r-- 1 root root7 7 11月 26 17:09 httpd.pid
查看分割效果
[root@server2 logs]# cat error.log_2020-11-26
3.3 AWstats日志分析项目实操
[root@server1 ~]# apachectl -D DUMP_MODULES | grep cgi #检查cgi模块有没有开启
[root@server1 ~]# cd /usr/local/httpd/modules/ #没有,进入模块路径下
[root@server1 modules]# ls /usr/local/httpd/modules/ | grep cgi #查看cgi模块
[root@server1 modules]# vi /etc/httpd.conf #进去开启cgid和cgi两个模块,删除注释#
[root@server1 modules]# cd
#导入依赖包:awstats-7.6.tar
[root@server1 ~]# tar -zxvf awstats-7.6.tar.gz #解包
[root@server1 ~]# mv awstats-7.6 /usr/local/awstats #移到/usr/local/生成awstats文件
[root@server1 ~]# vi /etc/hosts #本地建映射记录
[root@server1 ~]# vi /etc/httpd.conf
[root@server1 local]# cd /usr/local/
[root@server1 local]# ls -lh 查看awstats工具
[root@server1 local]# chown -R root.root awstats //更改属主和属组
[root@server1 local]# cd awstats/ #进入工具目录
[root@server1 awstats]# ls -lh #查看tools工具
[root@server1 awstats]# cd tools #进入工具目录
[root@server1 tools]# ./awstats_configure.pl #进入配置文件
#输入apache配置文件路径
/usr/local/httpd/conf/httpd.conf
#生成awstats的访问路径 localhost/awstats/awstats.pl?config=www.aa.com
[root@server1 tools]# vi /etc/awstats/awstats.www.aa.com.conf //修改程序的主配置文件
[root@server1 tools]# cd
[root@server1 ~]# mkdir /var/lib/awstats
[root@server1 ~]# systemctl stop httpd
[root@server1 ~]# systemctl start httpd
[root@server1 ~]# cd -
[root@server1 tools]# ./awstats_updateall.pl now #抓取
[root@server1 tools]# systemctl stop firewalld
[root@server1 tools]# setenforce 0
[root@server1 tools]# cd
[root@server1 ~]# vi /etc/httpd.conf
#添加:Require all granted
[root@server1 ~]# systemctl stop httpd
[root@server1 ~]# systemctl start httpd
访问主页后重新刷新
[root@server1 ~]# cd -
[root@server1 local]# cd /usr/local/awstats/tools
[root@server1 tools]# ./awstats_updateall.pl now
#网页单独分离
[root@server1 tools]# cd /usr/local/httpd/htdocs
[root@server1 htdocs]# vi xin.html
<html>
<head>
<meta http-equiv=refresh content="0;url=http://20.0.0.11/awstats/awstats.pl?config=www.aa.com">
</head>
<body></body>
</html>