為了提高網(wǎng)站的響應(yīng)速度,減輕程序服務(wù)器(Tomcat,Jboss等)的負(fù)載,對(duì)于靜態(tài)資源比如圖片,js,css等文件,我們可以在反向代理服務(wù)器中進(jìn)行緩存,這樣瀏覽器在請(qǐng)求一個(gè)靜態(tài)資源時(shí),代理服務(wù)器就可以直接處理,而不用將請(qǐng)求轉(zhuǎn)發(fā)給后端服務(wù)器。用戶請(qǐng)求的動(dòng)態(tài)文件比如servlet,jsp則轉(zhuǎn)發(fā)給Tomcat,Jboss服務(wù)器處理,這就是動(dòng)靜分離。這也是反向代理服務(wù)器的一個(gè)重要的作用。
從目前的實(shí)現(xiàn)角度來(lái)說(shuō)大致有兩種:一種是把靜態(tài)文件放在單獨(dú)的服務(wù)器上,這是目前主流的方法;
一種就是動(dòng)態(tài)文件和動(dòng)態(tài)文件混合在一起發(fā)布,通過(guò)Nginx配置分開(kāi)。
通過(guò)location指定不同的后綴名實(shí)現(xiàn)不同的請(qǐng)求轉(zhuǎn)發(fā),通過(guò)expires參數(shù)設(shè)置,可以設(shè)置瀏覽器緩存過(guò)期時(shí)間,減少與服務(wù)器之間的請(qǐng)求和流量。
具體Expires定義:是給資源設(shè)定一個(gè)過(guò)期時(shí)間,也就是說(shuō)無(wú)需去服務(wù)器端驗(yàn)證,直接通過(guò)瀏覽器自身確定是否過(guò)期即可,所以不會(huì)產(chǎn)生額外的流量。此方法非常適合不經(jīng)常變動(dòng)的資源(如果經(jīng)常更新的文件,不建議使用Expires來(lái)緩存),我這里設(shè)置3d,表示在這3天之內(nèi)訪問(wèn)這個(gè)URL,發(fā)送一個(gè)請(qǐng)求,比對(duì)服務(wù)器上該文件最后的更新時(shí)間沒(méi)有變化,則不會(huì)從服務(wù)器抓取,返回狀態(tài)碼304,如果有修改,則之間從服務(wù)器上下載,返回狀態(tài)碼200。
1、準(zhǔn)備工作
(1)在linux系統(tǒng)上創(chuàng)建一個(gè)靜態(tài)資源文件夾。
mkdir -r /data/image
mkdir -r /data/www
(2)在imgae文件夾中放入圖片,在www文件夾中放入html文件。
2、具體配置
server {
listen 80;
server_name localhost;
location /www {
root /data;
index index.html;
}
location /image {
root /data;
autoindex on; #目錄索引頁(yè)
}
}
訪問(wèn):http://ip地址/www/a.html
http://ip地址/image/1.jpg