apache 网页与安全优化

157 阅读4分钟

Apache网页优化

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

网页压缩

gzip介绍

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

作用

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

Apache的压缩模块

实现网页压缩的功能模块

  • mod_gzip模块
  • mod_deflate模块

Apache 1.x:没有内建网页压缩技术,但可使用第三方mod_gzip模块执行压缩
Apache 2.x:在开发的时候,内建了mod_deflate这个模块,取代mod_gzip

两种模块的相似点与不同点

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

网页压缩操作

  1. 检查是否安装 mod_deflate 模块 image.png

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

  3. 配置 mod_deflate 模块启用,配置文件为/usr/local/httpd/conf/httpd.conf image.png image.png image.png image.png

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

  5. 创建测试用的文件 image.png

  6. 测试 mod_deflate 压缩是否生效

    • Linux中,打开火狐浏览器,右击点查看元素,选择网络,选择 HTML、WS、其他(有图像也要选择图像)。
      访问 http://192.168.44.20 双击200响应消息查看响应头中包含 Content-Encoding: gzip image.png image.png

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

网页缓存

通过mod_expire模块配置Apache,使网页能在客户端浏览器缓存一段时间,以避免重复请求。

启用mod_expire模块后,会自动生成页面头部信息中的Expires标签和Cache-Control标签,客户端浏览器根据标签决定下次访问是在本地机器的缓存中获取页面,不需要向服务器再次发出请求,从而降低客户端的访问频率和次数,达到减少不必要的流量和增加访问速度的目的。

网页缓存操作

  1. 检查是否安装 mod_expires 模块 image.png

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

  3. 配置 mod_expires 模块启用,配置文件为/usr/local/httpd/conf/httpd.conf image.png image.png image.png image.png

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

  5. 测试缓存是否生效

    • 在Linux系统中,打开火狐浏览器,右击点查看元素,选择网络,选择 HTML、WS、其他。
      访问 http://192.168.44.20 ,双击200消息查看响应头中包含 Expires 项,即代表缓存生效。 image.png image.png

Apache安全优化

隐藏版本信息

Apache的版本信息,透露了一定的漏洞信息,从而给网站带来安全隐患。
因此,生产环境中要配置Apache隐藏版本信息。

隐藏版本信息操作

  1. 配置文件/usr/local/httpd/conf/httpd.conf image.png

  2. 修改文件/usr/local/httpd/conf/extra/httpd-default.conf image.png

  3. 浏览器访问 http://192.168.44.20 ,双击200消息查看 Server 项 image.png image.png

Apache 防盗链

防盗链是防止别人的网站代码里面盗用我们自己服务器上的图片、文件、视频等相关资源。
如果别人盗用网站的这些静态资源,明显的是会增大服务器的带宽压力。

配置防盗链

准备工作
  1. 做好域名解析 image.png image.png

  2. 创建本网站测试用的文件/usr/local/httpd/htdocs/index.html image.png

  3. 盗链主机yum安装httpd,创建盗链网站测试用的文件/var/www/html/index.html(yum安装apache根目录所在位置) image.png

  4. 在盗链主机浏览器进行访问测试,使用盗链网站域名访问也会有原图片 image.png image.png

防盗链配置操作
  1. 检查是否安装 mod_rewrite 模块 image.png

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

  3. 配置 mod_rewrite 模块启用,配置完重启服务 image.png image.png

RewriteCond %{HTTP_REFERER} !^www.game.com/.*$ [NC] 的字段含义

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

RewriteRule .*.(gif|jpg|swf)$ www.game.com/error.png 的字段含义

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

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

  1. 在盗图网站主机上进行浏览器验证
    • 使用盗链网站的域名访问 image.png

    • 使用原网站域名访问 image.png