Apache网页优化

本文介绍了Apache网页优化的重要性,并详细讲解了如何配置和启用mod_deflate模块进行网页压缩,以及如何利用mod_expires模块实现网页缓存,以提高服务器性能和用户体验。同时,还提及了隐藏版本信息和防止盗链的策略。

概念

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

网页压缩

检查是否安装 mod_deflate 模块


apachectl -t -D DUMP_MODULES | grep "deflate"

如果没有安装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

在这里插入图片描述

配置 mod_deflate 模块启用

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

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

检查安装情况,启动服务

apachectl -t			#验证配置文件的配置是否正确
apachectl -t -D DUMP_MODULES | grep "deflate"		#检查 mod_deflate 模块是否已安装
  deflate_module (shared)							#已安装的正确结果

systemctl start httpd.service

在这里插入图片描述

测试 mod_deflate 压缩是否生效

cd /usr/local/httpd/htdocs
先将game.jpg文件传到/usr/local/httpd/htdocs目录下

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

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

网页缓存

检查是否安装 mod_expires 模块

apachectl -t -D DUMP_MODULES | grep "expires"


在这里插入图片描述

如果没有安装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

在这里插入图片描述

配置 mod_expires 模块启用

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

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

检查安装情况,启动服务

apachectl -t			#验证配置文件的配置是否正确
apachectl -t -D DUMP_MODULES | grep "expires"		#检查 mod_deflate 模块是否已安装
  deflate_module (shared)							#已安装的正确结果

systemctl start httpd.service

在这里插入图片描述

.测试缓存是否生效

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

在这里插入图片描述
在Linux系统中,打开火狐浏览器,右击点查看元素
选择 网络 —> 选择 HTML、WS、其他
访问 http://192.168.50.60 ,双击200消息查看响应头中包含 Expires 项

在这里插入图片描述

隐藏版本信息

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

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

systemctl start httpd.service

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
浏览器访问 http://192.168.50.60 ,双击200消息查看 Server 项
在这里插入图片描述

Apache 防盗链

.检查是否安装 mod_rewrite 模块

apachectl -t -D DUMP_MODULES | grep "rewrite"

如果没有安装mod_rewrite 模块,重新编译安装 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

配置 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” :表示转发到这个路径 。

整个配置的含义是 使用本网站以外的网站域名 访问本站的图片文件时,显示 error.png 这个图片。

图片显示不出来防盗链
在这里插入图片描述
通过域名访问可以显示出来
在这里插入图片描述

内容概要:本文系统阐述了Java Persistence API(JPA)的核心概念、技术架构、核心组件及实践应用,重点介绍了JPA作为Java官方定义的对象关系映射(ORM)规范,如何通过实体类、EntityManager、JPQL和persistence.xml配置文件实现Java对象与数据库表之间的映射与操作。文章详细说明了JPA解决的传统JDBC开发痛点,如代码冗余、对象映射繁琐、跨数据库兼容性差等问题,并解析了JPA与Hibernate、EclipseLink等实现框架的关系。同时提供了基于Hibernate和MySQL的完整实践案例,涵盖Maven依赖配置、实体类定义、CRUD操作实现等关键步骤,并列举了常用JPA注解及其用途。最后总结了JPA的标准化优势、开发效率提升能力及在Spring生态中的延伸应用。 适合人群:具备一定Java基础,熟悉基本数据库操作,工作1-3年的后端开发人员或正在学习ORM技术的中级开发者。 使用场景及目标:①理解JPA作为ORM规范的核心原理与组件协作机制;②掌握基于JPA+Hibernate进行数据库操作的开发流程;③为技术选型、团队培训或向Spring Data JPA过渡提供理论与实践基础。 阅读建议:此资源以理论结合实践的方式讲解JPA,建议读者在学习过程中同步搭建环境,动手实现文中示例代码,重点关注EntityManager的使用、JPQL语法特点以及注解配置规则,从而深入理解JPA的设计思想与工程价值。
先看效果: https://pan.quark.cn/s/d787a05b82eb 西门子SCALANCE X系列交换机是西门子公司所提供的工业以太网交换机产品系列,其在工业自动化领域具有广泛的应用。 如果在应用期间遭遇固件升级失误或采用了不相容的固件版本,可能会导致交换机无法正常启动。 在这种情况下,通常能够借助FTP(文件传输协议)来恢复交换机的固件,从而使其恢复正常运作。 本文件详细阐述了利用FTP修复SCALANCE X系列交换机固件的方法,并具体说明了实施步骤。 当SCALANCE X系列交换机的固件出现故障时,设备在启动后会自动激活引导加载程序,并通过故障LED的闪烁来表明设备处于特殊情形。 在这种情形下,交换机能够充当FTP服务器,与客户端建立联系,执行固件数据的传输。 需要特别强调的是,对于SCALANCE X200系列交换机,必须经由端口1来连接FTP客户端。 在实施步骤方面,首先需要为交换机指定一个IP地址。 这一步骤通常借助西门子公司提供的PST(Product Support Tools)软件来实施。 在成功配置IP地址之后,就可以通过FTP协议与交换机内部的FTP服务器建立连接,并借助FTP客户端将固件文件传输到交换机。 需要留意的是,在传输固件文件之前,应当先从西门子技术支持网站获取对应订货号的固件版本文件。 一旦固件文件备妥,就可以开始FTP操作。 这通常涉及打开操作系统的DOS窗口,运用FTP指令连接到交换机的FTP服务器,并输入正确的用户名和密码进行身份验证。 在本案例中,用户名和密码均为“siemens”,并且传输模式设定为二进制。 随后,使用FTP的“put”指令将本地固件文件上传至交换机。 值得留意的是,固件文件名必须严格遵循大小写规则。 上传成功后,...
源码地址: https://pan.quark.cn/s/f24fc84966ae 人机交互在电子工程领域中占据着核心地位,它具体指的是单片机系统与用户之间进行信息交换和管理操作的方法。 在此过程中,单片机系统负责接收用户的输入信号,对收集到的信息进行加工处理,并通过特定媒介将处理结果呈现给用户,这些媒介包括但不限于显示器、LED指示灯以及蜂鸣器等设备。 在本探讨的主题中,我们将重点研究按键与1602液晶显示屏之间的交互机制。 1602液晶显示屏是单片机应用领域中一种极为常见的人机交互界面设备,其功能在于能够显示两行文本,每行包含16个字符。 此类显示器通常采用串行或并行接口与单片机设备进行连接,主要用途是展示程序运行的状态信息、数据读取的最终结果以及其他相关的重要资讯。 我们需要深入理解如何对1602液晶显示屏进行配置和控制。 这一过程通常涉及到初始化序列的执行,其中包括设定显示模式(例如开启/关闭状态、光标移动的方向以及是否启用闪烁效果),同时选择合适的数据传输方式(4线或8线模式)。 单片机系统必须向液晶显示屏发送特定的指令集,以此来设定上述参数。 举例来说,可以通过RS(寄存器选择)、RW(读写信号)以及E(使能)引脚与LCD设备进行通信。 接下来,我们将详细讨论按键接口的设计方案。 按键通常作为输入设备存在,允许用户向单片机系统发送指令或数据。 在单片机系统中,按键通常与IO端口相连接,通过检测IO端口电平的变化来判断按键是否被触发。 对于基础的按键应用场景,可能仅需检测按键闭合时产生的低电平信号;而对于更为复杂的应用场景,则可能需要处理消抖问题,以防止因机械接触产生的瞬间抖动导致错误的读数。 在Proteus软件环境中,我们可以构建虚拟的电路模型来模拟单片机系统,其中包括1...
数据集介绍:垃圾分类检测数据集 一、基础信息 数据集名称:垃圾分类检测数据集 图片数量: 训练集:2,817张图片 验证集:621张图片 测试集:317张图片 总计:3,755张图片 分类类别: - 金属:常见的金属垃圾材料。 - 纸板:纸板类垃圾,如包装盒等。 - 塑料:塑料类垃圾,如瓶子、容器等。 标注格式: YOLO格式,包含边界框和类别标签,适用于目标检测任务。 数据格式:图片来源于实际场景,格式为常见图像格式(如JPEG/PNG)。 二、适用场景 智能垃圾回收系统开发: 数据集支持目标检测任务,帮助构建能够自动识别和分类垃圾材料的AI模型,用于自动化废物分类和回收系统。 环境监测与废物管理: 集成至监控系统或机器人中,实时检测垃圾并分类,提升废物处理效率和环保水平。 学术研究与教育: 支持计算机视觉与环保领域的交叉研究,用于教学、实验和论文发表。 三、数据集优势 类别覆盖全面: 包含三种常见垃圾材料类别,覆盖日常生活中主要的可回收物类型,具有实际应用价值。 标注精准可靠: 采用YOLO标注格式,边界框定位精确,类别标签准确,便于模型直接训练和使用。 数据量适中合理: 训练集、验证集和测试集分布均衡,提供足够样本用于模型学习和评估。 任务适配性强: 标注兼容主流深度学习框架(如YOLO等),可直接用于目标检测任务,支持垃圾检测相关应用。
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值