Web进阶——Apache(二)

Web 进阶——Apache(二)

  • 一、Apache 优化
    • 1.安装 Apache
    • 2.访问控制
    • 3.日志分割
      • 1)使用 Rotatelogs 进行日志分割
      • 2)使用 Cronolog 进行日志分割
    • 4.日志合并
    • 5.统计访问量

一、Apache 优化

准备工作

主机名 操作系统 IP地址 版本号
Apache CentOS 7.4 192.168.1.1 httpd-2.2.17.tar.gz

1.安装 Apache

[root@Apache ~]# wget http://archive.apache.org/dist/httpd/httpd-2.2.17.tar.gz
[root@Apache ~]# tar zxf httpd-2.2.17.tar.gz -C /usr/src/
[root@Apache ~]# cd /usr/src/httpd-2.2.17/
[root@Apache httpd-2.2.17]# ./configure --prefix=/usr/local/httpd && make && make install

Web进阶——Apache(二)_第1张图片
安装后优化调整

[root@Apache httpd-2.2.17]# ln -s /usr/local/httpd/bin/* /usr/local/bin/				#优化执行路径
[root@Apache ~]# httpd -v																#查看httpd版本
[root@Apache ~]# sed -i '97s/^#//g' /usr/local/httpd/conf/httpd.conf					#将 # 替换为空
[root@Apache ~]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd					#复制启动文件
[root@Apache ~]# /etc/init.d/httpd start												#启动httpd服务
[root@Apache ~]# netstat -anpt | grep 80												#查看端口是否开启

在这里插入图片描述

2.访问控制

  • 作用:为 Apache 服务提供的页面设置客户端访问权限,为某个用户和某个组加密访问。

1)创建授权用户

[root@Apache ~]# htpasswd -c /usr/local/httpd/conf/htpasswd zhangsan
[root@Apache ~]# htpasswd /usr/local/httpd/conf/htpasswd lisi
[root@Apache ~]# htpasswd /usr/local/httpd/conf/htpasswd wangwu
[root@Apache ~]# cat /usr/local/httpd/conf/htpasswd

Web进阶——Apache(二)_第2张图片
2)为授权用户加入组

[root@Apache ~]# cat <<END > /usr/local/httpd/conf/htgroups
testgroup:zhangsan wangwu
END

Web进阶——Apache(二)_第3张图片
3)配置访问控制

[root@Apache ~]# vim /usr/local/httpd/conf/httpd.conf
131 <Directory "/usr/local/httpd/htdocs">
添加如下:
AuthType Basic														#定义认证的类型为 Basic
AuthName "Log Analysis System"										#提示短语
AuthBasicProvider file												#提供认证者为 file(文件)
AuthUserFile /usr/local/httpd/conf/htpasswd							#指定认证用户文件
AuthGroupFile /usr/local/httpd/conf/htgroups						#指定认证组文件
Require group testgroup												#设置1允许访问的用户或者组
</Directory>
[root@Apache ~]# /etc/init.d/httpd restart
  • 注意:如果设置为所有用户需改为 Require valid-user 即可,若设置单个用户需改为 Require user 用户名 即可。

Web进阶——Apache(二)_第4张图片
Web进阶——Apache(二)_第5张图片

3.日志分割

  • 随着网站访问量的增加,访问日志中的信息会越来越多,也就是说当想要查看或者分析时会极不方便。

1)使用 Rotatelogs 进行日志分割

  • Rotatelogs 是 Apache 自带的一款日志分割工具。
[root@Apache ~]# vim /usr/local/httpd/conf/httpd.conf
将:
CustomLog "logs/access_log" common
替换为:
CustomLog "|/usr/local/httpd/bin/rotatelogs -l /usr/local/httpd/logs/access_%Y%m%d.log 86400" combined
[root@Apache ~]# /etc/init.d/httpd restart
  • -l:表示 local time(本地时间)
  • Y 表示四位年份、m 表示月份、d 表示月份中的天数
  • 最后的 86400 表示每 86400(也就是一天) 秒后切割一次日志。

访问网站验证:
Web进阶——Apache(二)_第6张图片

2)使用 Cronolog 进行日志分割

  • Cronolog 是一款发展已经比较成熟的日志分割工具。
[root@Apache ~]# ls
anaconda-ks.cfg  cronolog-1.6.2.tar.gz  httpd-2.2.17.tar.gz
[root@Apache ~]# tar zxf cronolog-1.6.2.tar.gz -C /usr/src/
[root@Apache ~]# cd /usr/src/cronolog-1.6.2/
[root@Apache cronolog-1.6.2]# ./configure && make && make install

Web进阶——Apache(二)_第7张图片

[root@Apache ~]# which cronolog
/usr/local/sbin/cronolog
将:
CustomLog "|/usr/local/httpd/bin/rotatelogs -l /usr/local/httpd/logs/access_%Y%m%d.log 86400" combined
替换为:
CustomLog "|/usr/local/sbin/cronolog /usr/local/httpd/logs/access_%Y%m%d.log" combined

Web进阶——Apache(二)_第8张图片

4.日志合并

  • 可以将每个服务器每天的日志文件通过 Rsync 下载到专门进行访问统计分析的服务器上进行合并。
[root@localhost ~]# cd /usr/local/httpd/logs/
[root@localhost logs]# sort -k 4 -o all_log access_20210416.log access_log
[root@localhost logs]# awk '{print $1,$4,$5}' all_log
  • -k:指定列进行排序。
  • -o:将排序结果存放到指定的文件中。

Web进阶——Apache(二)_第9张图片

5.统计访问量

统计日志文件中访问数量最多的 10 个IP地址:

[root@localhost ~]# cat <<END > 1.txt 
192.168.1.1 A B
192.168.1.1 A B
192.168.1.2
192.168.1.4 C
END
[root@localhost ~]# awk '{print $1}' 1.txt | sort -n | uniq -c | sort -n | tail

Web进阶——Apache(二)_第10张图片

你可能感兴趣的:(Web,Apache日志分割,统计,IP,访问量,Apache优化,运维,linux)