溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

PHP中怎么實(shí)現(xiàn)動(dòng)靜分離

發(fā)布時(shí)間:2021-06-22 16:31:04 來源:億速云 閱讀:323 作者:Leah 欄目:編程語言

這篇文章給大家介紹PHP中怎么實(shí)現(xiàn)動(dòng)靜分離,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。

一、為什么要實(shí)現(xiàn)動(dòng)靜分離

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)更清晰。

二、為什么使用nginx

在傳統(tǒng)的web項(xiàng)目中,并發(fā)量小,用戶使用的少,所以在低并發(fā)的情況下,用戶可以直接訪問tomcat服務(wù)器,然后tomcat服務(wù)器返回消息給用戶,理解如下圖:

PHP中怎么實(shí)現(xiàn)動(dòng)靜分離

總結(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動(dòng)靜分離實(shí)現(xiàn)原理

如下圖所示,我們部署了 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)求的性能。

PHP中怎么實(shí)現(xiàn)動(dòng)靜分離

關(guān)于PHP中怎么實(shí)現(xiàn)動(dòng)靜分離就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(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)容。

php
AI