zoukankan      html  css  js  c++  java
  • Apache网页优化之压缩与缓存

    Apache网页优化概述

    在企业中,部署Apache后只采用默认的配置参数,会引发网站很多问题,换言之默认配置是针对以前较低的服务器配置的,以前的配置已经不适用当今互联网时代为了适应企业需求,就需要考虑如何提升Apache的性能与稳定性,这就是Apache优化的内容

    gzip介绍

    配置Apache的网页压缩功能,是使用gzip压缩算法来对网页内容进行压缩后再传输到客户端浏览器
    作用
    降低了网络传输的字节数,加快网页加载的速度
    节省流量,改善用户的浏览体验
    gzip与搜索引擎的抓取工具有着更好的关系

    Apache实现网页压缩的功能模块包括

    mod_gzip 模块
    moddeflate模块
    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加载速度更快

    配置网页压缩功能

    首先检查是否安装了mod_deflate模块
    执行apachectl -t -D DUMP_MODULES命令
    如果输出中没有deflate_module (static),说明编译时没有安装mod_deflate模块
    若没有安装则要重新编译安装

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

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

    AddOutputFilterByType DEFLATE texthtml text/plain text/csstext/xml text/JavaScript
    DeflateCompressionL evel
    SetOutputFilter DEFL ATE

    第一行代表对什么样的内容启用gzip压缩
    第二行代表压缩级别
    第三行代表启用deflate模块对本站点的输出进行gzip压缩

    安装Apache服务

    远程挂载软件包文件夹到本地并查看

    [root@localhost ~]# mkdir /abc                                       //创建挂载点
    [root@localhost ~]# mount.cifs //192.168.100.7/LAMP-C7 /abc/         //挂载
    Password for root@//192.168.100.10/LAMP-C7:  
    [root@localhost ~]# cd /abc/
    [root@localhost abc]# ls
    apr-1.6.2.tar.gz       cronolog-1.6.2-14.el7.x86_64.rpm  LAMP-php5.6.txt
    apr-util-1.6.0.tar.gz  Discuz_X2.5_SC_UTF8.zip           mysql-5.6.26.tar.gz
    awstats-7.6.tar.gz     httpd-2.4.29.tar.bz2              php-5.6.11.tar.bz2

    解压源码包到/opt目录下,并移动httpd组件包

    [root@localhost abc]# tar zxvf apr-1.6.2.tar.gz -C /opt/
    [root@localhost abc]# tar zxvf apr-util-1.6.0.tar.gz -C /opt/
    [root@localhost abc]# tar jxvf httpd-2.4.29.tar.bz2 -C /opt/
    [root@localhost abc]# cd /opt/
    [root@localhost opt]# ls
    apr-1.6.2  apr-util-1.6.0  httpd-2.4.29  httpd.txt  rh
    [root@lamp opt]# mv apr-1.6.2/ httpd-2.4.29/srclib/apr        [root@lamp opt]#  mv apr-util-1.6.0/ httpd-2.4.29/srclib/apr-util

    安装实验环境必须的软件包

    yum -y install gcc gcc-c++ make pcre-devel zlib-devel expat-devel pcre perl   
    

    配置安装目录及模块

    [root@lamp opt]#cd /opt/httpd-2.4.29/
    ./configure --prefix=/usr/local/httpd --enable-so --enable-deflate --enable-expires --enable-rewrite --enable-charset-lite --enable-cgi

    编译安装Apache

    make && make install

    广州设计公司https://www.houdianzi.com 我的007办公资源网站https://www.wode007.com

    修改Apache配置文件

    [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 conf
    [root@localhost conf]# ls
    extra  httpd.conf  magic  mime.types  original
    [root@localhost conf]# vim httpd.conf 
    [root@localhost conf]# ln -s /usr/local/httpd/conf/httpd.conf /etc/httpd.conf
    [root@localhost conf]# vim /etc/httpd.conf 
    /deflate搜索关键词查找关键词所在行    
    LoadModule deflate_module modules/mod_deflate.so        //去除注释开启服务
    /headers搜索关键词查找关键词所在行
    LoadModule headers_module modules/mod_headers.so        //去除注释开启服务
    /filter搜索关键词查找关键词所在行
    LoadModule filter_module modules/mod_filter.so          //去除注释开启服务
    使用/Listen查找关键词所在位置
    注释ipv6,开启ipv4并将监听端口改为本机地址
    Listen 192.168.131.129:80
    #Listen 80
    使用/ServerName查找关键词,并做如下修改
    ServerName www.kgc.com:80
    
    在文件末行插入以下内容
    <IfModule mod_deflate.c>
      AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml text/JavaScript text/ipg text/png
      DeflateCompressionLevel 9
      SetOutputFilter DEFLATE
    </IfModule>
    [root@localhost conf]# /usr/local/httpd/bin/apachectl -t
    Syntax OK
    //验证语法是否正确
    
    [root@localhost bin]# ./apachectl start       //启动服务
    [root@localhost bin]# netstat -ntap | grep 80
    tcp        0      0 192.168.35.131:80       0.0.0.0:*               LISTEN      35887/httpd
    [root@localhost bin]# systemctl stop firewalld.service    //关闭防火墙
    [root@localhost bin]# setenforce 0        //关闭增强型安全功能
    [root@localhost bin]# ./apachectl -t -D DUMP_mooules | grep "expire"
    Syntax OK

    使用测试机win10进行测试,在浏览器输入网址192.168.131.129即可访问到主页

    共享文件夹中的图片复制到网页文件目录下,并将图片添加到网页中

    [root@localhost bin]# cd /abc/
    [root@localhost LAMP]# ls
    apr-1.6.2.tar.gz                  fangdao.jpg
    apr-util-1.6.0.tar.gz             httpd-2.4.29.tar.bz2
    awstats-7.6.tar.gz                tupian.png
    cronolog-1.6.2-14.el7.x86_64.rpm  mysql-5.6.26.tar.gz
    Discuz_X2.5_SC_UTF8.zip           php-5.6.11.tar.bz2
    [root@localhost LAMP]# cp lf.jpg /usr/local/httpd/htdocs/        //把图片复制到网页文件夹
    [root@localhost LAMP]# cd /usr/local/httpd/
    [root@localhost httpd]# cd htdocs/
    [root@localhost htdocs]# ls
    index.html  tupian.png
    [root@localhost htdocs]# vim index.html 
    <html><body><h1>It works!</h1>
    <img src="tupian.png"/>
    </body></html>

    现在我们再次使用测试机进行访问就可以看到添加的图片,我们通过抓包软件可以看到有图片的抓取信息中有在端口处进行gzip压缩处理信息

    配置网页的缓存时间

    通过mod expire模块配置 Apache,使网页能在客户端浏览器缓存一段时间,以避免重复请求
    启用mod
     expire模块后, 会自动生成页面头部信息中的Expires标签和Cache-Control标签,从而降低客户端的访问频率和次数,达到减少不必要的流量和增加访问速度的目的

    修改httpd.conf配置文件
    启用mod expires模块,并设置http协议下任意格式的文档均60秒后过期

    <lfModule mod expires.c>
    ExpiresActive On
    ExpiresDefault "access plus 60 seconds"
    </lfModule>

    重启httpd服务

     

    Apache缓存实操

    在配置完Apache网页压缩在前提下再进行如下配置

    配置Apache配置文件

    [root@localhost htdocs]# vim /etc/httpd.conf
    在配置文件末行插入以下内容
    <IfModule mod_expires.c>
      ExpiresActive On
      ExpiresDefault "access plus 50 seconds"
    </IfModule>

    检查语法正确性并重启服务

    [root@localhost htdocs]# pwd
    /usr/local/httpd/htdocs
    [root@localhost htdocs]# cd /usr/local/httpd/
    [root@localhost httpd]# cd bin/
    [root@localhost bin]# ./apachectl -t        //检查语法
    Syntax OK
    [root@localhost bin]# ./apachectl stop
    [root@localhost bin]# ./apachectl start

    我们在用测试机win10里的浏览器进行抓包测试,此时我们可以看到我们设置的网页缓存的时间在头部信息中出现

  • 相关阅读:
    python中的operator.itemgetter函数
    win10下安装Cygwin配置gcc编译环境
    英文单词拼写纠错
    关于文本处理之结巴分词
    mysql 主从复制
    YII2.0 增删改查
    Linux screen命令简介
    Zookeeper简介与安装
    如何在Linux上安装Tomcat
    Java学习笔记之自定义异常
  • 原文地址:https://www.cnblogs.com/qianxiaox/p/13853072.html
Copyright © 2011-2022 走看看