您好,登錄后才能下訂單哦!
這篇文章給大家介紹PHP中怎么實(shí)現(xiàn)動(dòng)靜分離,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。
1.1 什么是動(dòng)靜分離?
將動(dòng)態(tài)請(qǐng)求和靜態(tài)請(qǐng)求區(qū)分訪問。
1.2 為什么要做動(dòng)靜分離?
靜態(tài)由Nginx處理, 動(dòng)態(tài)由PHP處理或Tomcat處理…
因?yàn)門omcat程序本身是用來處理jsp代碼的,但tomcat也能處理靜態(tài)資源。
tomcat本身處理靜態(tài)效率不高,還會(huì)帶來資源開銷。
1.3 如何實(shí)現(xiàn)動(dòng)靜分離?
Nginx根據(jù)客戶端請(qǐng)求的url來判斷請(qǐng)求的是否是靜態(tài)資源,如果請(qǐng)求的url包含jpg、png,則由Nginx處理。
如果請(qǐng)求的url是.php或者.jsp等等,這個(gè)時(shí)候這個(gè)請(qǐng)求是動(dòng)態(tài)的,將轉(zhuǎn)發(fā)給tomcat處理。
總結(jié)來說,Nginx是通過url來區(qū)分請(qǐng)求的類型,并轉(zhuǎn)發(fā)給不同的服務(wù)端。
動(dòng)態(tài)資源和靜態(tài)資源分開,使服務(wù)器結(jié)構(gòu)更清晰。
在傳統(tǒng)的web項(xiàng)目中,并發(fā)量小,用戶使用的少,所以在低并發(fā)的情況下,用戶可以直接訪問tomcat服務(wù)器,然后tomcat服務(wù)器返回消息給用戶,理解如下圖:
總結(jié)就是:
1.Nginx實(shí)現(xiàn)負(fù)載均衡是通過反向代理實(shí)現(xiàn)
當(dāng)網(wǎng)站的訪問量達(dá)到一定程度后,單臺(tái)服務(wù)器不能滿足用戶的請(qǐng)求時(shí),需要用多臺(tái)服務(wù)器集群可以使用nginx做反向代理。并且多臺(tái)服務(wù)器可以平均分擔(dān)負(fù)載,不會(huì)因?yàn)槟撑_(tái)服務(wù)器負(fù)載高宕機(jī)而某臺(tái)服務(wù)器閑置的情況。
2.Nginx配置反向代理的主要參數(shù)
(1)upstream 服務(wù)池名{}
配置后端服務(wù)器池,以提供響應(yīng)數(shù)據(jù)
(2)proxy_pass http://服務(wù)池名
配置將訪問請(qǐng)求轉(zhuǎn)發(fā)給后端服務(wù)器池的服務(wù)器處理
2.1 Nginx靜態(tài)處理優(yōu)勢(shì)
Nginx處理靜態(tài)頁面的效率遠(yuǎn)高于Tomcat的處理能力;
若Tomcat的請(qǐng)求量為1000次,則Nginx的請(qǐng)求量為6000次;
Tomcat每秒的吞吐量為0.6M,Nginx的每秒吞吐量為3.6M;
Nginx處理靜態(tài)資源的能力是Tomcat處理的6倍。
如下圖所示,我們部署了 nginx 和 tomcat服務(wù)器,把所有的靜態(tài)資源都放置在nginx的webroot目錄下面,把動(dòng)態(tài)請(qǐng)求的程序都放在 tomcat 的webroot目錄下面。
當(dāng)客戶端訪問服務(wù)端的時(shí)候,如果是靜態(tài)資源的請(qǐng)求,就直接到nginx的webroot目錄下面獲取資源。
如果是動(dòng)態(tài)資源的請(qǐng)求,nginx利用反向代理的原理,把請(qǐng)求轉(zhuǎn)發(fā)給tomcat進(jìn)行處理,這樣就實(shí)現(xiàn)了動(dòng)靜分離,提高了服務(wù)器處理請(qǐng)求的性能。
關(guān)于PHP中怎么實(shí)現(xiàn)動(dòng)靜分離就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。