如何動靜分離?

2021-09-07 08:26:26 字數 1049 閱讀 8481

某次面試,hire manager問我如何做乙個大規模的**,我把我所知道的都講了,包括squid做的cdn cache等等,他又問我,你覺得cdn這部分有什麼瓶頸嗎?我當時只想到所有動靜態請求都路過squid,只是苦苦想著如何去掉動態的請求,他接著問,如何實現?我當時真想不到辦法了。後來突然想起看的介紹,實際上我也接觸過的,網域名稱分離即可。比如某client的某個請求包含http:/***.com,這裡肯定包含了,css,html之類,也少不了動態指令碼比如php,jsp等需要互動的sql查詢,那麼涉及到靜態的部分,按照dns的策略,到squid上,走之前的路,而動態的直接回web源即可。

這個也不是沒有弊端,程式裡涉及到靜態資源連線如等一律寫網域名稱。比如

ok,開啟瀏覽器輸入

fine ,it works now,看到了sina的logo,以此類推,只需要遵守html語法規則,在你想要的地方插入url,而這放在另外的server上,有單獨的domain,可以cname到cdn上,這樣你開啟www.sina.com,凡是需要查詢的走10.1.1.1,涉及到的,直接走http協議到pic 伺服器上取,好偉大的html啊。動靜就這樣分離了,唯一需要確認的就是的url要正確,可以在pic前面放api,專門查詢後端的位置,僅此而已。

再擴充套件一下:

<?php

$url="";

echo "this is sina corporation logo picture :

?>

這樣url確定了,少量的前端開發還能寫上去,但成千上萬張呢?還有這樣固定了,也不方便擴充套件啊?如何來做?需要在pic前開乙個api給前端呼叫,比如這裡/home/deco/2009/0330/logo_home.gif

可以記錄在mysql,然後前端需要的時候,直接select 資料庫查到的儲存路徑,然後拼接成$url給前端。

就是sql=select * from pic_table where '條件=***';

把查詢結果/home/deco/2009/0330/logo_home.gif賦給$path

拼湊新的url,$url="".$path;

ok,鏈結完成。

簡述結束。

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

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

nginx tomcat 動靜分離

nginx的啟動命令是 usr local nginx sbin nginx c usr local nginx conf nginx.conf c制定配置檔案的路徑,不加 nginx會自動載入預設路徑的配置檔案。關閉nginx nginx s stop 快速停止nginx quit 完整有序的停止...

動靜分離架構

一 靜態頁面 靜態頁面,是指網際網路架構中,幾乎不變的頁面 或者變化頻率很低 例如 首頁等html頁面 js css等樣式檔案 jpg apk等資源檔案 靜態頁面,有與之匹配的技術架構來加速,例如 cdn nginx squid varnish 二 動態頁面 動態頁面,是指網際網路架構中,不同使用者...