4.Apache网页优化

news2024/11/23 21:10:52

文章目录

  • Apache网页优化
    • 网页压缩
    • 网页缓存
    • 隐藏版本信息
    • Apache防盗链

Apache网页优化

  • Apache网页优化

    • 网页压缩
    • 网页缓存
  • Apache安全优化

    • 隐藏版本信息
    • 配置防盗链

网页压缩

  • 配置Apache的网页压缩功能,是使用gzip压缩算法来对网页内容进行压缩后再传输到客户端浏览器

  • 作用

    • 降低了网络传输的字节数,加快网页加载的速度
    • 节省流量,改善用户的浏览体验
    • gzip与搜索引擎的抓取工具有着更好的关系
  • Apache实现网页压缩的功能模块包括

    • mod_ gzip 模块
    • mod_ deflate 模块
  • Apache 1.x

    • 没有内建网页压缩技术,但可使用第三方mod_ _gzip 模块执行压缩
  • Apache 2.x

    • 在开发的时候,内建了mod_ deflate 这个模块,取代mod_ gzip
  • mod_gzip 模块与mod_deflate 模块

    • 两者均使用gzip压缩算法,运作原理类似
    • mod_deflate压缩速度略快, 而mod_gzip的压缩比略高_
    • mod_gzip对服务器CPU的占用要高一些
    • 高流量的服务器使用mod_deflate可能会比mod_gzip 加载速度更快
apachectl -t -D DUMP_MODULES | grep "deflate"       ##查看是否有相关模块
systemctl stop httpd
cd /usr/local/httpd/conf
mv httpd.conf httpd.conf.bak

./configure \
--prefix=/usr/local/httpd \
--enable-so \
--enable-rewrite \
--enable-charset-lite \
--enable-cgi \
--enable-deflate	

make -j2
make install
vim /usr/local/httpd/conf/httpd.conf


--52行--修改
Listen 192.198.80.10:80


--199行--修改
ServerName www.ggl.com:80

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





--末行添加--

<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>


<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml text/javascript text/jpg text/png					
DeflateCompressionLevel 9			
SetOutputFilter DEFLATE				
</IfModule>
apachectl -t			                            #验证配置文件的配置是否正确
apachectl -t -D DUMP_MODULES | grep "deflate"		#检查 mod_deflate 模块是否已安装
  deflate_module (shared)							#已安装的正确结果

systemctl start httpd
5.测试 mod_deflate 压缩是否生效
cd /usr/local/httpd/htdocs

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

在这里插入图片描述

网页缓存

  • 通过mod_ expire模块配置 Apache,使网页能在客户端浏览器缓存一段时间, 以避免重复请求
  • 启用mod_ expire模块后, 会自动生成页面头部信息中的Expires标签和Cache-Control标签,客户端浏览器根据标签决定I下次访问是在本地机器的缓存中获取页面不需要向服务器再次发出请求,从而降低客户端的访问频率和次数,达到减少不必要的流量和增加访问速度的目的
apachectl -t -D DUMP_MODULES | grep "expires"

检查是否安装 mod_expires 模块
systemctl stop httpd
cd /usr/local/httpd/conf
mv httpd.conf httpd.conf.bak1


yum -y install gcc gcc-c++ pcre pcre-devel zlib-devel


./configure \
--prefix=/usr/local/httpd \
--enable-so \
--enable-rewrite \
--enable-charset-lite \
--enable-cgi \
--enable-deflate \
--enable-expires		


make -j2 
make install
vim /usr/local/httpd/conf/httpd.conf

--52行--修改
Listen 192.198.80.10:80

--111行--取消注释
LoadModule expires_module modules/mod_expires.so		#开启mod_expires 模块

--199行--取消注释,修改
ServerName www.ggl.com:80

--末行添加--

<IfModule mod_expires.c>
  ExpiresActive On								#打开网页缓存功能
  ExpiresDefault "access plus 60 seconds"		#设置缓存60秒
</IfModule>



<IfModule mod_expires.c>
  ExpiresActive On								
  ExpiresDefault "access plus 3600 seconds"		
</IfModule>
apachectl -t			                           #验证配置文件的配置是否正确
apachectl -t -D DUMP_MODULES | grep "expires"		#检查 mod_deflate 模块是否已安装
  deflate_module (shared)							#已安装的正确结果

systemctl start httpd

在这里插入图片描述

隐藏版本信息

在这里插入图片描述

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 restart httpd

在这里插入图片描述

Apache防盗链

##检查是否安装 mod_rewrite 模块

apachectl -t -D DUMP_MODULES | grep "rewrite"
##配置 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://ggl.com/.*$ [NC]				#设置匹配规则
  RewriteCond %{HTTP_REFERER} !^http://ggl.com$ [NC]
  RewriteCond %{HTTP_REFERER} !^http://www.ggl.com/.*$ [NC]
  RewriteCond %{HTTP_REFERER} !^http://www.ggl.com/$ [NC]
  RewriteRule .*\.(gif|jpg|swf)$ http://www.ggl.com/error.png		#设置跳转动作
</Directory>






<Directory "/usr/local/httpd/htdocs">
  Options Indexes FollowSymLinks
  AllowOverride None
  Require all granted

  RewriteEngine On 						
  RewriteCond %{HTTP_REFERER} !^http://ggl.com/.*$ [NC]				
  RewriteCond %{HTTP_REFERER} !^http://ggl.com$ [NC]
  RewriteCond %{HTTP_REFERER} !^http://www.ggl.com/.*$ [NC]
  RewriteCond %{HTTP_REFERER} !^http://www.ggl.com/$ [NC]
  RewriteRule .*\.(gif|jpg|swf)$ http://www.ggl.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” :表示转发到这个路径 。

在这里插入图片描述

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

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

相关文章

LNMT架构之反向代理负载均衡

目录 一、实验前提环境配置 &#xff08;一&#xff09;关闭防火墙&#xff0c;安装本地yum &#xff08;二&#xff09;部署tomcat &#xff08;三&#xff09;部署Mariadb &#xff08;四&#xff09;部署nginx 二、反向代理负载均衡 方法一&#xff1a;&#xff08;轮…

【算法学习系列】07 - 无序数组中的局部最小值问题

文章目录 说明约束条件简单说下思路解决方案随机无序数组样本生成器算法实现验证代码进行大样本随机测试验证算法正确性 说明 在算法中&#xff0c;局部最小值是指一个函数在一个局部范围内的最小值。 具体而言&#xff0c;如果一个函数在一个小区间内的取值都比该区间内的其他…

C++:STL--priority_queue

文章目录 一.STL设计思想:容器适配器STL--stack的代码设计STL--queue的代码设计stack和queue的默认容器适配器deque的数据结构解析deque的存储结构示意图 二.C仿函数仿函数示例 三.STL--priority_queue(优先级队列)1.C优先级队列的数据结构2.priority_queue的实现框架比较函数(…

chatgpt赋能python:Python中创建画布的函数——matplotlib

Python中创建画布的函数——matplotlib Python作为一种强大的编程语言&#xff0c;拥有许多重要且广泛应用的模块和库。其中&#xff0c;matplotlib是一种用于制作高质量的图形和图表的库&#xff0c;而创建画布的函数便是其基础功能之一。 什么是matplotlib&#xff1f; Ma…

C语言---初始C语言

1、初始C语言 1、编译器主要有&#xff1a;Clang、GCC、WIN-TC、MSVC、Turbo C等 什么是编译&#xff1f; test.c----------------------------->test.exe 这个过程需要经过编译、链接等过程&#xff0c;而众多编译器实现的功能就是把我们写的test.c进行编译。 2、VS20…

如何把“困在”内网的数据释放,进行安全的流转传输呢?

互联网大时代&#xff0c;数据的生产使用与互联网紧密相关&#xff0c;但数据安全和网络安全却既有联系又互不相同。数据安全和网络安全的突出区别是核心主体不同&#xff0c;数据安全关注的数据全生命周期的安全&#xff0c;而网络安全则是侧重保障网络体系和网络环境的安全性…

硬卷完了!低代码打怪升级进阶成神之路(2023年最新版)

一、背景 应用开发周期长一直是IT部门和业务部门面临的问题。 IT部门总是被新的应用需求弄得不堪重负。他们不可能完成业务部门想要完成的每一个项目。同时&#xff0c;业务部门的用户厌倦了等待&#xff0c;并开始完全绕过IT部门。 今天&#xff0c;我们来探索一下“低代码开发…

制药企业高效过滤器检漏参考法规、方法及操作步骤

对制药企业来讲&#xff0c;高效过滤器检漏主要是现场检漏&#xff0c;通过DOP法来发现滤器本身及运输、安装过程中可能存在的问题。常使用气溶胶光度计及多分散气溶胶进行检漏。依据的标准是2010药品GMP指南(测试方法采用ISO14644-3)。 对于制药企业来说&#xff0c;高效过滤器…

自动驾驶TPM技术杂谈 ———— 边缘检测

文章目录 介绍边缘检测与微分运算离散信号的差分滤波Robert算子Prewitt算子Sobel算子拉普拉斯算子 介绍 计算机视觉&#xff08;Computer Vision&#xff0c;CV&#xff09;是一门使用计算机模拟生物视觉的学科&#xff0c;目的是使用计算机代替人眼实现对目标的识别、分类、跟…

3.2. 数学类(Math、BigInteger、BigDecimal)

1. Math类 Math类提供了一些基本的数学函数&#xff0c;如求平方根、绝对值、三角函数等。它是一个final类&#xff0c;并且所有的方法都是static的&#xff0c;因此无需创建对象&#xff0c;直接使用类名调用方法即可。 以下是Math类的一些常用方法&#xff1a; abs(double…

抖音seo源码-抖音搜索源码-抖音下拉词-抖音关键词排名系统搭建

为了优化抖音平台上的内容&#xff0c;开发抖音关键词排名系统成为了必要的措施。该系统可以针对搜索结果和下拉词进行分析&#xff0c;为用户提供更准确的搜索结果。为实现这一目标&#xff0c;开发团队进行了大量的市场调查和用户研究。 在开发过程中&#xff0c;团队利用了…

mysql8+忘记密码的详细解决方法

mysql8忘记密码的详细解决方法 不同的版本&#xff0c;可能处理的方式不一样&#xff0c;这里说一下8以上的版本处理密码忘记的问题&#xff0c;windows系统。 一.问题&#xff1a; 太久没用mysql &#xff0c;忘记了原先的root密码 二&#xff1a;解决 1.关闭mysql服务,我的…

代码随想录算法训练营第四十八天 | 力扣 198.打家劫舍, 213.打家劫舍II, 337.打家劫舍III

198.打家劫舍 题目 198. 打家劫舍 你是一个专业的小偷&#xff0c;计划偷窃沿街的房屋。每间房内都藏有一定的现金&#xff0c;影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统&#xff0c;如果两间相邻的房屋在同一晚上被小偷闯入&#xff0c;系统会自动报警…

word文档生成PDF文档时候自动生成书签方法

0 Preface/Foreword 在日常工作中&#xff0c;经常需要写技术文档&#xff0c;为了排版美观&#xff0c;一般会选择word&#xff0c;这样就可以生成目录。 word文件可以很方便生产PDF文档&#xff0c;方便分享给同事。 在阅读PDF文档时&#xff0c;看到有些PDF文档在左侧有一…

Kafka入门(安装和SpringBoot整合)

文章目录 一、Docker安装Kafka1. 创建网络2. 安装zookeeper3. 安装Kafka 二、Kafka介绍1. Kafka简介 三、SpringBoot整合Kafka1. 引入pom依赖2. application.propertise配置3. Hello Kafka(Producer)4. Consumer Kafka5. 带回调的生产者6. 自定义分区器7. kafka事务提交8. 指定…

如何将 O2OA (翱途) 集成到阿里钉钉

O2OA 平台拥有配套的原生开发的安卓和 IOS 移动 APP&#xff0c;可以以微应用的方式集成到阿里钉钉&#xff0c;同步钉钉的企业通讯录作为本地组织人员架构&#xff0c;并且可以将待办等通知直接推送到钉钉进行消息提醒。本篇主要介绍如何将 O2OA 集成到阿里钉钉实现钉钉办公。…

欧科云链(01499.HK)成格林威治经济论坛钻石级行业独家合作伙伴

5月30日讯&#xff0c;欧科云链控股有限公司&#xff08;“欧科云链控股”&#xff0c;1499.HK&#xff09;官宣成为全球高端经济峰会格林威治经济论坛(Greenwich Economic Forum&#xff0c;下称GEF论坛)的钻石级行业独家合作伙伴。该论坛将于6月15日至16日&#xff0c;首次在…

【维生素C语言】附录:Github 使用教学

&#x1f451; 全新Python高级软件实践专栏&#xff1a; 一起玩蛇啊 &#x1f449; 《一起玩蛇》&#x1f40d; &#x1f4ad; 写在前面&#xff1a;本章我们将介绍 Git 的基本使用方法&#xff0c;包括注册 GitHub 账号、设置 Git、创建本地存储库、复制本地存储库、导入远程…

electron24整合vite4+vue3创建跨端桌面程序

基于Electron集成Vite4.x构建桌面端exe应用 electron24-vite4-vue3 运用最新版本electron结合vite4.x创建vue3桌面端应用程序。 // 版本信息 vite: ^4.3.2 vue: ^3.2.47 electron: ^24.4.0 electron-builder: ^23.6.0创建vitevue3项目 // 初始化项目 npm create vitelatest el…

Echarts绘制K线图,文末源码地址!

文章目录 K线图Apache Echarts绘制K线图完整源码地址 本文中仅展示部分关键代码&#xff0c;文末有完整源码地址&#xff0c;欢迎下载&#xff01; K线图 K线图是一种常见的股票价格走势图表&#xff0c;它是用于显示股票价格变化的一种图表形式。K线图以日、周、月等周期为单…