文章目录

  • 前言:
  • 一、Apache的压缩模块
    • (一)、网页压缩
    • (二)、网页gzip概述
    • (三)、Apache的压缩模块
    • (四)、启用网页压缩功能步骤
    • (五)、Apache的压缩模块配置命令
  • 二、网页缓存
    • (一)、配置网页的缓存时间概述
    • (二)、启用网页的缓存功能步骤
    • (三)、网页缓存优化配置命令
  • 三、安全优化(防盗链)
    • (一)、防盗链概述
    • (二)、防盗链步骤与命令
  • 四、隐藏版本信息
    • (一)、配置Apache隐藏版本信息的必要性
    • (二)、隐藏版本信息步骤与命令

前言:

我们在使用Apache 作为Web服务器的过程中,只有对 APache 服务器进行适当的优化配置,才能让 Apache 发挥出更好的性能;反过来说,如果 Apache 的配置非常糟糕,则可能无法正常为我们提供服务。 因此,针对我们的应用需求对 APache 服务器的配置进行一定的优化是必不可少的。

一、Apache的压缩模块

(一)、网页压缩

1、网页优化概述
在企业中,部署Apache后会有默认的配置参数,如果不及时进行优化配置,在当今互联网时代,会引发网站很多问题。
为了适应企业需求,就需要考虑如何提升Apache的性能与稳定性,这就是Apache的优化内容

2、优化内容

  • 配置网页压缩功能
  • 工作模式的选择与参数优化
  • 配置防盗链
  • 配置隐藏版本号

(二)、网页gzip概述

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

1、作用

  • 降低了网络传输的字节数,加快网页加载的速度
  • 节省流量,改善用户的浏览体验
  • gzip与搜索引擎的抓取工作有着更好的关系

(三)、Apache的压缩模块

1、Apache实现网页压缩的功能模块包括

  • mod_gzip模块
  • mod_deflate模块

2、Apache 1.x

  • 没有内建网页压缩技术,但是可以使用第三方mod_gzip模块执行压缩

3、Apache 2.x

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

4、mod_gzip模块与mod_deflate模块

  • 两者均使用gzip压缩算法,运作原理类似
  • mod_deflate压缩速度略快,而mod_gzip的压缩比略高
  • mod_gzip对服务器CPU占用要高一些
  • 高流量的服务器,使用mod_deflate可能会比mod_gzip加载速度更快

(四)、启用网页压缩功能步骤

1、查看是否安装mod_deflate模块
2、修改配置文件,启用压缩功能
3、访问测试

(五)、Apache的压缩模块配置命令

1、将之前Apache的旧的配置文件进行移除或者改名

cd /usr/local/httpd/conf
mv httpd.conf httpd.conf.bak1

2、检查是否安装 mod_deflate 模块

apachectl -t -D DUMP_MODULES | grep "deflate"

3、如果没有安装mod_deflate模块,重新编译安装 Apache 添加mod_deflate 模块

#需要先将服务关闭
systemctl stop httpd.service
#使用该命令查看是否关闭成功
systemctl status httpd.serviceyum -y install gcc gcc-c++ make pcre pcre-devel zlib-develcd /opt/httpd-2.4.29/
./configure \
--prefix=/usr/local/httpd \
--enable-deflate \       #加入mod_deflate 模块
--enable-so \
--enable-rewrite \
--enable-charset-lite \
--enable-cgimake -j 2 && make install     #编译安装

4、配置 mod_deflate 模块 启用

vim /usr/local/httpd/conf/httpd.conf
-----52行修改------
Listen 192.168.200.50:80
----105行取消注释----
LoadModule deflate_module modules/mod_deflate.so
----197行取消注释,修改------
ServerName www.gcc.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-9SetOutputFilter DEFLATE        #代表启用 deflate 模块对本站点的输出进行gzip压缩
</IfModule>

5、检查安装情况,启动服务

apachectl -t      #验证配置文件的配置是否正确apachectl -t -D DUMP_MODULES | grep "deflate"   #检查是否安装 mod_deflate 模块deflate_module (shared)     #出现该段,说明安装模块成功

6、添加网页内容,进行后续的测试

cd /usr/local/httpd/htdocs/
#将自己想要测试的图片上传到该/htdocs目录下
ls
bbs  index.html  index.html.bak  index.php  photo.jpg  #photo.jpg是我上传的图片vim /usr/local/httpd/htdocs/index.html
<html><body><h1>
What Does The Bee Do?What does the bee do?Bring home honey.And what does Father do?Bring home money.And what does Mother do?Lay out the money.And what does baby do?Eat up the honey.by C. G. Rossetti, 1830-1894
<img src="photo.jpg"/>
</body></html>systemctl restart httpd.service

方法一:
在LInux系统中,打开火狐浏览器,右击点查看元素
选择 网络 ----> 选择 HTML、WS、其他
访问 http://192.168.200.50,多次刷新后查看响应头中包含 Content-Encoding; gzip

方法二:
在windows10 系统中依次安装 fiddler 软件,打开 fiddler软件
选择 inspectors -----> 选择 Headers
浏览器访问 http://192.168.200.50 ,多次刷新后查看 Content-Encoding; gzip



二、网页缓存

(一)、配置网页的缓存时间概述

  • 通过mod_expire模块配置Apache,使网页能在客户端浏览器缓存一段时间,以避免重复请求
  • 启用mod_expire模块后,会自动生成页面头部信息中的Expires标签和Cache-Control标签,从而降 低客户端的访问频率和次数,达到减少不必要的流量和增加访问速度的目的

(二)、启用网页的缓存功能步骤

1、查看是否安装mod_expire模块
2、修改配置文件启用缓存功能
3、访问测试

(三)、网页缓存优化配置命令

1、检查是否安装 mod_ expires 模块

apachectl -t -D DUMP_MODULES | grep "expires"

2、如果没有安装mod_ expires 模块,重新编译安装Apache 添加mod_ expires 模块

systemctl stop httpd.service    #先将httpd服务关闭cd /usr/local/httpd/conf       #将旧的配置文件移除或者改名
mv httpd.conf httpd.conf.bak2yum -y install gcc gcc-c++ make pcre pcre-devel zlib-devel
cd /opt/httpd-2.4.29/
./configure \
--prefix=/usr/local/httpd \
--enable-deflate \
--enable-expires \      #加入mod_ expires 模块
--enable-so \
--enable-rewrite \
--enable-charset-lite \
--enable-cgimake -j 2 && make install     #编译安装

3、配置 mod_expires 模块启用

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

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

apachectl -t      #验证配置文件的配置是否正确
Syntax OK         #出现该字段说明配置正确apachectl -t -D DUMP_MODULES | grep "expires"  #检查mod_expires 模块是否已安装 expires_module (shared)     #出现该行说明安装成功systemctl restart httpd.service

5、检测缓存是否生效
方法一:
在LInux系统中,打开火狐浏览器,右击点查看元素
选择 网络 ----> 选择 HTML、WS、其他
访问 http://192.168.200.50,多次刷新后查看响应头中包含 Expires 项

方法二:
在windows10 系统中依次安装 fiddler 软件,打开 fiddler软件
选择 inspectors -----> 选择 Headers
浏览器访问 http://192.168.200.50 ,多次刷新后查看 Expires 项

三、安全优化(防盗链)

(一)、防盗链概述

  • 防盗链就是防止别人的网站代码里面盗用服务器的图片,文件,视频等相关资源
  • 如果别人盗用网站的这些静态资源,明显的是会增大服务器的带宽压力
  • 作为网站的维护人员,要杜绝我们服务器的静态资源被其他网站盗用

(二)、防盗链步骤与命令

为了测试防盗链是否设置成功,我们这里将使用两台虚拟机,一台作为盗链主机7-1,一台作为设置防盗链的主机7-5。

设置盗链主机7-1

yum install -y httpdvim /var/www/html/index.html
<html><body><h1>IT WORKS!</h1>
<img src="http://192.168.200.50/photo.jpg"/>
</body></html>echo "192.168.200.10 www.accp.com" >> /etc/hosts
echo "192.168.200.50 www.gcc.com" >> /etc/hostssystemctl restart httpd

设置完成后就可以通过访问 http://www.accp.com 获取到盗链的www.gcc.com 的图片了。

那么为了防止被盗取链接,此时我们就可以在服务器7-5上设置防盗链配置了。

1、检查是否安装 mod_ rewrite 模块

apachectl -t -D DUMP_MODULES | grep "rewrite"

2、如果没有安装mod_ rewrite 模块,重新编译安装Apache 添加mod_ rewrite 模块

systemctl stop httpd.service    #先将httpd服务关闭cd /usr/local/httpd/conf       #将旧的配置文件移除或者改名
mv httpd.conf httpd.conf.bak2yum -y install gcc gcc-c++ make pcre pcre-devel zlib-devel
cd /opt/httpd-2.4.29/
./configure \
--prefix=/usr/local/httpd \
--enable-deflate \
--enable-expires \
--enable-so \
--enable-rewrite \        #加入mod_ rewrite 模块
--enable-charset-lite \
--enable-cgimake -j 2 && make install     #编译安装

3、配置 mod_ rewrite 模块启用
需提前在/usr/local/httpd/htdocs 中上传盗链警告的图片

vim /usr/local/httpd/conf/httpd.conf
----157行取消注释------
LoadModule rewrite_module modules/mod_rewrite.so
----249行下面添加-----RewriteEngine On             #打开 rewrite 功能,加入 mod_ rewrite 模块内容RewriteCond %{HTTP_REFERER} !^http://gcc.com/.*$ [NC]  #设置匹配规则RewriteCond %{HTTP_REFERER} !^http://gcc.com$ [NC]RewriteCond %{HTTP_REFERER} !^http://www.gcc.com/.*$ [NC]RewriteCond %{HTTP_REFERER} !^http://www.gcc.com/$ [NC]RewriteRule .*\.(gif|jpg|swf)$ http://www.gcc.com/error.png  #设置跳转动作RewriteCond %{HTTP_REFERER} !^http://www.gcc.com/.*$ [NC]的字段含义:
“%{HTTP_REFERER}":存放一个链接的URL,表示从哪个链接访问所需的网页。
“!^”:表示不以后面的字符串开头。
"http://www.gcc.com”:是本网站的路径,按整个字符串匹配。
".*$":表示以任意字符结尾。
“[NC]”:表示不区分大小写字母。RewriteRule .*\.(gif | jpg | swf)$ http://www.gcc.com/error.png的字段含义:
"."表示匹配一个字符。
"*"表示匹配0到多个字符,与“.” 合起来的意思是匹配0到多次前面的任意字符,如果是1到多次匹配可以用“+”表示。
"\.":在这里的“\”是转义符,“\.”就代表符号“.”的意思。因为“."在指令中是属于规则字符,有相应的含义,
如果需要匹配,需要在前面加个转义符“\”,其它规则字符如果需要匹配,也做同样处理。
“(gif | jpg | swf)" :表示匹配"gif”、“jpg”、“swf"任意 一个,“$”表示结束。最后的规则是以“.gif"、 “.jpg”、“.swf"结尾,前而是1到多个字符的字符串,也就是匹配图片类型的文件。
"http://www.gcc.com/error.png”:表示转发到这个路径。
整个配置的含义是使用本网站以外的网站域名访问本站的图片文件时,显示error.png 这个图片。

systemctl restart httpd.service    #重启服务

此时如果再次使用盗链域名进行访问的话,就会出现预先设置的警告的图片。

四、隐藏版本信息

(一)、配置Apache隐藏版本信息的必要性

  • Apache的版本信息,透露了一定的漏洞信息,从而给网站带来安全隐患
  • 生产环境中要配置Apache隐藏版本信息
  • 可使用Fiddler抓包工具分析

(二)、隐藏版本信息步骤与命令

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

此时就不会出现Apache的版本信息了

学会Apache网页与安全的优化,让你的技术更加胜人一筹!(网页压缩与缓存、隐藏版本信息与配置防盗链)相关推荐

  1. Apache网页优化 ---配置防盗链

    防盗链概述 防盗链就是防止别人的网站代码里面盗用服务器的图片文件.视频等相关资源.如果别人盗用网站的这些静态资源,明显的是会增大服务器的带宽压力.所以作为网站的维护人员,要杜绝我们服务器的静态资源被其 ...

  2. 手把手教你,嘴对嘴传达------Apache(安全优化防盗链、隐藏版本信息)

    文章目录 一.配置防盗链 1.防盗链概述 2.盗链模拟步骤 3.检查Apache是否安装了mod_rewrite模块 4.配置规则变量说明 5.规则匹配说明 6.配置操作演示 二.防盗链实操 1.环境 ...

  3. Apache(httpd)配置--防盗链配置和访问控制

    一.配置防盗链 通过防盗链的方式,可以设置限制第三方的站点通过引用的方式获取服务器上的图片,数据等,如果想要获取本站点的图片数据,只能通过本站点访问获取,这样也有效的减少了服务器的资源. 什么是ref ...

  4. 在Apache上配置防盗链功能和隐藏版本号

    文章目录 在Apache上配置防盗链功能 安装DNS服务 配置http服务软件目录 开启服务 开启服务 源站进行防盗链操作 隐藏版本信息步骤 使用抓包工具查看版本信息 隐藏设置 在Apache上配置防 ...

  5. Apache实现盗链与防盗链与隐藏版本信息

    文章目录 一:盗链实操步骤 1.2:win 10 测试dns解析 1.3:首先需要手工编译安装Apache 1.4:make编译安装make install 1.5:编辑配置文件 1.6:客户机测试正 ...

  6. Linux centosVMware Apache 配置防盗链、访问控制Directory、访问控制FilesMatch

    一.配置防盗链 通过限制referer来实现防盗链的功能 配置文件增加如下内容 vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf //改为如下 ...

  7. linux隐藏apache信息,Apache防盗链和隐藏版本信息-linux-centos运维

    有需要服务器方面的需求和咨询,可以联系博主 QQ 7271895 一.防盗链 二.隐藏版本信息 实验要求: 三台虚拟机分别是:linux和两台windows虚拟机,linux虚拟机为服务器,Windo ...

  8. apache隐藏版本信息及设置网页缓存

    安装apache屏蔽apache版本等敏感信息 查看apache版本信息: [root@localhost ~]# curl -I www.baidu.com X-Powered-By: HPHP S ...

  9. apache调优隐藏版本信息及404重定向

    生产环境中,部署了apache之后,我们应该从安全还是性能角度,在apache服务上线之前,对其做诸多的优化调试才行.   Apache 实验环境: apache版本:httpd-2.2.31 源码包 ...

  10. linux隐藏版本信息,Linux下隐藏Apache版本号信息

    利用linux搭建服务器的时候,如何隐藏自己Apache的版本号呢?或者连Apache名字直接隐藏,让别有用心的不知道自己网站用的是什么web服务器?至于为什么隐藏版本号,因为网上有很多教程都是关于A ...

最新文章

  1. 2022-2028年中国灭火装置行业市场前瞻与投资战略规划分析报告
  2. 算法工程师当前选哪个方向好?
  3. MongoDB 是如何鼓励和激励开发者社区的
  4. 济南职业学院计算机信息管理在哪个校区,计算机学院圆满完成省计算机信息管理专业教学指导方案开发...
  5. 2-02字符编码的演化
  6. 【通信原理】【实验】实验二:数字基带传输实验(GZHU)
  7. wmic windows
  8. poj 2226 Muddy Fields 最小顶点覆盖
  9. 作者:陶克(1988-),男,博士,北京系统工程研究所助理研究员。
  10. linux内核那些事之ZONE
  11. 敏捷开发人员结构_开发人员可以在敏捷外观方面发表意见的4种方法
  12. python开发流程视频_自学Python的步骤和方法,Python入门全面视频无偿分享,使用Python开发的一些优点...
  13. 【flink】Flink 1.12.2 源码浅析 : yarn-per-job模式解析 JobMasger启动 YarnJobClusterEntrypoint
  14. Windows 7环境下网站性能测试小工具 Apache Bench 和 Webbench使用和下载
  15. 2017 Multi-University Training Contest - Team 3:1004. Kanade's trio(01字典树)
  16. 关于Mysql group_concat的应用(把相同ID的VAL用字符'/'连接起来)
  17. 【深度学习基本概念】上采样、下采样、卷积、池化
  18. 游戏Gala—基于星际文件系统的非中心化游戏
  19. DPlayer.js视频播放插件
  20. Deep Feedforward Networks(3)

热门文章

  1. android手机界面分区,Android手机fastboot 刷机命令(示例代码)
  2. 波长间隔与频率间隔换算
  3. 【戴明环】PDCA-问题闭环思维模型
  4. 华为路由器远程登陆之ssh
  5. codeforce 741 B. Arpa's weak amphitheater and Mehrdad's valuable Hoses(背包 dp)
  6. 【WPS表格】一些简单函数
  7. 027 多分支选择结构
  8. 批量保存网页_一键下载网页所有图片,把美丽存下来
  9. python实数符号_下列格式化符号中,用来表示浮点实数的是()。 (6.0分)_学小易找答案...
  10. IOS 13陀螺仪监控