网页优化
一、Apache网页优化概述
1、在企业中,部署Apache后只采用默认的配置参数,会引发网站很多问题,换言之默认配置是针对以前较低的服务器配置的,以前的配置已经不适用当今互联网时代
2、为了适应企业需求,就需要考虑如何提升Apache的性能与稳定性,这就是Apache优化的内容
1.1 优化内容
- 配置网页压缩功能
- 配置网页缓存
- 工作模式的选择与参数优化
- 配置隐藏版本号
- 配置防盗链
…
1.2 gzip介绍
1、配置Apache的网页压缩功能,是使用gzip压缩算法来
对网页内容进行压缩后再传输到客户端浏览器
2、作用
- 降低了网络传输的字节数,加快网页加载的速度
- 节省流量,改善用户的浏览体验
- gzip与搜索引擎的抓取工具有着更好的关系
1.3 Apache的压缩模块
1、Apache实现网页压缩的功能模块包括
- mod_ gzip模块
- mod_ deflate模块
2、Apache 1.x - 没有内建网页压缩技术,但可使用第三方mod, _gzip 模块执行压缩
3、Apache 2.x - 在开发的时候,内建了mod_ deflate 这个模块,取代mod_ gzip
Apache的压缩模块2-2
4、mod_ gzip 模块与mod _deflate 模块 - 两者均使用gzip压缩算法,运作原理类似
- mod_ deflate压缩速度略快, 而mod_ gzip的压缩比略高
- mod_ gzip对服务器CPU的占用要高- -些
- 高流量的服务器,使用mod_ deflate可能会比mod gzip 加载速度更快
二、网页压缩
配置网页压缩功能
1、启用网页压缩功能步骤模块
- 查看是否安装mod deflate
- 修改配置文件启用压缩功能
- 访问测试
配置网页压缩功能4-2
2、检查是否已安装mod_ deflate模块 - 执行apachectl -t -D DUMP_ MODULES命令
- 如果输出中没有deflate_ module (static), 说明编译时没有安装mod_ _deflate模块
3、若没有安装,则要重新编译安装 - ./configure --enable-deflate…
make && make install
4、在配置httpd.conf中配置开启gzip功能 - AddOutputFilterByType DEFLATE texthtml text/plain text/css textxml textjavascript
设置对什么样的内容启用gzip压缩 - DeflateCompressionL evel
压缩级别 - SetOutputFilter DEFLATE
启用deflate模块对本站点的输出进行gzip压缩
5、重启Apache服务,再用火狐浏览器访问测试网站
6、在浏览器中选择“查看元素”可以看到有"Accept-Encoding:gzip"表示压缩已经生效
三、网页缓存
配置网页的缓存时间
1、通过mod_ expire模块配置Apache,使网页能在客户端浏览器缓存一-段时间,以避免重复请求
2、启用mod_ expire模块后,会自动生成页面头部信息中的Expires标签和Cache-Control标签,从而降低客户
端的访问频率和次数,达到减少不必要的流量和增加访问速度的目的
3、启用网页缓存功能步骤
- 查看是否安装mod_ expire模块
- 修改配置文件启用缓存功能
- 访问测试
4、查看是否安装了mod_ expire模块
- /us/local/apache/bin/apachectl -t -D DUMP_ MODULES
- 如果输出中没有expires_ module (static),则说明编译时没
有安装mod expires
5、如果没有安装,需要重新编译安装
- ./configure 一-enable-expires…
- make && make install
6、修改httpd.conf配置文件
- 启用mod_ expires模块, 并设置http协议 下任意格式的文档均60秒后过期
<lfModule mod_ expires.c>
ExpiresActive On
ExpiresDefault "access plus 60 seconds"
</lfModule>
7、重启httpd服务
四、实验
4.1 网页压缩
[root@promote ~]# cd /opt/
[root@promote opt]# ls
rh
[root@promote opt]# ls
apr-1.7.0.tar.gz apr-util-1.6.1.tar.gz httpd-2.4.25.tar.gz rh
[root@promote opt]# tar zxvf apr-1.7.0.tar.gz
[root@promote opt]# tar zxvf httpd-2.4.25.tar.gz
[root@promote opt]# ls
apr-1.7.0 apr-util-1.6.1 httpd-2.4.25 rh
apr-1.7.0.tar.gz apr-util-1.6.1.tar.gz httpd-2.4.25.tar.gz
[root@promote opt]# mv apr-1.7.0 httpd-2.4.25/srclib/apr
[root@promote opt]# mv apr-util-1.6.1 httpd-2.4.25/srclib/apr-util
[root@promote opt]# yum -y install gcc gcc-c++ make pcre-devel expat-devel perl
[root@promote opt]# yum -y install zlib-devel //支持压缩功能的开发工具
[root@promote opt]# cd httpd-2.4.25/
[root@promote httpd-2.4.25]# ./configure --prefix=/usr/local/httpd --enable-deflate --enable-so --enable-rewrite --enable-charset-lite --enable-cgi
[root@promote httpd-2.4.25]#make
[root@promote httpd-2.4.25]#make install
[root@promote httpd-2.4.25]# ln -s /usr/local/httpd/conf/httpd.conf /etc/
[root@promote httpd-2.4.25]# vim /etc/httpd.conf
LoadModule headers_module modules/mod_headers.so
LoadModule deflate_module modules/mod_deflate.so
LoadModule filter_module modules/mod_filter.so
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/plain text/css text/xml text/javascript text/jpg text/png
DeflateCompressionLevel 9
SetOutputFilter DEFLATE
</IfModule>
[root@promote httpd-2.4.25]# /usr/local/httpd/bin/httpd -t //验证语法对错
Syntax OK
[root@promote httpd-2.4.25]# /usr/local/httpd/bin/httpd //开启服务
[root@promote httpd-2.4.25]# cd /usr/local/httpd/bin/ //进入命令目录
[root@promote bin]# ls
ab apu-1-config dbmmanage fcgistarter htdigest httxt2dbm
apachectl apxs envvars htcacheclean htpasswd logresolve
apr-1-config checkgid envvars-std htdbm httpd rotatelogs
[root@promote bin]# ./apachectl -t -D DUMP_MODULES | grep "deflate" //验证模块
deflate_module (shared)
[root@promote bin]# cd /usr/local/httpd/
[root@promote httpd]# ls
bin build cgi-bin conf error htdocs icons include lib logs man manual modules
[root@promote httpd]# cd htdocs/
[root@promote htdocs]# ls
index.html
用xshell插入一张图片
[root@promote htdocs]# ls
game.jpg index.html
[root@promote htdocs]# vim index.html
<html><body><h1>It works!</h1></body></html>
<img src="game.jpg"/>
[root@promote htdocs]# iptables -F
[root@promote htdocs]# setenforce 0
打开win10,安装flddler监控软件,在浏览器上输入192.168.200.110,点开后,监控软件显示压缩
4.2 网页缓存
[root@promote opt]# iptables -F
[root@promote opt]# setenforce 0
[root@promote ~]# cd /opt/
[root@promote opt]# ls
rh
[root@promote opt]# ls
apr-1.7.0.tar.gz apr-util-1.6.1.tar.gz httpd-2.4.25.tar.gz rh
[root@promote opt]# tar zxvf apr-1.7.0.tar.gz
[root@promote opt]# tar zxvf httpd-2.4.25.tar.gz
[root@promote opt]# ls
apr-1.7.0 apr-util-1.6.1 httpd-2.4.25 rh
apr-1.7.0.tar.gz apr-util-1.6.1.tar.gz httpd-2.4.25.tar.gz
[root@promote opt]# mv apr-1.7.0 httpd-2.4.25/srclib/apr
[root@promote opt]# mv apr-util-1.6.1 httpd-2.4.25/srclib/apr-util
[root@promote opt]# yum -y install gcc gcc-c++ make pcre-devel expat-devel perl
[root@promote opt]# yum -y install zlib-devel
[root@promote opt]# cd httpd-2.4.25/
[root@promote httpd-2.4.25]# ./configure --prefix=/usr/local/httpd --enable-deflate --enable-expires --enable-so --enable-rewrite --enable-charset-lite --enable-cgi
[root@promote httpd-2.4.25]# make
[root@promote httpd-2.4.25]# make install
[root@promote httpd-2.4.25]# vim /usr/local/httpd/conf/httpd.conf
LoadModule expires_module modules/mod_expires.so
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 50 seconds"
</IfModule>
[root@promote httpd-2.4.25]# cd /usr/local/httpd/
[root@promote httpd]# ls
bin build cgi-bin conf error htdocs icons include lib logs man manual modules
[root@promote httpd]# cd bin/
[root@promote bin]# ls
ab apu-1-config dbmmanage fcgistarter htdigest httxt2dbm
apachectl apxs envvars htcacheclean htpasswd logresolve
apr-1-config checkgid envvars-std htdbm httpd rotatelogs
[root@promote bin]# ./apachectl -t
Syntax OK
[root@promote bin]# ./apachectl //开启Apache
[root@promote bin]# netstat -antp | grep httpd
tcp6 0 0 :::80 :::* LISTEN 77404/httpd
[root@promote bin]# ./apachectl -t -D DUMP_MODULES | grep "expires"
expires_module (shared)
[root@promote bin]# cd ..
[root@promote httpd]# cd htdocs/
[root@promote htdocs]# ls
index.html
[root@promote htdocs]# ls
game.jpg index.html
[root@promote htdocs]# vim index.html
<html><body><h1>It works!</h1></body></html>
<img src="game.jpg"/>
清空浏览器缓存,登录