文章目录

  • 一、Apache网页优化概述
    • 1.优化内容
    • 2.网页压缩
      • 2.1gzip概述
      • 2.2作用
      • 2.3Apache的压缩模块
        • 概述
        • mod_gzip模块与mod_deflate模块
    • 3.配置网页压缩功能
      • 3.1启用网页压缩功能步骤
      • 3.2具体操作步骤
    • 4.配置网页缓存功能
      • 4.1启用网页压缩功能步骤
      • 4.2具体操作步骤
  • 二、Apache安全优化
    • 1.隐藏版本信息
      • 1.1配置Apache隐藏版本信息
    • 2.配置防盗链
      • 2.1环境配置
      • 2.2盗链模拟步骤
      • 2.3配置Apache实现防盗链

一、Apache网页优化概述

  在企业中,部署Apache后只采用默认的配置参数,会引发网站很多问题,换言之默认配置是针对以前较低的服务器配置的,以前的配置已经不适用当今互联网时代。

  为了适应企业需求,就需要考虑如何提升Apache的i性能与稳定性,这就是Apache优化的内容。

1.优化内容

  • 配置网页压缩功能

  • 配置网页缓存

  • 配置隐藏版本号

  • 配置防盗链

2.网页压缩

2.1gzip概述

  gzip是一种流行的文件压缩算法,目前应用非常广泛, 尤其是在Linux平台。当使用gzip压缩一个纯文本文件时,效果是非常明显的,大约可以减少70%以上的文件大小。利用Apache中的gzip模块,可以使用gzip压缩算法来对网页内容进行压缩后再传输到客户端浏览器。经过压缩后,实际上降低了网络传输的字节数,最明显的好处就是可以加快网页加速的速度。

2.2作用

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

2.3Apache的压缩模块

概述

  Apache实现网页压缩的功能模块包括mod_gzip模块与mod_deflate模块。

Apache 1.x

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

Apache 2.x

  在开发的时候,内建了mod deflate这个模块,取代mod gzip

mod_gzip模块与mod_deflate模块

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

3.配置网页压缩功能

3.1启用网页压缩功能步骤

3.2具体操作步骤

检查是否已安装mod_defalte模块

[root@localhost httpd]# apachectl -t -D DUMP_MODULES | grep "deflate"

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

[root@localhost httpd]# cd /opt/httpd-2.4.29/
[root@localhost httpd-2.4.29]# yum install -y zlib-devel
[root@localhost httpd-2.4.29]# ./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi --enable-deflate
###备份主配置文件
[root@localhost httpd-2.4.29]# cd /usr/local/httpd/conf/
[root@localhost conf]# ls
extra  httpd.conf  magic  mime.types  original
[root@localhost conf]# mv httpd.conf httpd.conf.bak
[root@localhost conf]# systemctl stop httpd.service
###重新编译安装,生成新的配置文件
[root@localhost conf]# cd /opt/httpd-2.4.29/
[root@localhost httpd-2.4.29]# make -j2 && make install

配置 mod_deflate 模块启用

[root@localhost httpd-2.4.29]# cd /usr/local/httpd/conf/
[root@localhost conf]# vim /usr/local/httpd/conf/httpd.conf
###52行修改,端口号
Listen 192.168.145.15:80
###105行,取消注释,打开模块
LoadModule deflate_module modules/mod_deflate.so
###198行修改,取消注释,设置域名
ServerName www.abc.com:80
###最后一行开启gzip功能
<IfModule mod_deflate.c>
###设置对什么样的内容进行gzi压缩
AddOutputFilterByType DEFLATE text/hml text/plain text/css text/xml text/javascrpit text/jpg text/png
###设置压缩级别1-9之间
DeflateCompressionLevel 9
###启用deflate模块对本站点的输出进行gzip压缩
SetOutputFilter DEFLATE
</IfModule>...

检查安装情况,启动服务

###验证配置文件的配置是否正确
[root@localhost conf]#apachectl -t
###检查 mod_deflate 模块是否已安装
[root@localhost conf]# apachectl -t -D DUMP_MODULES | grep "deflate"deflate_module (shared)
###重启服务
[root@localhost conf]# systemctl start httpd.service

测试缓存是否生效

###编写网页文件
[root@localhost conf]# cd /usr/local/httpd/htdocs/
[root@localhost htdocs]# vim /usr/local/httpd/htdocs/index.html
<html>
<body><h1>It works!</h1><img src="/opt/game.jpg"/>
</body>
</html>
[root@localhost htdocs]# systemctl restart httpd.service

浏览器访问 ,使用F12消息查看

在浏览器中选择“查看元素”可以看到有“AcceptEncoding:gzip”表示压缩已经生效

4.配置网页缓存功能

4.1启用网页压缩功能步骤

4.2具体操作步骤

检查是否安装 mod_expires 模块

[root@localhost ~]# apachectl -t -D DUMP_MODULES | grep "expires"

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

[root@localhost ~]# systemctl stop httpd.service
[root@localhost ~]# cd /usr/local/httpd/conf/
[root@localhost conf]# ls
extra  httpd.conf  magic  mime.types  original
[root@localhost conf]# mv httpd.conf httpd.conf.bak1
[root@localhost conf]# yum -y install gcc gcc-c++ pcre pcre-devel zlib-devel
[root@localhost conf]# cd /opt/httpd-2.4.29/
[root@localhost httpd-2.4.29]# ./configure \
> --prefix=/usr/local/httpd \
> --enable-so \
> --enable-rewrite \
> --enable-charset-lite \
> --enable-cgi \
> --enable-deflate \
###加入mod_expires 模块
> --enable-expires
###编译安装
[root@localhost httpd-2.4.29]# make -j2 && make install

配置 mod_expires 模块启用

[root@localhost httpd-2.4.29]# cd /usr/local/httpd/conf/
[root@localhost conf]# ls
extra  httpd.conf  httpd.conf.bak1  magic  mime.types  original
[root@localhost conf]# vim httpd.conf
###--52行--修改
Listen 192.198.145.15:80
###--111行--取消注释
###开启mod_expires 模块
LoadModule expires_module modules/mod_expires.so
###--199行--取消注释,修改
ServerName www.abc.com:80
###--末行添加--
<IfModule mod_expires.c>###打开网页缓存功能ExpiresActive On       ###设置缓存60秒ExpiresDefault "access plus 60 seconds"
</IfModule>

检查安装情况,启动服务

###验证配置文件的配置是否正确
[root@localhost conf]# apachectl -t
Syntax OK
###检查 mod_deflate 模块是否已安装
[root@localhost conf]# apachectl -t -D DUMP_MODULES | grep "expires"expires_module (shared)
###启动httpd服务
[root@localhost conf]# systemctl restart httpd

测试缓存是否生效

在Windows系统中依次安装 Microsoft.NET4 和fiddler 软件,打开fiddler 软件
选择 inspectors ---> 选择 Headers
浏览器访问 http://192.168.80.10 ,双击200消息查看 Expires 项

二、Apache安全优化

1.隐藏版本信息

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

1.1配置Apache隐藏版本信息

[root@localhost ~]# cd /usr/local/httpd/conf/
[root@localhost httpd-2.4.29]# vim /usr/local/httpd/conf/httpd.conf
###--491行--取消注释
Include conf/extra/httpd-default.conf
[root@localhost conf]# vim extra/httpd-default.conf
###--55行--修改
###将原本的 Full 改为 Prod,只显示名称,没有版本
ServerTokens Prod
###重启httpd服务
[root@localhost conf]# systemctl restart httpd.service

ServerTokens 表示 Server 回送给客户端的响应头域是否包含关于服务器 OS 类型和编译过的模块描述信息。

浏览器访问 http://192.168.145.15或者http://www.abc.com
查看 Server 项

2.配置防盗链

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

2.1环境配置

IP地址 域名 用途
192.168.145.15 www.abc.com 源主机
192.168.145.30 www.accp.com 盗链网站
客户端 Windows11 火狐浏览器或者谷歌浏览器

2.2盗链模拟步骤

  一般配置防盗链需要做以下几个步骤:

     ● 两台主机配置测试页面

     ● 盗链网站的测试网页,盗用源主机网站目录下的一个logo.jpg文件

     ● 在Windows中访问验证

2.3配置Apache实现防盗链

检查是否安装 mod_rewrite 模块

[root@localhost ~]# apachectl -t -D DUMP_MODULES | grep "rewrite"

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

###停止httpd服务
[root@localhost ~]# systemctl stop httpd.service
###进入主配置文件目录
[root@localhost ~]# cd /usr/local/httpd/conf
[root@localhost conf]# mv httpd.conf httpd.conf.bak2
####安装模块
[root@localhost conf]# yum -y install gcc gcc-c++ pcre pcre-devel zlib-devel
[root@localhost conf]#cd /opt/httpd-2.4.29/
[root@localhost httpd-2.4.29]# ./configure \
--prefix=/usr/local/httpd \
--enable-so \
###加入mod_rewrite 模块
--enable-rewrite \
--enable-charset-lite \
--enable-cgi \
--enable-deflate \
--enable-expires
###重新编译
[root@localhost httpd-2.4.29]#make -j2 && make install

配置 mod_rewrite 模块启用

[root@localhost httpd-2.4.29]# cd /usr/local/httpd/conf/
[root@localhost conf]# vim httpd.conf
###--224行--
<Directory "/usr/local/httpd/htdocs">Options Indexes FollowSymLinksAllowOverride NoneRequire all granted###打开 rewrite 功能,加入 mode_rewrite 模块内容RewriteEngine On####设置匹配规则RewriteCond %{HTTP_REFERER} !^http://abc.com/.*$ [NC]RewriteCond %{HTTP_REFERER} !^http://abc.com$ [NC]RewriteCond %{HTTP_REFERER} !^http://www.abc.com/.*$ [NC]RewriteCond %{HTTP_REFERER} !^http://www.abc.com/$ [NC]###设置跳转动作RewriteRule .*\.(gif|jpg|swf)$ http://www.abc.com/error.png
</Directory>

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

  %{HTTP_REFERER} :存放一个链接的 URL,表示从哪个链接中转访问目录下的静态资源。

  !^”:表示不以后面的字符串开头。

  http://www.abc.com”:是本网站的路径,按整个字符串匹配。

  .*$”:表示以任意字符结尾。

  [NC] :表示不区分大小写字母。

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

  . :表示匹配一个字符。

  *”:表示匹配 0 到多个字符,与.合起来的意思是匹配 0 到多次前面的任意字符,如果是 1 到多次匹配可以用+表示。

  “\.”:在这里的\是转义符,\.就代表符号.的意思。因为.在指令中是属于规则字符,有相应的含义, 如果需要匹配,需要在前面加个转义符\,其它规则字符如果需要匹配,也做同样处理。

  (gif|jpg|swf)$ :表示匹配gifjpgswf任意一个,$表示结束。最后的规则是以.gif.jpg.swf结尾, 前面是1到多个字符的字符串,也就是匹配图片类型的文件。

  http://www.abc.com/error.png :表示转发到这个路径 。

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

网页准备

Web源主机配置

[root@localhost conf]# cd /usr/local/httpd/htdocs/
[root@localhost htdocs]# ls
error.png  game.jpg  index.html
[root@localhost htdocs]# cat index.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>
###临时添加域名解析
[root@localhost htdocs]# echo "192.168.145.15 www.abc.com" >> /etc/hosts
[root@localhost htdocs]# echo "192.168.145.30 www.accp.com" >> /etc/hosts

盗链网站主机配置


[root@localhost conf]# cd /usr/local/httpd/htdocs
[root@localhost htdocs]# vim index.html
<body><h1>this is accp.com!</h1>
<img src="http://www.abc.com/game.jpg"/>
</body></html>
###临时添加域名解析
[root@localhost htdocs]# echo "192.168.145.15 www.abc.com" >> /etc/hosts
[root@localhost htdocs]# echo "192.168.145.30 www.accp.com" >> /etc/hosts

yum安装的httpd服务的默认路径为/var/www/html/

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

http://www.accp.com

【Web服务器】Apache网页优化相关推荐

  1. 【Web网站服务】Apache网页优化

    Apache网页优化 一.网页压缩 1.1网页压缩步骤 二.网页缓存 三.隐藏版本信息 五.Apache防盗链 一.网页压缩 在企业中,部署Apache后只采用默认的配置参数,会引发网站很多问题,换言 ...

  2. Web服务器Nginx多方位优化策略

    Nginx(读音engine x)服务器由于性能优秀稳定.配置简单以及跨平台,被越来越多的公司和个人所采用,现已成为市场份额继Apache之后的第二大Web服务器.各大小网站论坛博客也介绍说明了Ngi ...

  3. Apache网页优化概述

    Apache网页优化概述 Apache网页优化概述 一.网页压缩 1.检查是否安装mod_ deflate 模块 2.如果没有安装mod_deflate 模块,重新编译安装 Apache 添加 mod ...

  4. 25. Linux中的web服务器Apache

    Lesson25 Linux中的web服务器Apache 文章目录 1. 什么是Apache服务器 2. 什么是http协议 3. Apache的基础信息 4. 实验环境配置 5. 在desktop虚 ...

  5. 手把手教你,嘴对嘴传达------Apache网页优化

    文章目录 Apache网页优化 一.Apache网页压缩 1.网页优化概述 2. 网页gzip概述 3.Apache的压缩模块 4.配置网页压缩功能 5.Apache网页压缩实操 (1) 手动编译安装 ...

  6. 4.Apache网页优化

    文章目录 Apache网页优化 网页压缩 网页缓存 隐藏版本信息 Apache防盗链 Apache网页优化 Apache网页优化 网页压缩 网页缓存 Apache安全优化 隐藏版本信息 配置防盗链 网 ...

  7. Apache网页优化和安全优化

    文章目录 一.Apache网页优化 1.1网页压缩 1.2配置网页压缩功能并进行验证 1.3配置网页的缓存时间并进行验证 二.Apache安全优化 2.1配置防盗链 2.2隐藏版本信息 一.Apach ...

  8. mac搭建网站服务器,Mac上搭建Web服务器--Apache

    局域网搭建 Web 服务器测试环境,因为Mac OS X 自带了 Apache 和 PHP 环境,我们只需要简单的启动它就行了. 1.命令:sudo apachectl start Apache服务器 ...

  9. 【Apache 网页优化】

    文章目录 一.Apahce 网页优化 1.网页压缩 2.网页缓存 二.Apachen的安全优化 1.隐藏版本信息 2.Apache 防盗链 一.Apahce 网页优化 1.网页压缩 1.检查是否安装 ...

最新文章

  1. boot spring 对参数检测_【springboot】@Valid参数校验
  2. CVPR 2015深度学习回顾
  3. Number.parseInt(), Number.parseFloat()
  4. python print 分隔符_python print 使用分隔符 或行尾符
  5. wxpython制作表格界面_Python wxPython库使用wx.ListBox创建列表框示例
  6. caffe---之scale层
  7. MySQL集群安装与配置
  8. golang ide 环境搭建_新手引导 — Golang后端开发环境搭建
  9. LCD12864 液晶显示-汉字及自定义显示(并口)
  10. 家庭局域网_如何查看局域网内所有ip?
  11. 留言列表模板HTML代码
  12. 干货| RNA质检的那些事
  13. 12.21 linux前戏
  14. 最新发布!2018年区块链数字货币项目最赚钱方法排行榜
  15. 2022跨年烟花代码(六)HTML5鼠标点击页面放烟花特效
  16. 医生说 | 当心!长期情绪压抑,正在毁掉你的身体
  17. Java垃圾收集与内存分配
  18. 带着问题读源码-soul(2021-01-15)
  19. 《Character Animation with Direct3D》阅读笔记
  20. 只需几次点击即可创建一个Astra和LearnDash在线教育网站 – 简单快捷!

热门文章

  1. 新加坡国际学校IB课程详解
  2. windows下GMT绘制海岸线并在某处加入五角星
  3. 仿真鸟群-Python实现(Win11)
  4. Linux驱动设计(一):驱动是什么?
  5. gd32f303在IAR下的printf串口助手打印+串口收发配置
  6. 学习笔记:内容安全过滤技术
  7. 微软小冰 | 接入微信公众号平台初体验
  8. python中的声音处理文件库_介绍几个python的音频处理库
  9. 为什么深度学习与机器学习完全不同?
  10. 一文详解PHP用流方式实现下载文件(附代码示例)