12. Nginx動靜分離

通常來講,靜態資源是指JavaScript、CSS、Img等文件,動態資源則是經過PHP、Java等後端語言運行一系列的代碼邏輯來獲取的。php

若是是靜態資源的請求,就直接讓nginx在靜態資源目錄下面讀取,而後返回給客戶端css

若是是動態資源的請求,則nginx利用反向代理把請求轉發給後端應用去處理,而後後端應用將結果返回給nginx,nginx再返回給客戶端html

在使用先後端分離以後,能夠很大程度的提高靜態資源的訪問速度,同時減輕後端應用的處理壓力。拿PHP之Laravel框架來講,簡單的獲取一個靜態文件,就須要初始化框架代碼,這個過程也比較耗時,性價比是很低的nginx

# 動態內容 
location ~ \.php$ {
    root          html;
    fastcgi_pass  127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
    include        fastcgi_params;
}

# 靜態內容
location ~ \.(png|jpeg|jpg|js|css|woff|ttf)$ {
    expires 1h;
}

固然,若是有條件的話,仍是建議將靜態資源存放到七牛或阿里雲OSS中,利用CDN能夠獲取更快的靜態資源加載速度segmentfault

專題閱讀

相關文章
相關標籤/搜索