Apache网页的日志分割与优化

news2024/11/17 5:38:38

Apache网页的日志分割与优化

  • 一、日志分割的作用
  • 二、rotatelogs 分割
      • 1.修改apache服务的主配置文件
      • 2.创建分割日志保存目录
      • 3.浏览器访问
  • 三、AWStats 分析系统
      • 1.将安装AWStats 所需软件包传到/opt目录下
      • 2.安装 AWStats 软件包
      • 3.为要统计的站点建立配置文件
      • 4.修改自动生成的 awstats 访问权限,加载 CGI 模块
      • 5.修改站点统计配置文件
      • 6.执行日志分析,并设置 cron 计划任务
      • 7.访问 AWStats 分析系统站点
      • 8.优化网页地址
  • 四、Apache 安全优化
      • 1.Apache 网页的压缩
      • 2. Apache的网页缓存处理
      • 3.Apache版本信息的隐藏
  • 五、Apache 防盗链
      • 1.盗链实验展示
      • 2.防盗链措施演示

一、日志分割的作用

随着服务访问量越来越大,服务器产生的日志文件也会越来越大,对其进行分割管理,单个日志文件不会变得异常庞大,有利于对日志进行综合分析、监控等。另外,当服务器遇到故障时,运维人员就要打开日志文件进行分析,打开的过程不会消耗很长时间,也势必会减少处理故障的时间。

二、rotatelogs 分割

使用Apache 自带 rotatelogs 分割工具,将 Apache 的日志进行按每天的日期自动分割。

1.修改apache服务的主配置文件

vim /usr/local/httpd/conf/httpd.conf
276行--修改 分割错误日志
ErrorLog "| /usr/local/bin/rotatelogs -l /var/log/httpd/error_%Y%m%d.log 86400"		
304行--修改 分割访问日志
CustomLog "| /usr/local/bin/rotatelogs -l /var/log/httpd/access_%Y%m%d.log 86400" combined	

备注:
开头的 | 为管道符号。
-l选项表示使用本地时间为时间基准。
86400表示一天,即每天生成一个新的日志文件。

在这里插入图片描述

2.创建分割日志保存目录

创建分割后的日志文件保存目录
mkdir /var/log/httpd			
systemctl restart httpd

3.浏览器访问

http://192.168.30.10  

根据时间分割的日志文件
ls /var/log/httpd 

在这里插入图片描述

三、AWStats 分析系统

AWStats 是使用Perl 语言开发的一款开源日志分析系统,它用来完成自动化的日志统计与分析工作。

1.将安装AWStats 所需软件包传到/opt目录下

awstats-7.6.tar.gz

2.安装 AWStats 软件包

cd /opt
tar zxvf awstats-7.6.tar.gz
mv /opt/awstats-7.6 /usr/local/awstats

在这里插入图片描述

3.为要统计的站点建立配置文件

cd /usr/local/awstats/tools
./awstats_configure.pl
......
Config file path ('none' to skip web server setup):
> /usr/local/httpd/conf/httpd.conf          #输入httpd服务主配置文件的路径
Your web site, virtual server or profile name:
> www.ztm.com                   		   	#输入要统计的站点域名

其它全部是y 或者 回车

在这里插入图片描述

4.修改自动生成的 awstats 访问权限,加载 CGI 模块

Apache 2.4 以上版本需要加载CGI 模块

vim /usr/local/httpd/conf/httpd.conf
ErrorLog "logs/error_log"
CustomLog "logs/access_log" combined
......
--143行--
<IfModule !mpm_prefork_module>
	LoadModule cgid_module modules/mod_cgid.so		#取消注释
</IfModule>
<IfModule mpm_prefork_module>
	LoadModule cgi_module modules/mod_cgi.so		#取消注释
</IfModule>
......
--跳至末行修改--
<Directory "/usr/local/awstats/wwwroot">
    Options None
    AllowOverride None
    #Order allow,deny			#注释掉					
    #Allow from all				#注释掉
    Require all granted			#添加
</Directory>

在这里插入图片描述
在这里插入图片描述

5.修改站点统计配置文件

vim /etc/awstats/awstats.www.kgc.com.conf
修改访问日志文件位置(由于日志格式问题,不能设置虚拟主机的日志)
LogFile="/usr/local/httpd/logs/access_log"		
awstats目录默认不存在,需要手动创建
DirData="/var/lib/awstats"			

mkdir /var/lib/awstats			

在这里插入图片描述

在这里插入图片描述

6.执行日志分析,并设置 cron 计划任务

systemctl restart httpd
cd /usr/local/awstats/tools/
更新数据(根据站点配置文件指定的日志文件路径获取日志数据)
./awstats_updateall.pl now  	
#注意,更新数据前最好先把access.log文件清空后重新访问站点,再获取日志数据。

设置cron计划任务
crontab -e
*/5 * * * * /usr/local/awstats/tools/awstats_updateall.pl now

systemctl start crond

7.访问 AWStats 分析系统站点

systemctl stop firewalld
systemctl disable firewalld
setenforce 0

echo "192.168.80.10 www.kgc.com" >> /etc/hosts
浏览器访问
http://www.ztm.com/awstats/awstats.pl?config=www.ztm.com

8.优化网页地址

vim /usr/local/httpd/htdocs/aws.html
<html>
<head>
<meta http-equiv=refresh content="0;url=http://www.kgc.com/awstats/awstats.pl?config=www.kgc.com">
</head>
<body></body>
</html>

浏览器访问
http://www.kgc.com/aws.html

四、Apache 安全优化

在企业中,部署Apache后只采用默认的配置参数,会引发网站很多问题,换言之默认配置是针对以前较低的服务器配置的,以前的配置已经不适用当今互联网时代。
为了适应企业需求,就需要考虑如何提升Apache的性能与稳定性,这就是Apache优化的内容。

1.Apache 网页的压缩

1.检查是否安装 mod_deflate 模块
apachectl -t -D DUMP_MODULES | grep "deflate"
2.如果没有安装mod_deflate 模块,重新编译安装 Apache 添加 mod_deflate 模块

systemctl stop httpd.service
cd /usr/local/httpd/conf
mv httpd.conf httpd.conf.bak

yum -y install gcc gcc-c++ pcre pcre-devel zlib-devel
cd /opt/httpd-2.4.29/
./configure \
--prefix=/usr/local/httpd \
--enable-so \
--enable-rewrite \
--enable-charset-lite \
--enable-cgi \
--enable-deflate				#加入mod_deflate 模块

make && make install

3.配置 mod_deflate 模块启用

vim /usr/local/httpd/conf/httpd.conf
#52行--修改
Listen 192.198.80.10:80

#105行--取消注释,开启mod_deflate 模块
LoadModule deflate_module modules/mod_deflate.so		

#197行--取消注释,修改
ServerName www.kgc.com:80
--末行添加--
<IfModule mod_deflate.c>
#代表对什么样的内容启用gzip压缩
AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml text/javascript text/jpg text/png
#代表压缩级别,范围为1~9	                                 
DeflateCompressionLevel 9			      
#代表启用deflate 模块对本站点的输出进行gzip压缩
SetOutputFilter DEFLATE				         
</IfModule>

4.检查安装情况,启动服务

#验证配置文件的配置是否正确
apachectl -t
#检查 mod_deflate 模块是否已安装			                       
apachectl -t -D DUMP_MODULES | grep "deflate"
#已安装的正确结果	
deflate_module (shared)
#重启服务
systemctl start httpd.service

5.测试 mod_deflate 压缩是否生效

cd /usr/local/httpd/htdocs
先将game.jpg文件传到/usr/local/httpd/htdocs目录下
vim index.html
<html><body><h1>t works!It works!</h1>
<img src="game.jpg"/>
</body></html>

方法一:
在Linux系统中,打开火狐浏览器,右击点查看元素
选择 网络 ---> 选择 HTML、WS、其他 
访问 http://192.168.30.10 ,双击200响应消息查看响应头中包含 Content-Encoding: gzip

方法二:
在Windows系统中依次安装 Microsoft.NET4 和fiddler 软件,打开fiddler 软件
选择 inspectors ---> 选择 Headers
浏览器访问 http://192.168.30.10 ,双击200响应消息查看 Content-Encoding: gzip

在这里插入图片描述

2. Apache的网页缓存处理

减少网络延迟,加快页面打开速度–缓存比源服务器离客户端更近,因此,从缓存请求内容比从源服务器所用时间更少,缓存的使用能够明显加快页面打开速度,达到更好的体验。
降低服务器的压力–给网络资源设定有效期之后,用户可以重复使用本地的缓存,减少对源服务器的请求,间接降低服务器的压力。同时,搜索引擎的爬虫机器人也能根据过期机制降低爬取的频率,也能有效降低服务器的压力。
减少网络带宽损耗–无论对于网站运营者或者用户,带宽都代表着金钱,当Web缓存副本被使用时,只会产生极小的网络流量,可以有效的降低运营成本。

1.检查是否安装 mod_expires 模块
apachectl -t -D DUMP_MODULES | grep "expires"

2.如果没有安装mod_expires 模块,重新编译安装 Apache 添加 mod_expires模块

systemctl stop httpd.service
cd /usr/local/httpd/conf
mv httpd.conf httpd.conf.bak1

yum -y install gcc gcc-c++ pcre pcre-devel zlib-devel
cd /opt/httpd-2.4.29/
./configure \
--prefix=/usr/local/httpd \
--enable-so \
--enable-rewrite \
--enable-charset-lite \
--enable-cgi \
--enable-deflate \
--enable-expires			                           ##加入mod_expires 模块

make && make install

3.配置 mod_expires 模块启用

vim /usr/local/httpd/conf/httpd.conf
--52行--修改
Listen 192.198.30.10:80
--111行--取消注释
LoadModule expires_module modules/mod_expires.so		##开启mod_expires 模块
--199行--取消注释,修改
ServerName www.ztm.com:80
--末行添加--
<IfModule mod_expires.c>
  ExpiresActive On								        ##打开网页缓存功能
  ExpiresDefault "access plus 60 seconds"	        	##设置缓存60秒
</IfModule>

4.检查安装情况,启动服务

#验证配置文件的配置是否正确
apachectl -t
#检查 mod_deflate 模块是否已安装			
apachectl -t -D DUMP_MODULES | grep "expires"
#已安装的正确结果		
deflate_module (shared)							
#重启服务
systemctl start httpd.service

5.测试缓存是否生效

cat /usr/local/httpd/htdocs/index.html

方法一:
在Linux系统中,打开火狐浏览器,右击点查看元素
选择 网络 ---> 选择 HTML、WS、其他 
访问 http://192.168.30.10 ,双击200消息查看响应头中包含 Expires 项

方法二:
在Windows系统中依次安装 Microsoft.NET4 和fiddler 软件,打开fiddler 软件
选择 inspectors ---> 选择 Headers
浏览器访问 http://192.168.30.10 ,双击200消息查看 Expires 项	

在这里插入图片描述

3.Apache版本信息的隐藏

如果我们开启了Apache服务,那么他人就可以通过F12找到你的Apache版本号,从而利用一些已知的漏洞来进行攻击,这是非常危险的。所以为了减少一点风险,我们最好选择隐藏Apache的版本信息。


vim /usr/local/httpd/conf/httpd.conf
491行--取消注释
Include conf/extra/httpd-default.conf

vim /usr/local/httpd/conf/extra/httpd-default.conf
55行--修改 将原本的 Full 改为 Prod,只显示名称,没有版本
ServerTokens Prod            #
#ServerTokens 表示 Server 回送给客户端的响应头域是否包含关于服务器 OS 类型和编译过的模块描述信息。

systemctl restart httpd.service

浏览器访问 http://192.168.30.10 ,双击200消息查看 Server 项

在这里插入图片描述

五、Apache 防盗链

互联网时代,网站最为关心的问题就是用户访问量。而吸引用户的往往就是新颖的标题,图片及其内容,而承载着这些,需要占用服务器的资源。而有些缺德企业会将自己网站中图片重定向到你的网站上,读取你的图片,占用着你的带宽,服务器资源,但访问量却被它所占据。

1.盗链实验展示

在这里插入图片描述

1.盗链主机访问被盗链主机,窃取图片网络路径
在这里插入图片描述

2.盗链主机设置自己的网站 图片资源

在这里插入图片描述
3.盗取后的访问测试
在这里插入图片描述

2.防盗链措施演示

(1)重新编译安装 Apache 添加 mod_rewrite模块

systemctl stop httpd.service
cd /usr/local/httpd/conf
mv httpd.conf httpd.conf.bak2
 
yum -y install gcc gcc-c++ pcre pcre-devel zlib-devel
cd /opt/httpd-2.4.29/
./configure \
--prefix=/usr/local/httpd \
--enable-so \
--enable-rewrite \					                         #加入mod_rewrite 模块
--enable-charset-lite \ 
--enable-cgi \
--enable-deflate \
--enable-expires
 
make && make install

(2)配置 mod_rewrite 模块启用

vim /usr/local/httpd/conf/httpd.conf
--157行--取消注释
LoadModule rewrite_module modules/mod_rewrite.so
--224行--
<Directory "/usr/local/httpd/htdocs">
  Options Indexes FollowSymLinks
  AllowOverride None
  Require all granted

  RewriteEngine On 													#打开 rewrite 功能,加入 mode_rewrite 模块内容
  RewriteCond %{HTTP_REFERER} !^http://kgc.com/.*$ [NC]				#设置匹配规则
  RewriteCond %{HTTP_REFERER} !^http://kgc.com$ [NC]
  RewriteCond %{HTTP_REFERER} !^http://www.kgc.com/.*$ [NC]
  RewriteCond %{HTTP_REFERER} !^http://www.kgc.com/$ [NC]
  RewriteRule .*\.(gif|jpg|swf)$ http://www.kgc.com/error.png		#设置跳转动作
</Directory>

备注:
RewriteCond %{HTTP_REFERER} !^http://www.kgc.com/.*$ [NC]  的字段含义:
“%{HTTP_REFERER}” :存放一个链接的 URL,表示从哪个链接中转访问目录下的静态资源。
“!^” :表示不以后面的字符串开头。
“http://www.kgc.com” :是本网站的路径,按整个字符串匹配。
“.*$” :表示以任意字符结尾。
“[NC]” :表示不区分大小写字母。

RewriteRule .*\.(gif|jpg|swf)$ http://www.kgc.com/error.png  的字段含义:
“.” :表示匹配一个字符。
“*” :表示匹配 0 到多个字符,与“.”合起来的意思是匹配 0 到多次前面的任意字符,如果是 1 到多次匹配可以用“+”表示。
“\.” :在这里的“\”是转义符,“\.”就代表符号“.”的意思。因为“.”在指令中是属于规则字符,有相应的含义, 如果需要匹配,需要在前面加个转义符“\”,其它规则字符如果需要匹配,也做同样处理。
“(gif|jpg|swf)” :表示匹配“gif”、“jpg”、“swf”任意一个,“$”表示结束。最后的规则是以“.gif”、“.jpg”、“.swf”结尾, 前面是1到多个字符的字符串,也就是匹配图片类型的文件。
“http://www.kgc.com/error.png” :表示转发到这个路径 。

(3)网页准备

Web源主机配置:
cd /usr/local/httpd/htdocs
将game.jpg、error.png文件传到/usr/local/httpd/htdocs目录下
vim index.html
<html><body><h1>this is kgc.com!</h1>
<img src="caocao.jpg"/>
</body></html>

echo "192.168.30.10 www.ztm.com" >> /etc/hosts 
echo "192.168.30.20 www.hss.com" >> /etc/hosts 

盗链网站主机:
cd /usr/local/httpd/htdocs				#yum安装的httpd服务的默认路径为/var/www/html/
vim index.html
<html><body><h1>this is hss.com!</h1>
<img src="http://www.ztm.com/game.jpg"/>
</body></html>

echo "192.168.30.10 www.ztm.com" >> /etc/hosts 
echo "192.168.30.20 www.hss.com" >> /etc/hosts 

(4)在盗图网站主机上进行浏览器验证
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/611904.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

电表的698通信协议

原文连接&#xff1a;https://blog.csdn.net/ss86655/article/details/109997891 该协议规定了用电信息的数据交换过程&#xff0c;一般用于主站与电能表之间、终端与电能表之间的数据交换&#xff0c;主站与终端一般用不同的客户机地址来区分。1、通信架构 有两种方向的数据…

linux系统中代码突然无法执行,没有权限访问文件,但是可以在文件管理器中查看文件

前言 这段时间遇到了一个非常离谱的问题&#xff0c;我的只要设计移动硬盘中数据的所有代码突然无法运行&#xff0c;我折腾了很久一直觉得是移动硬盘坏了&#xff0c;但拿到其他电脑上去是可以运动的。今天终于偶然发现了问题。 直接说结论&#xff1a; 移动硬盘的挂载点变了…

SQL-DML、DQL查询数据

SQL-DML、DQL查询数据 1 DML DML主要是对数据进行增&#xff08;insert&#xff09;删&#xff08;delete&#xff09;改&#xff08;update&#xff09;操作。 1.1 添加数据 给指定列添加数据 INSERT INTO 表名(列名1,列名2,…) VALUES(值1,值2,…);给全部列添加数据 INSERT…

MySQL数据库性能优化技巧介绍

MySQL是目前最流行和广泛使用的开源关系型数据库之一&#xff0c;随着数据量的增长和访问负载的提高&#xff0c;优化数据库性能变得至关重要&#xff0c;以确保系统能够高效地处理大量的并发请求。本文将记录一些MySQL数据库性能优化的技巧&#xff0c;提高数据库的运行效率&a…

程序员——应届生毕业,竟有20k高薪岗位?!

马士兵优极限训练营让我在技术和个人能力上都有了很大的提升。在未来的职业生涯中&#xff0c;我会继续努力&#xff0c;不断学习和成长&#xff0c;为自己和社会做出更大的贡献 01 选择大数据 只因更有前景 我是计算机专业出身&#xff0c;但是在大学的时候我对大数据行业更…

vue3 ---- 递归组件生成menu菜单 路由守卫鉴权

目录 递归组件​ el-menu 父组件 子组件 路由 Vue路由守卫实现登录鉴权 全局守卫 路由独享的守卫 组件内的守卫 完整的导航解析流程 对于一些有规律的DOM结构&#xff0c;如果我们再一遍遍的编写同样的代码&#xff0c;显然代码是比较繁琐和不科学的&#xff0c;而且…

5个有效方法教你如何正确使用云渲染,防错必备!

随着技术的进步和计算能力的提升&#xff0c;云渲染成为了现代计算机图形学和动画制作中不可或缺的一环。无论是在电影、游戏还是建筑可视化等领域&#xff0c;渲染图像的质量和效率都对最终结果有着巨大的影响。然而&#xff0c;云渲染也面临着一些潜在的问题&#xff0c;如渲…

一文看懂B TREE和B+TREE数据结构实现过程及数据存储结构

概述 一文看懂B TREE和BTREE数据结构实现过程及数据存储结构 一、B tree数据结构实现过程 这里有一个陌生区关于 Max. Degree&#xff0c;这个你可以理解为阶&#xff0c;也可以理解为度,即B 树的阶数&#xff08;一个节点存储的键的数量&#xff09; 这里有一个陌生区关于…

简单上手!快速将另一个报表的页面添加到 FastReport .NET!

FastReport 是功能齐全的报表控件&#xff0c;可以帮助开发者可以快速并高效地为.NET&#xff0c;VCL&#xff0c;COM&#xff0c;ActiveX应用程序添加报表支持&#xff0c;由于其独特的编程原则&#xff0c;现在已经成为了Delphi平台最优秀的报表控件&#xff0c;支持将编程开…

ROS:古月居第一次作业(话题与服务编程、动作编程、TF编程)

一.话题与服务编程 话题与服务编程&#xff1a;通过代码新生一只海龟&#xff0c;放置在&#xff08;5,5&#xff09;点&#xff0c;命名为“turtle2”&#xff1b;通过代码订阅turtle2的实时位置并打印在终端&#xff1b;控制turtle2实现旋转运动&#xff1b; demo_turtle.l…

智能出行更安全,亚马逊云科技携手木卫四助汽车客户安全合规出海

木卫四&#xff08;北京&#xff09;科技有限公司在汽车网络安全领域拥有独特专业知识&#xff0c;其融合人工智能算法的安全检测引擎可以不依赖车辆中安装的代理软件&#xff0c;只需几周即可快速部署实施&#xff0c;是汽车网络安全领域的技术领先者。 在亚马逊云科技初创团…

消息中间件之ActiveMq安装

文章目录 前言安装下载地址安装 使用控制台调整配置文件 前言 2023年年中了&#xff0c;又遇到了老朋友activeMq&#xff0c;上次接触activeMq还是在15年的时候&#xff0c;系统中用到了这个消息中间件。 阔别8年之久&#xff0c;竟然又用到了这个老家伙&#xff01; 安装 要…

【6.05 代随_48day】 打家劫舍、打家劫舍 II、打家劫舍 III

打家劫舍、打家劫舍 II、打家劫舍 III 打家劫舍1.方法图解步骤代码 打家劫舍 II1.方法代码 打家劫舍 III图解步骤代码 打家劫舍 力扣连接&#xff1a;198. 打家劫舍&#xff08;中等&#xff09; 1.方法 确定dp数组&#xff08;dp table&#xff09;以及下标的含义 dp[i]&am…

如何利用 Electron 快速开发一个桌面端应用

前言 一直以来都有听说利用electron可以非常便捷的将网页应用快速打包生成为桌面级应用&#xff0c;并且可以利用 electron 提供的 API 调用原生桌面 API 一些高级功能&#xff0c;于是这次借着论证环信 Web 端 SDK 是否可以在 electron 生成的桌面端正常稳定使用&#xff0c;…

基于国产器件的KCF跟踪算法实现与验证

在国产的FT-M6678 DSP上实现KCF算法是我研究生期间的主要工作&#xff0c;KCF算法的原理与实现已经在之前的文章以及我的Gitee仓库中有部分介绍。这里主要介绍DSP与上位机通信的方式&#xff0c;以及XDMA Linux驱动的使用。具体的设计细节可以看我的毕业设计补充材料。 SRIO与…

SpringBoot 使用validator进行参数校验(实例操作+注意事项+自定义参数校验)

一、实例操作 ①、引入依赖 <dependency><groupId>org.hibernate</groupId><artifactId>hibernate-validator</artifactId><version>6.0.4.Final</version></dependency> ②、创建实体类 package com.springboot.entity;im…

蓝桥杯2022年第十三届决赛真题-出差

题目描述 A 国有 N 个城市&#xff0c;编号为 1 . . . N。小明是编号为 1 的城市中一家公司的员工&#xff0c;今天突然接到了上级通知需要去编号为 N 的城市出差。 由于疫情原因&#xff0c;很多直达的交通方式暂时关闭&#xff0c;小明无法乘坐飞机直接从城市 1 到达城市 N&a…

【教学类-10-03】20230603《空心图案3*2-单元格不重复》( 随机图案拼贴)(中班主题)

作品展示&#xff1a; 背景需求&#xff1a; 最近在做小课题结题资料&#xff0c;看到之前做过的几个学具项目&#xff0c;其中的空心图案拼贴画很不错&#xff08;中班上学期做过&#xff09;想到中6班的孩子还没有玩过&#xff0c;就想再打印一套学具&#xff08;中班下学期…

chat聊天系统消息消费时遇到的问题及优化思路(二)

1、前言 考虑下面几个条件下如何提升kafka的消费速度 消息要求严格有序&#xff0c;如chat聊天消息业务处理速度慢&#xff0c;如处理一条数据需要100ms分片不合理&#xff0c;如有的分区很闲&#xff0c;有的分区消息数量积压 2、解决方案 1、顺序问题 关于消息消费时存在…

leetcode701. 二叉搜索树中的插入操作(java)

二叉搜索树中的插入操作 leetcode701. 二叉搜索树中的插入操作题目描述 递归解题解题思路代码演示 二叉树专题 leetcode701. 二叉搜索树中的插入操作 原题链接&#xff1a; 来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 链接&#xff1a;https://leetcode.cn/problem…