通常來講,靜態資源是指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