為了提高網站的響應速度,減輕程序服務器(Tomcat,Jboss等)的負載,對于靜態資源比如圖片,js,css等文件,我們可以在反向代理服務器中進行緩存,這樣瀏覽器在請求一個靜態資源時,代理服務器就可以直接處理,而不用將請求轉發給后端服務器。用戶請求的動態文件比如servlet,jsp則轉發給Tomcat,Jboss服務器處理,這就是動靜分離。這也是反向代理服務器的一個重要的作用。

從目前的實現角度來說大致有兩種:一種是把靜態文件放在單獨的服務器上,這是目前主流的方法;
一種就是動態文件和動態文件混合在一起發布,通過Nginx配置分開。
通過location指定不同的后綴名實現不同的請求轉發,通過expires參數設置,可以設置瀏覽器緩存過期時間,減少與服務器之間的請求和流量。
具體Expires定義:是給資源設定一個過期時間,也就是說無需去服務器端驗證,直接通過瀏覽器自身確定是否過期即可,所以不會產生額外的流量。此方法非常適合不經常變動的資源(如果經常更新的文件,不建議使用Expires來緩存),我這里設置3d,表示在這3天之內訪問這個URL,發送一個請求,比對服務器上該文件最后的更新時間沒有變化,則不會從服務器抓取,返回狀態碼304,如果有修改,則之間從服務器上下載,返回狀態碼200。
1、準備工作
(1)在linux系統上創建一個靜態資源文件夾。
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; #目錄索引頁
}
}
訪問:http://ip地址/www/a.html
http://ip地址/image/1.jpg