在前一篇有提到的 Django 專案初始目錄中,包含了 wsgi.py
和 asgi.py
兩個檔案。而在這篇文章中,我們將介紹 WSGI。WSGI 的全名是 Web Server Gateway Interface,他是一個負責串接的標準規範。
首先來介紹系統之間的互動關係,如圖一所示,首先使用者透過 Web Browser 發送 HTTP Request,這個 HTTP Request可能是登入或是購買等操作,接著 Web Server 會接收到這個 HTTP Request,進行管理與分析,常見的 Web Server 是 Nginx 以及 Apache,最後 Web Server 會將 HTTP Request 送至 Web Application,而 Web Application 正是我們上一篇使用 Django 開發成品。
而Python 官方組織推出了 WSGI 這個標準規範,作為 Web 伺服器與 Web 應用程式之間的溝通橋樑。如圖二所示,WSGI 負責協調這兩者的互動,確保請求與回應能夠順利傳遞。在 Python 中,最知名的 WSGI 伺服器是 Gunicorn。接下來,我將透過範例來進行介紹。
本次範例使用的是 gunicorn 22.0.0 版本
poetry add gunicorn==22.0.0
接著使用 Gunicorn WSGI 來銜接上一篇 Django Web Application,只需要指定 mysite 目錄下的 wsgi 檔案即可。
poetry run gunicorn mysite.wsgi