LAMP架構十二( Apache靜態元素過期時間)
十二、靜態元素過期時間
對於短時間內的重複訪問,將靜態元素設定為僅在第一次下載,不僅可以減輕伺服器壓力,又可以提升使用者訪問體驗。但這個時間不能設定的過長,具體情況根據網站自身內容的更新頻率而定,對於使用者請求超過了設定的時間,客戶端會重新向伺服器請求靜態元素,以保證頁面最新。
配置靜態元素過期時間,配置的時候注意空格和拼寫:
[[email protected] ~]# vi /etc/httpd/conf.d/virtual.conf
虛擬主機增加靜態元素規則:
<VirtualHost *:8090> 80是http的服務埠,不用改
ServerAdmin[email protected] 網站管理員郵箱,設定成自己的網站
DocumentRoot "/var/www/html/a" 虛擬主機根目錄放網站程式
ServerName a.com 網站名,域名
ServerAlias www.a.com 網站別名,域名別名,可寫多個要用空格隔開
<IfModule mod_rewrite.c> 需要mod_rewrite模組支援
RewriteEngine on 開啟rewrite功能
RewriteCond %{HTTP_HOST} !^www.a.com$ 將非www.test.com的域名請求跳轉至此
RewriteRule ^/(.*)$ http://www.baidu.com/$1 [R=301,L] 狀態碼301永久跳轉,L=last,跳一次
定義跳轉規則,將以^/(.*)$開頭結尾的域名請求跳轉,$1代表^/(.*)$
</IfModule>
<IfModule mod_expires.c> 載入mod_expires.c有效期模組
ExpiresActive on 開啟有效期功能開關
ExpiresByType image/gif "access plus 1 days" 有效期1天
ExpiresByType image/jpeg "access plus 24 hours" 有效期24小時
ExpiresByType image/jpg "access plus 24 hours" 有效期24小時
ExpiresByType image/png "access plus 24 hours" 有效期24小時
ExpiresByType text/css "now plus 2 hour" 有效期2小時
ExpiresByType application/x-javascript "now plus 2 hours" 有效期2小時
ExpiresByType application/javascript "now plus 2 hours" 有效期2小時
ExpiresByType application/x-shockwave-flash "now plus 2 hours" 有效期2小時
ExpiresDefault "now plus 0 min" 有效期0分鐘,不快取
</IfModule>
ErrorLog "logs/test.com-error_log" 錯誤日誌儲存路徑
SetEnvIf Request_URI ".*\.gif$" img 日誌記錄規則,變量表示.gif檔案
SetEnvIf Request_URI ".*\.jpg$" img 日誌記錄規則,變量表示.jpg檔案
SetEnvIf Request_URI ".*\.png$" img 日誌記錄規則,變量表示.png檔案
SetEnvIf Request_URI ".*\.bmp$" img 日誌記錄規則,變量表示.bmp檔案
SetEnvIf Request_URI ".*\.swf$" img 日誌記錄規則,變量表示.swf檔案
SetEnvIf Request_URI ".*\.js$" img 日誌記錄規則,變量表示.js檔案
SetEnvIf Request_URI ".*\.css$" img 日誌記錄規則,變量表示.cs檔案
CustomLog "|/usr/local/apache2.4/bin/rotatelogs -l logs/test.com-access_%Y%m%d.log 86400" combined env=!img
</VirtualHost>
確認有誤expires_module模組
測試語法並重新載入配置
[[email protected] ~]# /usr/sbin/apachectl -t
Syntax OK
[[email protected] ~]# /usr/sbin/apachectl graceful
測試訪問:
[[email protected] ~]# touch /var/www/html/a/images/test.jpep
我在日誌記錄規則裡未排除jpeg型別元素的記錄,但在有效期規則裡設定了jpeg型別元素的有效期
未配置過期時間之前:
配置了過期時間之後:
檢視訪問記錄:
狀態碼304,表示已快取在遠端客戶端,即訪問者的電腦,第一次訪問的狀態碼為200,表示獲取成功。