Nginx教程(6) 動靜分離架構


一、原理

Nginx 動靜分離簡單來說就是把動態跟靜態請求分開,不能理解成只是單純的把動態頁面和靜態頁面物理分離。嚴格意義上說應該是動態請求跟靜態請求分開,可以理解成使用Nginx 處理靜態頁面,Tomcat、 Resin 出來動態頁面。動靜分離從目前實現角度來講大致分為兩種,

一種是純粹把靜態文件獨立成單獨的域名,放在獨立的服務器上,也是目前主流推崇的方案;

另外一種方法就是動態跟靜態文件混合在一起發布,通過 nginx 來分開。這樣也是本次課程要講解的,具體怎么來實現呢,

通過 location 指定不同的后綴名實現不同的請求轉發。通過 expires 參數設置,可以使瀏覽器緩存過期時間,減少與服務器之前的請求和流量。具體 Expires 定義:是給一個資源設定一個過期時間,也就是說無需去服務端驗證,直接通過瀏覽器自身確認是否過期即可,所以不會產生額外的流量。此種方法非常適合不經常變動的資源。(如果經常更新的文件,不建議使用 Expires 來緩存),我這里設置 3d,表示在這 3 天之內訪問這個 URL,發送一個請求,比對服務器該文件最后更新時間沒有變化,則不會從服務器抓取,返回狀態碼 304,如果有修改,則直接從服務器重新下載,返回狀態碼 200。

 

二、例子

在 nginx-1.13.0.tar.gz下測試

項目

靜態文件路徑

配置文件

 server {
        listen       80; 
        server_name  a;
        location /t1 
        {   
        proxy_pass http://192.168.56.90:8180/t1;
        }   
            
        location ~ .*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css)$
        {   
        root /usr/local/tomcat/apache-tomcat-7.0.70-8180/webapps/;
        expires 30d;
        }   
    }

測試

訪問靜態文件

再次訪問

 

狀態為304

 最后檢查 Nginx 配置是否正確即可,然后測試動靜分離是否成功,之需要刪除后端tomcat 服務器上的某個靜態文件,查看是否能訪問,如果可以訪問說明靜態資源 nginx 直接返回了,不走后端 tomcat 服務器

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM