希望在阿里云ECS上搭建一個flask框架的web應用,經典的形式便是flask+uWSGI+nginx模式 服務器:CentOS 7.3 python版本:3.8.0 先貼一張全局圖,這張圖很清楚的展示了各個部分之間的聯系和它們的作用,對照著可以更好的理解下文的概念,看完文章一定要回來再捋一捋 圖片來源:L&P Essay 在了解uWSGI之前,還需要知道與其形式非常相似的另外兩個東西WSGI和uwsgi(區分大小寫) 首先介紹它們三個之間的老大哥——WSGI WSGI WSGI,全稱是Web Server Gateway Interface,或者Python Web Server Gateway Interface,WSGI不是服務器、Python模塊、框架或者任何軟件,它只是一種規范,就像HTTP協議一樣,它是為Python語言定義的Web服務器和Web應用程序(框架)之間的簡單而通用的協議。它可以分為Web服務器端和Web應用程序兩個部分。 上文中提到的Web服務器(Web Server)和Web應用程序(Web Application),常見的Web應用程序有Flask、Django等,Web服務器有加下來將要提到的uWSGI uWSGI uWSGI是一種Web服務器(作用就像Apache一樣),它實現了WSGI協議,所以可以接收客戶端的請求,轉發到響應的程序,而我們之后要進行配置的就是這個二兄弟uWSGI uwsgi 三兄弟中最小的那個(沒有大寫字母)uwsgi,和老大一樣,也是一種協議,它是uWSGI服務器自然支持的協議 官網:“the native protocol used by the uWSGI server”,它使用四個字節來表示任何傳輸的數據類型 三者中有兩個都是協議(WSGI、uwsgi),只需要理解它們的區別和聯系便可,真正需要我們進行配置的就只有uWSGI這個Web服務器了。 實際上,有uWSGI Web服務器接收并轉發客戶端請求,再加上Flask應用程序框架對請求進行處理,就已經可以實現網站的功能了,那么為什么還要需要用到提到的Nginx呢? Why Nginx? 當網站訪問量較小時,當然可以直接利用uWSGI+Flask進行處理,但一旦訪問量過大,uWSGI服務器處理速度降低,客戶端請求就要進行長時間的等待,為解決這一問題,我們可以多用幾臺Web服務器,都對請求進行處理,但這又導致一個問題,一個請求究竟應該用哪一臺服務器進行響應呢?我們需要一個網管,而Nginx就是這個網管                                                圖片來源:CHENYAoo Nginx Nginx可以作為高效的Web服務器,也可以用作反向代理服務器,其常用有三大功能:HTTP代理、負載均衡、Web緩存,詳細功能與實現可以參考菜鳥教程,在配置的過程中可以體會到它是如何實現負載均衡的,這里主要讓其擔任反向代理服務器,對于正反向代理,通過這張圖很方便理解 圖片來源:菜鳥教程 所需各個模塊的主要作用和功能就介紹到這里,下篇記錄我們的管家與二兄弟——Nginx與uWSGI的詳細安裝與配置 提醒:要回去看第一張圖??! 除文中所列參考文章外,主要參考文章還有: 中杯可樂不加冰://www.cnblogs.com/fengchong/p/10230266.html 謝謝以上各位!
轉載自://www.cnblogs.com/ech2o/p/11762075.html
欧美黄色网