<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          什么是WSGI(Web服務(wù)器網(wǎng)關(guān)接口)?

          共 1801字,需瀏覽 4分鐘

           ·

          2021-04-12 21:34

          WSGI是指Web服務(wù)器網(wǎng)關(guān)接口。在部署Django或Flask應(yīng)用程序時(shí),WSGI扮演著至關(guān)重要的角色。這篇我將討論什么是WSGI,以及WSGI是如何工作的。


          WSGI
          WSGI是描述Web服務(wù)器與Python Web應(yīng)用程序或框架之間的通信的規(guī)范。它說明了Web服務(wù)器如何與python Web應(yīng)用程序/框架通信以及如何將Web應(yīng)用程序/框架鏈接在一起以處理請(qǐng)求。


          PEP3333已對(duì)Python標(biāo)準(zhǔn)WSGI進(jìn)行了詳細(xì)說明。想深入了解的可以看python官方文檔。


          下圖是我們創(chuàng)建項(xiàng)目后,打開看到的文件內(nèi)容:


          WSGI如何工作?

          現(xiàn)在,讓我們看一下WSGI的工作方式。因此,為了清楚地了解WSGI,讓我們假設(shè)一個(gè)案例,有一個(gè)用Django開發(fā)的Web應(yīng)用程序或Flask應(yīng)用程序,如圖所示。

          由于Web應(yīng)用程序已部署在Web服務(wù)器中。下圖表示從各個(gè)用戶獲取請(qǐng)求的Web服務(wù)器。

          上面的Web服務(wù)器可以是apache,NGINX等服務(wù)器,它負(fù)責(zé)處理各種靜態(tài)文件和緩存目的。此外,如果愿意擴(kuò)展多個(gè)應(yīng)用程序,則還可以將服務(wù)器用作負(fù)載均衡器。


          現(xiàn)在出現(xiàn)一個(gè)問題-Web服務(wù)器如何與Python應(yīng)用程序進(jìn)行交互呢?

          因?yàn)閃eb服務(wù)器必須與Python應(yīng)用程序進(jìn)行交互。


          因此,需要中介者來執(zhí)行Web服務(wù)器和Python應(yīng)用程序之間的交互。用于在Web服務(wù)器和Python應(yīng)用程序之間進(jìn)行通信的標(biāo)準(zhǔn)是WSGI(Web服務(wù)器網(wǎng)關(guān)接口)。


          現(xiàn)在,Web服務(wù)器能夠發(fā)送請(qǐng)求或與WSGI容器進(jìn)行通信。同樣,Python應(yīng)用程序提供了一個(gè)“可調(diào)用”對(duì)象,其中包含WSGI應(yīng)用程序調(diào)用的某些功能,這些功能是根據(jù)PEP 3333標(biāo)準(zhǔn)定義的。因此,存在多個(gè)可用的WSGI容器,例如Gunicorn,uWSGI等。

          下圖表示在Web服務(wù)器,WSGI和Python應(yīng)用程序之間進(jìn)行的通信。

          今天有多個(gè)WSGI容器可用。因此,需要在項(xiàng)目中安裝WSGI容器,以便Web服務(wù)器可以與WSGI容器進(jìn)行通信,該WSGI容器進(jìn)一步與Python應(yīng)用程序進(jìn)行通信并相應(yīng)地提供響應(yīng)。最終,當(dāng)Web服務(wù)器獲得響應(yīng)后,它將被發(fā)送回Web瀏覽器/用戶。


          為什么要使用WSGI,而不是直接將Web服務(wù)器指向Django或Flask應(yīng)用程序?
          如果直接將Web服務(wù)器指向應(yīng)用程序,則會(huì)降低應(yīng)用程序的靈活性。現(xiàn)在,讓我們看一個(gè)示例,以使清楚地了解WSGI的適用性。例如,今天決定使用Gunicorn部署應(yīng)用程序,但是幾年后,我們決定從Gunicorn切換到mod_wsgi。現(xiàn)在,在這種情況下,可以輕松切換到mod_wsgi,而無需在實(shí)現(xiàn)WSGI的應(yīng)用程序或框架中進(jìn)行任何更改。因此,WSGI為應(yīng)用程序提供了靈活性。


          使用WSGI的另一個(gè)原因是由于其可伸縮性。一旦應(yīng)用程序上線,啟動(dòng)并運(yùn)行,應(yīng)用程序中就會(huì)有成千上萬的請(qǐng)求。因此,WSGI能夠一次處理數(shù)千個(gè)請(qǐng)求。眾所周知,WSGI服務(wù)器負(fù)責(zé)處理來自Web服務(wù)器的請(qǐng)求,并做出決定將這些請(qǐng)求傳遞給應(yīng)用程序框架的流程。在這里,我們可以在服務(wù)器之間分配職責(zé),以擴(kuò)展Web流量。

          WSGI服務(wù)器的實(shí)現(xiàn)


          有各種支持WSGI的服務(wù)器。

          在此問中,我將概述一些WSGI服務(wù)器,這些服務(wù)器主要用于Flask / Django應(yīng)用程序的部署。

          Gunicorn (Green Unicorn)

          Gunicorn是基于前叉工作者模型的服務(wù)器,與各種Web框架兼容。另外,它很容易實(shí)現(xiàn)。

          uWSGI
          uWSGI以高性能WSGI服務(wù)器實(shí)現(xiàn)而聞名。uWSGI可用于Python應(yīng)用程序的開發(fā)和部署。在uWSGI中,應(yīng)用程序服務(wù)器,代理,流程管理器和監(jiān)視器都是通過通用API和通用配置樣式實(shí)現(xiàn)的,這使UWSGI成為對(duì)開發(fā)人員友好的WSGI服務(wù)器。

          mod_wsgi
          mod_wsgi是一個(gè)python軟件包,提供了一個(gè)Apache模塊,該模塊實(shí)現(xiàn)了WSGI兼容接口,用于在Apache Web服務(wù)器之上托管基于Python的Web應(yīng)用程序。


          以上就是全部的內(nèi)容,希望對(duì)小伙伴們學(xué)習(xí)上有幫助。

          文章轉(zhuǎn)載:python運(yùn)維技術(shù)
          (版權(quán)歸原作者所有,侵刪)


          瀏覽 156
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  爱情岛论坛www成人网站 | 国产精品久久午夜夜伦鲁鲁 | 欧洲AV久久无码秘 蜜桃 | 日韩曹比无码三级 | 人人操,人人摸,人人透, |