亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

請問該如何理解nginx,wsgi,flask之間的關系?

請問該如何理解nginx,wsgi,flask之間的關系?

牛魔王的故事 2019-07-10 12:07:49
如何理解nginx,wsgi,flask之間的關系
查看完整描述

6 回答

?
MMMHUHU

TA貢獻1834條經驗 獲得超8個贊

Flask是一個使用Python編寫的輕量級Web應用框架。其WSGI工具箱采用Werkzeug,模板引擎則使用Jinja2。Flask使用BSD授權。

查看完整回答
反對 回復 2019-07-13
?
牧羊人nacy

TA貢獻1862條經驗 獲得超7個贊

uwsgi
同 wsgi 一樣也是一種協議,uWSGI服務器正是使用了 uwsgi 協議
2. uWSGI
實現了 uwsgi 和 WSGI 兩種協議的web服務器。注意 uWSGI 本質上也是一種 web服務器,處于上面描述的三層結構中的 web服務器層。
3. CGI
通用網關接口,并不限于 Python 語言,定義了 web服務器是如何向客戶端提供動態的內容。例如,規定了客戶端如何將參數傳遞給 web服務器,web服務器如何將參數傳遞給 web應用,web應用如何將它的輸出如何發送給客戶端,等等。

查看完整回答
反對 回復 2019-07-13
?
慕尼黑的夜晚無繁華

TA貢獻1864條經驗 獲得超6個贊

1 首先nginx 是對外的服務接口,外部瀏覽器通過url訪問nginx,

2nginx 接收到瀏覽器發送過來的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以及其后面的東西。



查看完整回答
反對 回復 2019-07-13
  • 6 回答
  • 0 關注
  • 1155 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號