Apache网页优化--理论加实验

Apache网页优化概述:

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

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

优化内容

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

gzip介绍

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

作用

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

Apache的压缩模块

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_gzi的压缩比略高
  • mod_gzip对服务器CPU占用要高一些
  • 高流量的服务器,使用mod_defltate可能会比mod_gzip加载速度更快

配置网页压缩功能:

启用网页压缩功能步骤:

  • 查看是否安装mod_deflate
  • 修改配置文件启用压缩功能
  • 访问测试

检查是否已安装mod_deflate模块

  • 执行apachectl -t -D DUMP_MODULES命令
  • 如果输出中没有deflate_module(static),说明编译时没有安装mod_deflate模块

若没有安装,则要重新编译安装

  • ./configure --enable-deflate…
  • make && make install

在配置httpd.conf中配置开启gzip功能

AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml text/javascript
设置对什么样的内容启用gzip压缩

DeflateCompressionLevel
压缩级别

SetOutputFilter DEFLATE
启用deflate模块对本站点的输出进行gzip压缩

网页压缩模块小实验

1.在安装服务前先将服务所需要的包利用xftp工具放到CRT软件中,如果用xhell登录的话不用apr的工具包可以实现跨平台应用(需要先装)
在这里插入图片描述
2.清空防火墙规则,关闭防护功能,防止出错

[root@localhost opt]# iptables -F     ##关闭防火墙功能
[root@localhost opt]# setenforce 0    ##关闭防护功能

3.将apr的两个包和httpd的包进行解压

[root@localhost apache]# tar zxvf apr-1.6.2.tar.gz
[root@localhost apache]# tar zxvf apr-util-1.6.0.tar.gz
[root@localhost apache]# tar jxvf httpd-2.4.29.tar.bz2     ##这是bz格式的包,要用jxvf进行解压

4.解压完后后,将apr的工具包放到httpd的源码包中支持功能

[root@localhost apache]# mv apr-1.6.2 httpd-2.4.29/srclib/apr
[root@localhost apache]# mv apr-util-1.6.0 httpd-2.4.29/srclib/apr-util

5.因为是手工编译安装,那我们就需要安装一些环境包;gcc gcc-c++ make pcre-devel(支持正则表达式) expat-devel(支持解析xmail文件) perl(perl语言) zlib-devel压缩包

[root@localhost apache]# yum -y install gcc  gcc-c++  make  pcre-devel  expat-devel  Perl zlib-devel

在这里插入图片描述
6.编译安装apache,别的没变添加一个开启压缩功能

[root@localhost httpd-2.4.29]# ./configure \
--prefix=/usr/local/httpd \
--enable-deflate \    ##开启压缩功能
--enable-so \
--enable-rewrite \
--enable-charset-lite \
--enable-cgi

在这里插入图片描述

[root@promote httpd-2.4.29]# make
[root@promote httpd-2.4.29]# make install

7.建立一个文件的软链接,方便管理

[root@promote httpd-2.4.29]# ln -s /usr/local/httpd/conf/httpd.conf /etc/

8.编辑apache的配置文件
[root@promote ~]# vim /etc/httpd.conf
在这里插入图片描述
在末尾添加以下信息
在这里插入图片描述
9.验证语法是否成功
在这里插入图片描述
10.启动服务
[root@promote ~]# /usr/local/httpd/bin/httpd ##启动服务,检查端口是否开启
在这里插入图片描述
验证模块有没有开启
[root@promote bin]# ./apachectl -t -D DUMP_MODULES |grep “deflate”
在这里插入图片描述
12.用xftp将图片文件放到/usr/local/httpd/htdocs目录下
在这里插入图片描述
13.插入指明图片路径
[root@promote htdocs]# vim index.html
在这里插入图片描述
14.回到win10系统中将工具进行安装
在这里插入图片描述
15.在win10系统中输入地址会显示图片文字信息,并且抓包软件可以抓到来访信息
在这里插入图片描述
16.通过抓包软件也可以查看到内容是经过gzip格式压缩的
在这里插入图片描述

配置网页的缓存时间:

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

●启用mod_expire模块后,会自动生成页面头部信息中的Expires标签和Cache-Control标签,从而降低客户端的访问频率和次数,达到减少不必要的流量和增加访问速度的目的

启用网页的缓存功能步骤

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

查看是否安装mod_expire模块

● /usr/local/apache/bin/apachectl -t -D DUMP_MODULES

● 如果输出中没有expires_module(static),则说明编译时没有安装mod_expires
若没有安装则需要重新编译安装

  • ./configure --enable-expires…
  • make && make install

修改httpd.conf配置文件

启用mod_expires模块,并设置http协议下任意格式的文档均60秒后过期

<IfModule mod_expires.c> 
    ExpiresActive On 
    ExpiresDefault "access plus 60 seconds" 
</IfModule>
重启httpd服务

配置网页缓存时间实验

1编译安装apache,指明路径,多了一个expires功能

[root@localhost httpd-2.4.29]# ./configure \
--prefix=/usr/local/httpd \
--enable-deflate \
--enable-expires \       ##多了一个expires功能
--enable-so \
--enable-rewrite \
--enable-charset-lite \
--enable-cgi

2.编译安装

[root@localhost httpd-2.4.29]# make && make install

3.编辑apache服务配置文件,开启expires认证模块
在这里插入图片描述
4.在底行添加功能
在这里插入图片描述
5.启动服务,查看服务端口有没有起

[root@promote bin]# ./apachectl 

在这里插入图片描述
6.同样开启认证模块

[root@promote bin]# ./apachectl -t -D DUMP_MODULES |grep "expires"

在这里插入图片描述
7.回到win10情况缓存记录,再次访问192.168.148.135网页,用抓包软件可以显示缓存时间
在这里插入图片描述

配置Apache实现防盗链:

●防盗链是防止别人的网站代码里面盗用我们自己服务器上的图片,文件,视频等相关资源
●如果别人盗用网站的这些静态资源,明显的是增大服务器的带宽压力
●作为网站的维护人员,要杜绝服务器的静态资源被其他网站盗用
盗链模拟步骤
1.两台主机配置测试页面
2.盗链网站的测试页面,盗用源主机网站目录下的一个log.jpg文件
3.在windows中访问

检查Apache是否安装了mod_rewrite模块

●/usr/local/apache/bin/apachectl -t -D DUMP_MODULES
●如果输出中没有rewrite_module(static),则说明编译没有安装mod_rewrite模块
如果没有安装,需要重新编译安装

  • ./configure --enable-rewrite…
  • make &&make install

配置规则变量说明

  • %{HTTP_REFERER}:浏览header中的链接字段,存放一个链接的URL,代表是从哪个链接访问所需的网页
  • !^:不以后面的字符串开头
  • .$:以任意字符结尾
  • NC:不区分大写
  • R:强制跳转

规则匹配说明

  • RewriteEngine On:打开网页重写功能
  • RewriteCound:设置匹配规则
  • RewriteRule:设置跳转动作

规则匹配

  • 如果相应变量的值匹配所设置的规则,则逐条往下处理;
  • 如果不匹配,则往后的规则不再匹配
  • 先匹配规则,匹配完了后在执行如果访问的域名,不是通过官网指定,而是通过链接指定过来的,就会弹出一个URL的地址

防盗链实验

实验环境
1.环境配置同之前的网页缓存
2.之前的win10作为盗链客户端
3.添加一台centos7虚拟机作为盗链虚拟机
推荐步骤
1.先将作为官方网站的虚拟机环境搭好,先配置域名
[root@localhost ~]# yum -y install bind
在这里插入图片描述
修改主配置文件
在这里插入图片描述
修改区域配置文件
在这里插入图片描述
[root@localhost named]# cp -p named.localhost test.com.zone
修改区域数据配置文件
在这里插入图片描述
[root@localhost named]# systemctl start named ##启动DNS服务

2.回到win10系统虚拟机上验证DNS
在这里插入图片描述
3.这台做官网的虚拟机因为之前已经手动编译过apache了,所以这边不需要编译了,修改下监听地址,和域名
在这里插入图片描述
4.启动服务,并到win10虚拟机查看是否能够访问网站
在这里插入图片描述
在这里插入图片描述
配置盗链网站虚拟机:
1.直接用yum安装apache服务
[root@localhost ~]# yum -y install httpd
在这里插入图片描述
2.修改配置文件,修改监听地址
[root@localhost ~]# vim /etc/httpd/conf/httpd.conf
在这里插入图片描述
3.配置盗链主机的导航页内容
[root@localhost html]# vim index.html
在这里插入图片描述
4.配置让135地址帮忙解析

[root@localhost html]# echo "nameserver 192.168.148.135" > /etc/resolv.conf

5.到win10虚拟机中输入盗链网址发现盗链成功
在这里插入图片描述
配置防盗链,在官网虚拟机中配置防盗链
1.开启rewrite模块
在这里插入图片描述
2.配置防盗链功能
在这里插入图片描述
3.用xftp软件将error图片放入htdocs目录下
在这里插入图片描述
4.重启apache服务
[root@localhost bin]# ./apachectl stop
[root@localhost bin]# ./apachectl start
在这里插入图片描述
5.回到win10虚拟机中查看发现图片内容变了
在这里插入图片描述
在这里插入图片描述

配置Apache隐藏版本信息:

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

配置Apache隐藏版本信息

●将主配置Apache隐藏版本信息
●将主配置文件httpd.conf以下行注释掉

  • #Include conf/extra/httpd-default.conf

●修改httpd-default.conf文件

  • ServerTokens Full修改为SeverTokens Prod

●重启httpd服务,访问验证

隐藏版本号信息实验
1.这时访问www.test.com用抓包软件查看发现是有版本信息的
在这里插入图片描述
2.修改apache配置文件开启功能
在这里插入图片描述
3.配置apache隐藏版本信息
在这里插入图片描述
4.修改httpd-default.conf的文件
[root@localhost extra]# vim httpd-default.conf
在这里插入图片描述
5.重启apache服务
[root@localhost bin]# ./apachectl stop
[root@localhost bin]# ./apachectl start
回到win10系统发现版本信息被隐藏了
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Cpureman/article/details/107858235
今日推荐