1 、首先nginx 是對外的服務介面,外部瀏覽器通過url訪問nginx,
2、nginx 接收到瀏覽器傳送過來的http請求,將包進行解析,分析url,如果是靜態檔案請求就直接訪問使用者給nginx配置的靜態檔案目錄,直接返回使用者請求的靜態檔案,
如果不是靜態檔案,而是乙個動態的請求,那麼nginx就將請求**給uwsgi,uwsgi 接收到請求之後將包進行處理,處理成wsgi可以接受的格式,並發給wsgi,wsgi 根據請求呼叫應用程式的某個檔案,某個檔案的某個函式,最後處理完將返回值再次交給wsgi,wsgi將返回值進行打包,打包成uwsgi能夠接收的格式,uwsgi接收wsgi 傳送的請求,並**給nginx,nginx最終將返回值返回給瀏覽器。
3、要知道第一級的nginx並不是必須的,uwsgi完全可以完成整個的和瀏覽器互動的流程,但是要考慮到某些情況
1 、安全問題,程式不能直接被瀏覽器訪問到,而是通過nginx,nginx只開放某個介面,uwsgi本身是內網介面,這樣運維人員在nginx上加上安全性的限制,可以達到保護程式的作用。
2、負載均衡問題,乙個uwsgi很可能不夠用,即使開了多個work也是不行,畢竟一台機器的cpu和記憶體都是有限的,有了nginx做**,乙個nginx可以**多台uwsgi完成uwsgi的負載均衡。
3、靜態檔案問題,用django或是uwsgi這種東西來負責靜態檔案的處理是很浪費的行為,而且他們本身對檔案的處理也不如nginx好,所以整個靜態檔案的處理都直接由nginx完成,靜態檔案的訪問完全不去經過uwsgi以及其後面的東西。
這就是這幾者之間的關係。
uwsgi 是乙個 web 伺服器, 它實現了 wsgi 協議、 uwsgi、 http等協議。 uwsgi 協議是乙個 uwsgi 伺服器自有的協議, 它用於定義傳輸資訊的型別(type of information) , 每乙個 uwsgi packet 前4byte 為傳輸資訊型別描述, 它與 wsgi 相比是兩樣東西。 nginx 中httpuwsgimodule 的作用是與 uwsgi 伺服器進行交換。 為什麼有了uwsgi 為什麼還需要 nginx? 因為 nginx 具備優秀的靜態內容處理能力, 然後將動態內容**給 uwsgi 伺服器, 這樣可以達到很好的客戶端響應
是愛 是情 是愛情
有乙個知己,相交甚深,但無緣成為眷侶,只是偶爾在 裡糾纏,說些不相干的事 不相干的人,心知肚明的感情,雲淡風清。有乙個朋友,是親密搭檔,相互理解與信賴,而且惺惺相惜,業務與工作之餘,心生讚嘆,但無從表達。有乙個,只通過 但心有靈犀,語言傳遞相知相解,在午夜相逢的快樂裡,卻只能思念,相聚在夢中。有一種...
學歷是銅牌,能力是銀牌,人脈是金牌,思維是王牌
正如 打工皇帝 唐駿說 我覺得有兩種人不要跟別人爭利益和價值回報。第一種人就是剛剛進入企業的人,頭5年千萬不要說你能不能多給我一點兒工資,最重要的是能在企業裡學到什麼,對發展是不是有利 人總是從平坦中獲得的教益少,從磨難中獲得的教益多 從平坦中獲得的教益淺,從磨難中獲得的教益深。乙個人在年輕時經歷磨...
學歷是銅牌,能力是銀牌,人脈是金牌,思維是王牌
學歷是銅牌,能力是銀牌,人脈是金牌,思維是王牌 正如 打工皇帝 唐駿說 我覺得有兩種人不要跟別人爭利益和價值回報。第一種人就是剛剛進入企業的人,頭5年千萬不要說你能不能多給我一點兒工資,最重要的是能在企業裡學到什麼,對發展是不是有利 人總是從平坦中獲得的教益少,從磨難中獲得的教益多 從平坦中獲得的教...