Nginx使用Expires增加浏览器缓存加速(转)
轉(zhuǎn)載自:Nginx使用Expires增加瀏覽器緩存加速?
Nginx可以更改HTTP頭部,這個(gè)是Web服務(wù)器必須的,當(dāng)然Nginx更可以支持在HTTP頭部中添加Expires等相關(guān)信息,增強(qiáng)瀏覽器緩存,是網(wǎng)頁加載速度增強(qiáng)。
Nginx中使用Expires增強(qiáng)瀏覽器緩存
能夠使瀏覽器緩存的HTTP頭部信息主要有以下三種:
1、last-modified實(shí)現(xiàn)瀏覽器緩存
last-modified是根據(jù)文件更新時(shí)間來確定是否再次發(fā)送加載。通過返回last-modified頭部信息:
| 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | GET/wp-content/plugins/crayon-syntax-highlighter/js/min/crayon.min.js HTTP/1.1 Host:www.3mc2.com User-Agent:Mozilla/5.0(Windows NT6.1;WOW64;rv:26.0)Gecko/20100101Firefox/26.0 Accept:*/* Accept-Language:zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3 Accept-Encoding:gzip,deflate Referer:http://www.3mc2.com/category/architecture Cookie:wp-settings-1=hidetb%3D0%26libraryContent%3Dbrowse%26align%3Dcenter%26urlbutton%3Dnone%26editor%3Dtinymce%26wplink%3D0%26ed_size%3D508%26mfold%3Do;wp-settings-time-1=1389840828 Connection:keep-alive HTTP/1.1200OK Server:nginx Date:Thu,16Jan201415:47:24GMT Content-Type:application/x-javascript Last-Modified:Thu,16Jan201402:29:13GMT Transfer-Encoding:chunked Connection:keep-alive Content-Encoding:gzip |
再次請求則帶有If-Modified-Since頭部信息,并返回404:
| 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | GET/wp-includes/js/jquery/jquery.js?ver=1.10.2HTTP/1.1 Host:www.3mc2.com User-Agent:Mozilla/5.0(Windows NT6.1;WOW64;rv:26.0)Gecko/20100101Firefox/26.0 Accept:*/* Accept-Language:zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3 Accept-Encoding:gzip,deflate Referer:http://www.3mc2.com/category/architecture/nginx Connection:keep-alive If-Modified-Since:Thu,16Jan201402:29:13GMT HTTP/1.1304Not Modified Server:nginx Date:Thu,16Jan201415:53:34GMT Last-Modified:Thu,16Jan201402:29:13GMT Connection:keep-alive |
我的測試環(huán)境為firefox,網(wǎng)址中帶有”?ver=”參數(shù)的文件會(huì)再次發(fā)送請求(返回304),其他文件均未再次請求。
2、Etag確定瀏覽器緩存:
Etag的原理是將文件資源編號一個(gè)etag值,Response給訪問者,訪問者再次請求時(shí),帶著這個(gè)Etag值,與服務(wù)端所請求的文件的Etag對比,如果不同了就重新發(fā)送加載,如果相同,則返回304.
3、Expires瀏覽器緩存:
Expires是給一個(gè)資源設(shè)定一個(gè)過期時(shí)間,也就是說無需去服務(wù)端驗(yàn)證,直接通過瀏覽器自身確認(rèn)是否過期即可,所以不會(huì)產(chǎn)生額外的流量。此種方法非常適合不經(jīng)常變動(dòng)的資源。如果文件變動(dòng)較頻繁,不要使用Expires來緩存。
對于本博客來說,css樣式和JS腳本基本已經(jīng)定型,所以最適合的方法是Expires來緩存一些內(nèi)容到訪問者瀏覽器。通過配置Nginx配置文件實(shí)現(xiàn)相關(guān)功能:
| 0 1 2 3 4 5 6 7 8 9 10 11 12 13 | server{ ????..... ????root/www.3mc2.com; ????index??index.html index.htm index.php; ????location~.*\.(gif|jpg|jpeg|bmp|png|ico|txt|mp3|mp4|swf){ ????????expires15d; ????} ????location~.*\.(css|js){ ????????expires12h; ????} ????...... } |
總結(jié)
以上是生活随笔為你收集整理的Nginx使用Expires增加浏览器缓存加速(转)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: EXT.NET复杂布局(二)——报表
- 下一篇: android 地理位置改变,Andro