1、概念基礎
Nginx動靜分離簡單來說就是把動態請求和靜態請求分開,不能理解成只是單純的把動態頁面靜態頁面的物理分離。嚴格意義上說應該是動態請求跟靜態請求的分開,可以理解成使用Nginx處理靜態頁面,Tomcat處理動態頁面。動靜分離從目前實現角度來講大致分為兩種。
一種是單純的把靜態文件獨立成單獨的域名,放在獨立的服務器上,也是目前主流的推崇方案。另外一種是動態和靜態文件混合一起發布,通過nginx來分開。
通過 location 指定不同的后綴名實現不同的請求轉發。通過expires參數設置,可以使瀏覽器緩存過期時間,減少與服務器之前的請求和流量。具體 Expires 定義:是給一個資源設定一個過期時間,也就是說無需去服務端驗證,直接通過瀏覽器自身確認是否過期即可,所以不會產生額外的流量:此種方法非常適合不經常變動的資源。(如果經常更新的文件,不建議使用 Expires 來緩存),我這里設置 3d,表示在這B天之內訪問這個 URL,發送一個請求,比對服務器該文件最后更新時間沒有變化,則不會從服務器抓取,返回狀態碼304,如果有修改,則直接從服務器重新下載,返回狀態碼 200.
2、動靜分離實例
2.1、準備工作
在Linux系統中準備靜態資源,用于進行訪問。
準備/data/image/和/data/www/
2.2、修改配置文件
location /www/ {root /data/;index index.html index.htm;}
location /image/ {root /data/;autoindex on;(列出當前文件夾中的內容)}
2.3、最終測試
瀏覽器中輸入地址
http://localhost/image/01.jpg
http://localhost/www/test.html