動靜分離架構

2021-08-19 01:20:10 字數 1867 閱讀 3304

一、靜態頁面

靜態頁面,是指網際網路架構中,幾乎不變的頁面(或者變化頻率很低),例如:

首頁等html頁面

js/css等樣式檔案

jpg/apk等資源檔案

靜態頁面,有與之匹配的技術架構來加速,例如:

cdn

nginx

squid/varnish

二、動態頁面

動態頁面,是指網際網路架構中,不同使用者不同場景訪問,都不一樣的頁面,例如:

**商品列表頁

速運個人訂單中心頁

這些頁面,不同使用者,不同場景訪問,大都會動態生成不同的頁面。

動態頁面,有與之匹配的技術架構,例如:

分層架構

服務化架構

資料庫,快取架構

三、網際網路動靜分離架構

動靜分離是指,靜態頁面與動態頁面分開不同系統訪問的架構設計方法。

一般來說:

靜態頁面訪問路徑短,訪問速度快,幾毫秒

動態頁面訪問路徑長,訪問速度相對較慢(資料庫的訪問,網路傳輸,業務邏輯計算),幾十毫秒甚至幾百毫秒,對架構擴充套件性的要求更高

靜態頁面與動態頁面以不同網域名稱區分

四、頁面靜態化

既然靜態頁面訪問快,動態頁面生成慢,有沒有可能,將原本需要動態生成的站點提前生成好,使用靜態頁面加速技術來訪問呢?

這就是網際網路架構中的「頁面靜態化」優化技術。

舉例,如下圖,58同城的帖子詳情頁,原本是需要動態生成的:

瀏覽器發起http請求,訪問/detail/12348888x.shtml 詳情頁

web-server層從restful介面中,解析出帖子id是12348888

service層通過dao層拼裝sql語句,訪問資料庫

最終獲取資料,拼裝html返回瀏覽器

這樣的話,將極大提公升訪問速度,減少訪問時間,提高使用者體驗。

五、頁面靜態化的適用場景

頁面靜態化優化後速度會加快,那能不能所有的場景都使用這個優化呢?哪些業務場景適合使用這個架構優化方案呢?

一切脫離業務的架構設計都是耍流氓,頁面靜態化,適用於:總資料量不大,生成靜態頁面數量不多的業務。例如:

58速運的城市頁只有幾百個,就可以用這個優化,只需提前生成幾百個城市的「靜態化頁面」即可

一些二手車業務,只有幾萬量二手車庫存,也可以提前生成這幾萬量二手車的靜態頁面

像58同城這樣的資訊模式業務,有幾十億的帖子量,就不太適合於靜態化(碎片檔案多,反而訪問慢)

六、總結

「頁面靜態化」是一種將原本需要動態生成的站點提前生成靜態站點的優化技術。

總資料量不大,生成靜態頁面數量不多的業務,非常適合於「頁面靜態化」優化。

企業實戰 Nginx動靜分離架構

負載均衡模組 配置檔案 中 location php jsp cgi shtml 表示匹配動態頁面請求,然後將通 過 proxy pass到後端伺服器,而 location html htm gif jpeg ico txt js css 表示 匹配靜態頁面請求本地返回。檢查 nginx配置是否正確...

Linux架構之Nginx 動靜分離

root web01 cd etc nginx conf.d 配置靜態資源 root web01 conf.d cat dj oldboy.conf server 配置乙個主頁 root web01 conf.d echo zls test web01 code index.html 建立目錄 ro...

nginx動靜分離配置 Nginx動靜分離

動靜分離,就是將jsp servlet等動態資源交由tomcat或其他web伺服器處理,將css js image等靜態資源交由nginx或其他http伺服器處理,充分發揮各自的優勢,減輕其他伺服器的壓力,搭建更為高效的系統架構。nginx動靜分析的實現 下面要搭建nginx,環境中有三颱nginx...