Nginx動靜分離

   如果只讓Nginx做負載均衡和代理服務器,無疑會浪費掉很多Nginx的閒置資源,其實Nginx有很大的靜態文件處理功能,那麼我們完全可以把後端apache或Tomcat服務器上的靜態文件交給Nginx來處理。

   如圖,一臺Nginx和兩臺Apache服務器做了負載均衡,我們只需要訪問Nginx服務器就能獲取到Apache上的網頁信息。我們把這個網站的靜態文件放在Nginx的web目錄中,把動態文件放在Apache的web主目錄中。這樣,當我們訪問這個網站時,靜態文件會在Nginx中讀取,動態文件,會在Apache中讀取。

wKioL1dFRyOzHeOxAAAiyr3h0Fk168.png


配置文件部分內容如下:

http {

    ……

    upstream app_web {

        server 192.168.1.101 weight=1 max_fails=2 fail_timeout=30s;

        server 192.168.1.102 weight=1 max_fails=2 fail_timeout=30s;    

    }

    server {

    listen 80;

    server_name www.abc.com;

    

    location / {

        root /data1/www/abc;

        index index.php index.html index.htm;

        proxy_pass http://app_web;

        }

    location ~ .*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css)$ {

        root /data1/www/abc; #本地靜態文件存放目錄

        expires 3d;       #過期時間

        }

    }

}

   淺藍色部分是需要設置的內容,依靠匹配網站文件後綴來決定是否爲靜態文件,然後指定本地存放靜態文件的路徑,並設定過期時間即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章