1. 程式人生 > >apache設定靜態元素過期時間

apache設定靜態元素過期時間

當用戶訪問網站時,瀏覽器會快取網頁的圖片等,以方便下次訪問該網頁時不用再次載入圖片等檔案提高訪問速度,但快取不能一直存在,故應該設定靜態元素過期時間,指定某些快取檔案在指定時間後需要再次被載入。

  • 修改虛擬主機配置檔案
    新增靜態元素過期時間配置
[[email protected] ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
    DocumentRoot "/data/www/phpems.com"
    ServerName phpems.com
    ServerAlias aphpems.com www.zhounan.com
    <IfModule mod_rewrite.c>
        RewriteEngine on
        RewriteCond %{HTTP_HOST} !^phpems.com$
        RewriteRule ^/(.*)$ http://phpems.com/$1 [R=301,L]
    </IfModule>
<IfModule mod_expires.c>
    ExpiresActive on 
    ExpiresByType image/gif  "access plus 1 days"
    ExpiresByType image/jpeg "access plus 24 hours"
    ExpiresByType image/png "access plus 24 hours"
    ExpiresByType text/css "now plus 2 hour"
    ExpiresByType application/x-javascript "now plus 2 hours"
    ExpiresByType application/javascript "now plus 2 hours"
    ExpiresByType application/x-shockwave-flash "now plus 2 hours"
    ExpiresDefault "now plus 0 min"
</IfModule>
    ErrorLog "logs/phpems.com-error_log"
    SetEnvIf Request_URI ".*\.gif$" img
    SetEnvIf Request_URI ".*\.jpg$" img
    SetEnvIf Request_URI ".*\.png$" img
    SetEnvIf Request_URI ".*\.bmp$" img
    SetEnvIf Request_URI ".*\.swf$" img
    SetEnvIf Request_URI ".*\.js$" img
    SetEnvIf Request_URI ".*\.css$" img
    CustomLog "|/usr/local/apache2.4/bin/rotatelogs -l logs/phpems.com-access_%Y%m%d.log 86400" combined env=!img
</VirtualHost>

定義gif jpeg png css等檔案設定過期時間
1days 一天
24 hours 24小時
2hous 2小時
now plus 0 min 非被定義的都不設定過期時間
在這裡插入圖片描述

  • 載入apache靜態元素過期時間模組
[[email protected] ~]# vim /usr/local/apache2.4/conf/httpd.conf
##########搜尋expires###############
LoadModule env_module modules/mod_env.so
#LoadModule expires_module modules/mod_expires.so #刪除改行#號
LoadModule headers_module modules/mod_headers.so

在這裡插入圖片描述

  • 重新整理配置檔案檢視模組
[[email protected] ~]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
[[email protected] ~]# /usr/local/apache2.4/bin/apachectl graceful
[[email protected] ~]# 
[[email protected] ~]# /usr/local/apache2.4/bin/apachectl -M |grep expires
 expires_module (shared) #載入模組成功
  • 測試靜態元素過期時間
    date:fri 靜態元素訪問時間
    cache-control 多久過期
    expires:sat 靜態元素過期到期時間
    在這裡插入圖片描述
    在這裡插入圖片描述