首先要明白mod_expires這個模塊的作用是什麼?它是控制服務器響應expires頭和cache-contral頭部的max-age指令.這些http頭向客戶端表明了文檔的有效性和持久性.如果有緩存,客戶端可以直接從緩存中讀取,客戶端考察緩存中的副本,看看是否已過期或失效.再決定是否從服務器端更新.Expires是瀏覽器Cache機制的一部分,瀏覽器的緩存取決於Header中的四個值: Cache-Control, Expires, Last-Modified, ETag。此模塊安裝後可以減少10%的重複請求.
(一)報錯解決:
/usr/local/apache/bin/apxs -i -a -c /usr/local/src/httpd-2.0.55/modules/metadata/mod_expires.c
如果報錯:
Warning! dlname not found in /usr/local/apache/modules/mod_expires.la.
Assuming installing a .so rather than a libtool archive.
chmod 755 /usr/local/apache/modules/mod_expires.so
chmod: 無法訪問‘/usr/local/apache/modules/mod_expires.so’: 沒有那個文件或目錄
apxs:Error: Command failed with rc=65536
則執行: (引用張宴博客)
gcc -shared -o /usr/local/apache/modules/mod_expires.so /usr/local/src/httpd-2.0.55/modules/metadata/mod_expires.o
/usr/local/apache/bin/apxs -i -a -c /usr/local/src/httpd-2.0.55/modules/metadata/mod_expires.o
編譯成功!
(二)具體設置:
- <IfModule mod_expires.c>
- ExpiresActive On
- ExpiresByType p_w_picpath/gif "access plus 1 month"
- ExpiresByType p_w_picpath/jpeg "access plus 1 month"
- ExpiresByType p_w_picpath/x-icon "access plus 1 month"
- ExpiresByType p_w_picpath/png "access plus 1 month"
- ExpiresByType text/html "access plus 30 minutes"
- ExpiresByType text/css "access plus 30 minutes"
- ExpiresByType text/js "access plus 30 minutes"
- ExpiresByType application/x-javascript "access plus 30 minutes"
- ExpiresByType application/x-shockwave-flash "access plus 30 minutes"
- </IfModule>
重啓apache生效
#/usr/local/apache/bin/apachel stop
#/usr/local/apache/bin/apachel start