Web服务器群集----Apache 网页优化

前言

  • Apache作为最常用的网站服务器,其在部署之后都是使用默认配置。
  • 现今,针对不同的生产环境,我们需要作出不同的针对优化,不仅要考虑Apache的稳定,更要考虑其安全性

一:Apache网页优化

1.1:网页压缩

1.1.1:网页优化概述
  • 在企业中,部署Apache后会有默认的配置参数,如果不及时进行优化配置,在当今互联网时代,会引发网站很多问题
  • 为了适应企业需求,就需要考虑如何提升Apache的性能与稳定性,这就是Apache的优化内容
  • 优化内容
    配置网页压缩功能
    工作模式的选择与参数优化
    配置防盗链
    配置隐藏版本号
1.1.2:网页gzip概述
  • 配置Apache的网页压缩功能,是使用gzip压缩算法来对网页内容进行压缩后在传输到客户端浏览器
  • 作用
    • 降低了网络传输的字节数,加快网页加载的速度
    • 节省流量,改善用户的浏览体验
    • gzip与搜索引擎的抓取工作有着更好的关系
1.1.3: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_gzip的压缩比略高
    mod_gzip对服务器CPU占用要高一些
    高流量的服务器,使用mod_deflate可能会比mod_gzip加载速度更快
1.1.4:配置网页压缩功能
  • 启用网页压缩功能步骤

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

  • 1.查看是否安装mod_deflate模块

    • 执行apachectl -t -D DUMP_MODULES命令

    • 如果输出中没有deflate_module(static),说明编译时没有安装mod_deflate模块

    • 没有安装则需要从新编译安装

    • ./configure --enable-deflate…

    • make && make install

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

    AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml text/javascript	'//设置对什么样的内容启用gzip压缩'
    DeflateCompressionLevel	'//代表压缩级别'
    SetOutputFilter DEFLATE	'//代表启用deflate模块对本站点的输出进行gzip压缩'
    
  • 3.重启Apache服务,再用浏览器访问测试网站

    在浏览器中选择"查看元素" 可以查看到有"Accept-Encoding:gzip"表示压缩已生效

    并用Fiddler工具抓包,进行对比分析

1.2:Apache网页压缩实操

//上传rpm包到/opt
[root@localhost opt]# tar zxvf apr-util-1.6.0.tar.gz 
[root@localhost opt]# tar zxvf apr-1.6.2.tar.gz 
[root@localhost opt]# tar jxvf httpd-2.4.29.tar.bz2 
[root@localhost opt]# ls
apr-1.6.2         apr-util-1.6.0         httpd-2.4.29          rh
apr-1.6.2.tar.gz  apr-util-1.6.0.tar.gz  httpd-2.4.29.tar.bz2
[root@localhost opt]# mv apr-1.6.2 httpd-2.4.29/srclib/apr
[root@localhost opt]# mv apr-util-1.6.0 httpd-2.4.29/srclib/apr-util
[root@localhost httpd-2.4.29]# yum install zlib-devel -y
[root@localhost httpd-2.4.29]# yum -y install gcc gcc-c++ make pcre-devel expat-devel perl
[root@localhost httpd-2.4.29]# ./configure --prefix=/usr/local/httpd --enable-deflate --enable-so --enable-rewrite --enable-charset-lite --enable-cgi 
[root@localhost httpd-2.4.29]# make && make install

[root@localhost httpd-2.4.29]# ln -s /usr/local/httpd/conf/httpd.conf /etc/
[root@localhost httpd-2.4.29]# 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
//G在尾部添加
<IfModule mod_deflate.c>
  AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml text/javascrip text/jpg text/png
  DeflateCompressionLevel 9
  SetOutputFilter DEFLATE
</IfModule>
//修改
ServerName www.kgc.com:80
Listen 192.168.100.120:80
#Listen 80
[root@localhost httpd-2.4.29]# /usr/local/httpd/bin/httpd -tSyntax OK

1.2.5:关闭防火墙,开启服务


[root@localhost httpd-2.4.29]# /usr/local/httpd/bin/apachectl start
[root@localhost httpd-2.4.29]# netstat -ntap |grep 80
tcp        0      0 192.168.100.120:80      0.0.0.0:*               LISTEN      106591/httpd        
[root@localhost httpd-2.4.29]# systemctl stop firewalld.service
[root@localhost httpd-2.4.29]# setenforce 0
[root@localhost httpd-2.4.29]# cd /usr/local/httpd/
[root@localhost httpd]# ls
bin    cgi-bin  error   icons    lib   man     modules
build  conf     htdocs  include  logs  manual
[root@localhost httpd]# cd htdocs/
[root@localhost htdocs]# ls
index.html
[root@localhost htdocs]# vim index.html 

<html><body><h1>It works!</h1></body></html>
<img src="game.jpg"/>
~                      
[root@localhost htdocs]# rz -E
rz waiting to receive.
[root@localhost htdocs]# ls
game.jpg  index.html
[root@localhost htdocs]# cd /usr/local/httpd/bin
[root@localhost bin]# ./apachectl -t -D DUMP_MODULES |grep "deflate"
 deflate_module (shared)
'//查看是否安装mod_deflate模块'

1.3:验证配置

1.3.1:验证配置
  • VMware打开一台Windows用来验证
  • Windows中安装检验工具fiddler

客户机验证

mark

mark

mark

mark

mark

1.3:网页缓存

1.3.1:配置网页的缓存时间概述
  • 通过mod_expire模块配置Apache,使网页能在客户端浏览器缓存一段时间,以避免重复请求
  • 启用mod_expire模块后,会自动生成页面头部信息中的Expires标签和Cache-Control标签,从而降低客户端的访问频率和次数,达到减少不必要的流量和增加访问速度的目的
1.3.2:启用网页的缓存功能步骤
  • 1.查看是否安装mod_expire模块
    2、修改配置文件启用缓存功能
    3.抓包测试
1.3.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服务
  • 再次访问测试网站,使用抓包工具Fiddler进行数据抓取分析

1.4:Apache网页缓存实操

1.4.1:环境配置
  • 环境同Apache网页压缩
  • 编译器安装也相同
1.4.2:configure配置和make&&make install
[root@localhost httpd-2.4.29]#./configure \
--prefix=/usr/local/httpd \
--enable-so \
--enable-rewrite \
--enable-charset-lite \
--enable-cgi \
--enable-deflate \
--enable-expires
[root@localhost httpd-2.4.29]# make
[root@localhost httpd-2.4.29]# make install
1.4.3:配置启动脚本
[root@localhost httpd-2.4.29]# ln -s /usr/local/httpd/conf/httpd.conf /etc/httpd.conf	'//建软链接便于管理'
[root@localhost httpd-2.4.29]# vim /etc/httpd.conf 
ServerName www.kgc.com:80		'//修改域名'
Listen 192.168.100.120:80	'//修改监听地址'
#Listen 80
LoadModule expires_module modules/mod_expires.so	'//开启缓存模块'
 '//下面验证语法格式'
[root@localhost httpd-2.4.29]# pwd
/opt/httpd-2.4.29

1.4.4:开启服务,关闭防火墙
[root@localhost bin]# cd /usr/local/httpd/bin
[root@localhost bin]# ./apachectl start
[root@localhost bin]# netstat -ntap |grep 80
tcp        0      0 192.168.100.120:80      0.0.0.0:*               LISTEN      42665/httpd    
[root@localhost bin]# systemctl stop firewalld.service 
[root@localhost bin]# setenforce 0
1.4.5: 开启网页缓存
[root@localhost bin]# vim /etc/httpd.conf           //这里是软链接过来的配置文件
.......                                             //G末行添加
<IfModule mod_expires.c>
  ExpiresActive On
  ExpiresDefault "access plus 50 seconds"
</IfModule>
[root@localhost httpd-2.4.29]# cd /usr/local/httpd/
[root@localhost httpd]# ls
bin  build  cgi-bin  conf  error  htdocs  icons  include  lib  logs  man  manual  modules
[root@localhost httpd]# cd bin
[root@localhost bin]# ./apachectl -t
Syntax OK	'//语法格式没问题'
    '//检测expires模块'
[root@localhost bin]# ./apachectl -t -D DUMP_MODULES | grep "expires"
 expires_module (shared)
1.4.6:编辑首页文件和插入图片
[root@localhost bin]# cd  ../
[root@localhost httpd]# cd htdocs/
[root@localhost htdocs]# ls
index.html
[root@localhost htdocs]# vim index.html 
[root@localhost htdocs]# rz -E
rz waiting to receive.
[root@localhost htdocs]# ls
game.jpg  index.html
[root@localhost htdocs]# cd /usr/local/httpd/bin
[root@localhost bin]# ls
ab            apxs       envvars-std   htdigest   logresolve
apachectl     checkgid   fcgistarter   htpasswd   rotatelogs
apr-1-config  dbmmanage  htcacheclean  httpd
apu-1-config  envvars    htdbm         httxt2dbm
[root@localhost bin]# ./apachectl restart

mark

mark

  • 修改缓存时间验证
[root@localhost bin]# vim /etc/httpd.conf 
...省略内容
<IfModule mod_expires.c>
  ExpiresActive On
  ExpiresDefault "access plus 300 seconds"	'//文件末尾,将60秒修改为其他时间,验证'
</IfModule>
[root@localhost bin]# ./apachectl stop
[root@localhost bin]# ./apachectl start

mark
缓存时间已经改为300s,实验成功

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值