zoukankan      html  css  js  c++  java
  • Linux课程笔记 Apache常用模块的介绍

    1. mod_expires模块介绍

    1.1 mod_expires介绍

    mod_expires允许通过apache配置文件控制HTTP的”Expires:”和”Cache-Control:”头内容,这个模块控制服务器应答时的Expires头内容和Cache-Control头的max-age指令。有效期可以设置为相对于源文件的最后修改时刻或客户端的访问时刻。

    这些HTTP头向客户端表明了内容的有效性和持久性。如果客户端本地有缓存,则内容就可以从缓存而不是从服务器读取。然后客户端会检查缓存中的副本,看看是否过期或者是小,已决定是否从新从服务器获得内容更新。

    1.2模块安装方法

    常规安装方法:

    (1) 编译时可加入如下参数:

    --enable-expires

    (2) mod_expires DSO安装方法

    cd /root/tools/httpd-2.2.25/modules/metadata   ç切到apache软件目录mod_expires程序下

    #这个是解压软件包的路径

    /application/apache/bin/apxs -c -i -a mod_expires.c ç以dso的方式编译到apache中

    ll /application/apache2.2.25/modules/mod_expires.so ç检查mod_expires

    (3) mod_expires  DOS安装出错一例

     

    注意:如果使用.config的方式编译了mod_expires,又以DSO的方式安装mod_expires模块,检查apache的雨法会出现如下报错提示:(可以在httpd.conf文件中,注释该模块)

    [root@test2 metadata]# /application/apache/bin/apachectl -t

    httpd: Syntax error on line 54 of /application/apache2.2.25/conf/httpd.conf: module expires_module is built-in and can't be loaded

    1.3   mod_expires在apache中的应用

    [root@oldboy extra]# cat httpd-vhosts.conf---

    NameVirtualHost *:80

    NameVirtualHost *:8091

    NameVirtualHost *:8092

    #<VirtualHost *:80>

    #DocumentRoot "/var/html/tmp"

    #</VirtualHost>

    <VirtualHost *:80>

        ServerAdmin 31333741@qq.com

        DocumentRoot "/var/html/blog"

        ServerName blog.etiantian.org

        ServerAlias etiantian.org

        ErrorLog "/app/logs/blog-error_log"

        #CustomLog "/app/logs/blog-access_log" common

        CustomLog "|/usr/local/sbin/cronolog /app/logs/access_blog_%w.log" combined

        ExpiresActive on

        ExpiresDefault "access plus 12 month"

        ExpiresByType text/html "access plus 12 months"

        ExpiresByType text/css "access plus 12 months"

        ExpiresByType image/gif "access plus 12 months"

        ExpiresByType image/jpeg "access plus12  12 months"

        ExpiresByType image/jpg "access plus 12 months"

        ExpiresByType image/png "access plus 12 months"

        EXpiresByType application/x-shockwave-flash "access plus 12 months"

        EXpiresByType application/x-javascript "access plus 12 months"

        ExpiresByType video/x-flv "access plus 12 months"

    #这一串代码可以加在httpd.conf文件的最后,也可以加在httpd-vhost.conf文件中虚拟主机配置的后面

    <ifmodule mod_deflate.c>

            DeflateCompressionLevel 9

            SetOutputFilter DEFLATE

            AddOutputFilterByType DEFLATE text/html text/plain text/xml

            AddOutputFilterByType DEFLATE application/javascript

            AddOutputFilterByType DEFLATE text/css

        </ifmodule>

    </VirtualHost>

    <VirtualHost *:8091>

        ServerAdmin 31333741@qq.com

        DocumentRoot "/var/html/bbs"

        ServerName bbs.etiantian.org

        ServerAlias etiantian.org

        ErrorLog "/app/logs/bbs-error_log"

       # CustomLog "/app/logs/bbs-access_log" common

        CustomLog "|/usr/local/sbin/cronolog /app/logs/access_bbs_%w.log" combined

    </VirtualHost>

    使用curl  -I  URL的方式查看该文件的过期时间

    1.4   生产环境mod_expire优点

    (1) 提升用户体验

    (2) 节约网站带宽成本

    (3) 节约网站服务器及维护成本

    1.5  expires失效条件

    (1) 用户主动清空缓存

    (2) 设置的缓存时间到期

    1.6 控制expires方法

    如果网站更新功能或更新文件后,用户再访问时的内容还是旧的,怎么解决这个问题

    解答:

    1)    首先,对于大多数公司业务来说,图片等资源一般很少会去修改,因此可以修改为10年

    2)    对于js,css偶尔会变化的资源,一般expires设置时间比较短,比如1-30天

    3)    在更新文件上采取策略,如,更新后以新的文件名发布

    2 mod_deflate模块介绍

    mod_deflate模块提供了DEFLATE输出过滤器,允许服务器在将输出内容在发送到客户端之前进行压缩,以节约带宽。

    两种安装方式:

    1. 静态编译,即在编译的时候加上--enable-deflate(bin/apachectl -l 查看是否安装)
    2. 以DSO的方式执行安装(bin/apachectl  -M查看是否安装)

    只需要把下面的配置复制到http.conf结尾保存,即可让所有的虚拟主机生效

    <ifmodule mod_deflate.c>

    DeflateCompressionLevel 9  #压缩的等级,越大压缩等级越高,消耗CPU越高

    SetOutputFilter DEFLATE    #启用压缩

    AddOutputFilterByType DEFLATE text/html text/plain text/xml   #这三行设置压缩类型

    AddOutputFilterByType DEFLATE application/javascript

    AddOutputFilterByType DEFLATE text/css

    </ifmodule>

    同样适用curl  -I URL的方式查看,还可以使用firefox插件查看

  • 相关阅读:
    使用try-with-resources偷懒关闭资源
    最小公倍数 分类: python 小练习 2013-12-02 11:19 263人阅读 评论(0) 收藏
    最大公约数 分类: python 小练习 2013-12-02 11:00 222人阅读 评论(0) 收藏
    Vim的Python编辑器详细配置过程 (Based on Ubuntu 12.04 LTS) 分类: ubuntu software 2013-11-30 00:05 652人阅读 评论(1) 收藏
    #小练习 合并首字母相同的男孩、女孩姓名 (最终版) 分类: python 小练习 2013-11-25 16:52 283人阅读 评论(0) 收藏
    输出文件中不包含指定的多个排除词的行内容(双重遍历) 分类: python 小练习 2013-11-22 15:20 605人阅读 评论(0) 收藏
    linux中tomcat内存溢出解决办法 分类: 测试 2013-11-22 09:46 5053人阅读 评论(0) 收藏
    将两个列表元素组成字典 分类: python 小练习 2013-11-12 18:17 750人阅读 评论(0) 收藏
    python:解析html(HTMLParser、SGMLParser) 分类: HTMLParser 2013-11-12 18:11 2302人阅读 评论(0) 收藏
    #小练习 使用SGMLParser获取url链接 分类: HTMLParser 2013-11-12 16:52 471人阅读 评论(0) 收藏
  • 原文地址:https://www.cnblogs.com/fengze/p/6822986.html
Copyright © 2011-2022 走看看