Linux:apache网页优化

news2024/11/16 23:38:43

Linux:apache网页优化

  • 一、Apache 网页优化
  • 二、网页压缩
    • 2.1 检查是否安装 mod_deflate 模块
    • 2.2 如果没有安装mod_deflate 模块,重新编译安装 Apache 添加 mod_deflate 模块
    • 2.3 配置 mod_deflate 模块启用
    • 2.4 检查安装情况,启动服务
    • 2.5 测试 mod_deflate 压缩是否生效
  • 三、网页缓存
    • 3.1 检查是否安装 mod_expires 模块
    • 3.2.如果没有安装mod_expires 模块,重新编译安装 Apache 添加 mod_expires模块
    • 3.3 配置 mod_expires 模块启用
    • 3.4 检查安装情况,启动服务
    • 3.5 测试缓存是否生效
  • 四、隐藏版本信息
  • 五、Apache 防盗链
    • 5.1 检查是否安装 mod_rewrite 模块
    • 5.2 如果没有安装mod_rewrite 模块,重新编译安装 Apache 添加 mod_rewrite模块
    • 5.3 配置 mod_rewrite 模块启用
    • 5.4 网页准备
    • 5.5 在盗图网站主机上进行浏览器验证

一、Apache 网页优化

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

二、网页压缩

2.1 检查是否安装 mod_deflate 模块

apachectl -t -D DUMP_MODULES | grep "deflate"

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

2.3 配置 mod_deflate 模块启用

vim /usr/local/httpd/conf/httpd.conf
--52行--修改
Listen 192.198.119.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>

2.4 检查安装情况,启动服务

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

systemctl start httpd.service

2.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!</h1>
<img src="game.jpg"/>
</body></html>
在Linux系统中,打开火狐浏览器,右击点查看元素
选择 网络 ---> 选择 HTML、WS、其他 
访问 http://192.168.80.10 ,双击200响应消息查看响应头中包含 Content-Encoding: gzip

三、网页缓存

3.1 检查是否安装 mod_expires 模块

apachectl -t -D DUMP_MODULES | grep "expires"

3.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.3 配置 mod_expires 模块启用

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.kgc.com:80
--末行添加--
<IfModule mod_expires.c>
  ExpiresActive On								 #打开网页缓存功能
  ExpiresDefault "access plus 60 seconds"	     #设置缓存60秒
</IfModule>

3.4 检查安装情况,启动服务

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

systemctl start httpd.service

3.5 测试缓存是否生效

cat /usr/local/httpd/htdocs/index.html
在Linux系统中,打开火狐浏览器,右击点查看元素
选择 网络 ---> 选择 HTML、WS、其他 
访问 http://192.168.119.10 ,双击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 restart httpd.service

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

在这里插入图片描述

五、Apache 防盗链

5.1 检查是否安装 mod_rewrite 模块

apachectl -t -D DUMP_MODULES | grep "rewrite"

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

5.3 配置 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 这个图片。

5.4 网页准备

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="game.jpg"/>
</body></html>

echo "192.168.80.10 www.kgc.com" >> /etc/hosts 
echo "192.168.80.12 www.benet.com" >> /etc/hosts 

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

echo "192.168.80.10 www.kgc.com" >> /etc/hosts 
echo "192.168.80.12 www.benet.com" >> /etc/hosts 
#如果解析不了,看一下/etc/resolv.conf有没有更改

5.5 在盗图网站主机上进行浏览器验证

http://www.benet.com

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

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

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

相关文章

字节跳动测试岗,3面都过了,HR告诉我是这个原因才被刷...

说在前面 面试时最好不要虚报工资。本来字节跳动是很想去的&#xff0c;几轮面试也通过了&#xff0c;最后没offer&#xff0c;自己只想到下面几个原因&#xff1a; 虚报工资&#xff0c;比实际高30%&#xff1b;有更好的人选&#xff0c;这个可能性不大&#xff0c;我看还在…

医院检验科LIS系统的常规检验项目有哪些?

医院检验科LIS系统的常规检验项目包括&#xff1a; 白细胞数目、中性粒细胞数目、淋巴细胞数目、单核细胞数目、嗜酸性粒细胞数目、嗜碱性粒细胞数目、中性粒细胞百分比、 淋巴细胞百分比、单核细胞百分比、嗜酸性粒细胞百分比、嗜碱性粒细胞百分比、红细胞数目、血红蛋白、红…

淘宝太细了:mysql 和 es 的5个一致性方案,你知道吗?

说在前面 在40岁老架构师 尼恩的读者交流群(50)中&#xff0c;最近有小伙伴拿到了一线互联网企业如拼多多、极兔、有赞、希音的面试资格&#xff0c;遇到一几个很重要的面试题&#xff1a; 说5种mysql 和 elasticsearch 数据一致性方案 与之类似的、其他小伙伴遇到过的问题还…

电脑怎么隐藏文件夹?这样做,快速搞定!

案例&#xff1a;我想把一些敏感和重要的文件夹隐藏起来&#xff0c;不想别人看到它们。在电脑上如何隐藏电脑文件夹&#xff1f;有没有小伙伴知道如何操作&#xff1f;急需&#xff01; 我们在使用电脑的过程中&#xff0c;会产生大量文件&#xff0c;有些文件可能包含私密信…

4.1 Spark SQL概述、数据帧与数据集

一、数据帧 - DataFrame &#xff08;一&#xff09;准备工作 1、准备数据文件 2、启动Spark Shell &#xff08;二&#xff09;加载数据为Dataset 1、读文件得数据集 2、显示数据集内容 3、显示数据集模式 &#xff08;三&#xff09;给数据集添加元数据信息 1、定…

强!PCB“金手指”从设计到生产全流程

在电脑内存条、显卡上&#xff0c;有一排金黄色导电触片&#xff0c;就是大家俗称的“金手指”。 在PCB设计制作行业中的“金手指”(Gold Finger&#xff0c;或称Edge Connector)&#xff0c;是由connector连接器作为PCB板对外连接网络的出口。 关于“金手指”你知道多少呢&a…

像核战争一样,AI可能灭绝人类:Geoffrey Hinton、Sam Altman等百名专家签署了一封公开信

多位图灵奖得主、顶级 AI 公司 CEO、顶尖高校教授&#xff0c;与数百位在各自领域享有话语权的专家&#xff0c;共同签署了一份公开信&#xff0c;内容简单却有力&#xff1a; 降低 AI 灭绝人类的风险&#xff0c;应该与大流行病、核战争等其他社会规模的风险一样&#xff0c;…

AI落地:儿童节礼物指南

这个儿童节&#xff0c;用AI做点不一样的礼物&#xff0c;给孩子一个惊喜。 可行清单&#xff1a; 写走心的贺卡&#xff08;增强表达能力&#xff0c;培养心思细腻&#xff09;用AI让孩子的画的小人动起来&#xff08;激发创造力&#xff0c;培养想象力&#xff09;把孩子的…

Ansys Zemax | 如何模拟部分反射和散射的表面

这篇文章介绍了如何模拟一个部分反射的表面&#xff0c;该表面会根据指定的散射分布对一部分入射光能量进行散射。本文介绍的示例包含部分吸收以及部分镜面反射的情况。(联系我们获取文章附件) 介绍 使用 OpticStudio 非序列模式模拟散射和膜层的能力&#xff0c;我们可以模拟一…

MFC按钮中添加图标

目录 一、创建对话框 二、 开始添加 1、将.ico图片放进res路径下 2、添加资源 3、添加按钮 4、将按钮属性中icon修改为true 5、代码添加 一、创建对话框 首先需要创建个对话框程序&#xff0c;参考之前写的博客&#xff1a; mfc入门基础&#xff08;三&#xff09;创…

浅谈智能化配电室在居民小区的建设应用

安科瑞 徐浩竣 江苏安科瑞电器制造有限公司 zx acrelxhj 摘要&#xff1a;近年来居民小区配电室的数量增长快且设备情况较复杂&#xff0c;以致巡视效果不理想、缺陷和事故处理不及时&#xff0c;亟需建立一套智能化的配电室监控系统。按照实用性、统一性、分层和模块化设计…

RobotFramework接口测试方案

1. Robot FrameWork介绍 1.1 介绍 Robot Framework是用于验收测试和回归测试的通用测试自动化框架。它使用易于理解的表格数据语法&#xff0c;非常友好的实现了关键字驱动和数据驱动模式。它的测试功能可以通过使用Python或Java实现的测试库进行扩展&#xff0c;用户可以使用…

RCE代码及命令执行漏洞全解(30)

web应用中&#xff0c;有时候程序员为了考虑灵活性&#xff0c;简洁性&#xff0c;会在代码中调用代码或执行命令执行函数去处理。 比如当应用在调用一些能将字符串转化成代码的函数时&#xff0c;没有考虑用户是否能够控制这些字符串&#xff0c;将代码执行漏洞&#xff0c;同…

华为OD机试真题B卷 Java 实现【求最大连续bit数】,附详细解题思路

一、题目描述 求一个int类型数字对应的二进制数字中1的最大连续数&#xff0c;例如3的二进制为00000011&#xff0c;最大连续2个1。 二、输入描述 输入一个int类型数字。 三、输出描述 输出转成二进制之后连续1的个数。 四、解题思路 首先通过输入获取一个 int 类型的数…

K8s环境使用Triton实现云端模型推理

前置条件&#xff1a;K8集群、helm 1、以模型名作为目录名&#xff0c;创建目录 mkdir resnet50_pytorch 2、将模型文件、配置文件&#xff08;输入、输出等&#xff09;存到刚创建的目录下&#xff0c;resnet50_pytorch目录下文件层级结构如下 model-respository/ └── …

【C++模版】模版进阶 {非类型模版参数; 模版的特化; 模版的分离编译; 模版总结}

一、非类型模版参数 模板参数分类型形参与非类型形参。 类型形参&#xff1a;出现在模板参数列表中&#xff0c;跟在class或者typename之后的参数类型名称。非类型形参&#xff1a;就是用一个常量作为类(函数)模板的一个参数&#xff0c;在类(函数)模板中可将该参数当成常量来…

mysql中的锁浅析

前言 MySQL 锁机制是保证多个并发事务同时访问数据库时数据一致性的重要手段&#xff0c;也是 MySQL 的重要特性之一。在实际开发使用 MySQL 数据库时&#xff0c;了解并掌握 MySQL 的锁机制非常重要&#xff0c;因为不正确的锁机制使用很容易出现严重的性能瓶颈和数据不一致等…

尚硅谷大数据hadoop教程_mapReduce

p67 课程介绍 p68概述 p69 mapreduce核心思想 p70 wordcount源码 序列化类型 mapReduce三类进程 p71 编程规范 用户编写的程序分成三个部分&#xff1a;Mapper、Reducer和Driver。 P72 wordcount需求案例分析 p 73 -78 案例环境准备 &#xff08;1&#xff09;创建maven…

写代码?文心一言or文言文,谁更胜一筹?新工具或许可堪重任

中国版的ChatGPT“文心一言”写代码能力尚浅 被称为中国版的“ChatGPT”的“文心一言”可以说是上市几个月了&#xff0c;很多用户都受到了邀请码来体验&#xff0c;遗憾的是&#xff0c;小编早就申请了&#xff0c;但还在排队等待中。虽然没有亲自体验过百度的“文心一言”&a…

NET HELPMSG 3534 报错(以及其他一些在配置过程中遇到的问题)

使用了带管理员权限的 PowerShell&#xff08;即在管理员权限下运行CMD&#xff09; 然后进行安装和服务启动操作 1、清空 MySQL 下的 data 文件夹&#xff1b; 2、确保系统环境变量中已经配置了 mysql 的 bin 目录到Path中&#xff1b; 3、执行以下命令&#xff1a; sc delet…