最近,州的先生準備爲覓道文檔製做一個 Windows 下的 Python 集成環境,用於 Windows 操做系統下便捷快速地部署 Django 應用。(是的,相似於 PHPStudy 的 PHP 集成環境)git
在選擇方案的時候,搜索發現到了不少使用 Python 編寫的 Web 服務器,在此分享給你們。github
Gunicorn
官網地址:https://gunicorn.org/web
Gunicorn 算是一個比較出名的 Web 服務器了。在常規的 Django 和 Flask 應用部署中,都有大量的站點使用 Gunicorn。服務器
Gunicorn 使用起來比較簡單和方便,只須要簡單的一句命令,就可讓 Python 的 Web 應用運行起來。不少被 uWSGI 的配置文件折磨得要死要活的人,見到 Gunicorn 就愛上了它。微信
可是 Gunicorn 只支持在類 UNIX 服務器上運行,因此不支持 Windows,比較遺憾。網絡
Tornado
源碼地址:https://github.com/tornadoweb/tornado併發
文檔地址:https://www.tornadoweb.org/en/stable/框架
Tornado 是一個異步 Web 服務器,也是一個 Web 應用框架。在 Python Web 界以高性能著稱。異步
州的先生在職業初期曾經使用 Tornado 進行 Web應用的開發,性能是強,可是啥都要本身造,Hold不住。tornado
Tornado 的特色是無阻塞的網絡IO,在實時性和高併發性上有很好的應用。
除了自身的異步特性,它還支持 WSGI的 同步接口,用來支持其餘 Python Web應用的部署,像Django、Flask均可以經過其WSGIContainer()
方法,實現快速的部署。
一樣惋惜的是,Tornado 的這個方法在 Windows 上的實現也只是單線程的運行,性能上不如類 UNIX 機器上的效果。
Waitress WSGI 服務器
源碼地址:https://github.com/Pylons/waitress
文檔地址:https://docs.pylonsproject.org/projects/waitress/
Waitress 服務器是州的先生本次找方案時意外發現的模塊,其也是純 Python 編寫的 WSGI 服務器,並且其除了 Python 的標準庫以外,沒有依賴任何的第三方模塊。
它的使用方法比較簡單,和 tornado 相似,並且能夠在 UNIX 和 Windows 上運行,這點是州的先生比較喜歡的。
具體性能和使用效果如何,還有待親身測試。
Twisted Web
官方文檔:https://twistedmatrix.com/documents/current/web/
Twisted 是一個事件驅動的網絡引擎,Twisted Web 則是一個 HTTP 服務器,能夠做爲獨立的WSGI服務器運行。
Twisted Web有不少內置的功能,可是州的先生一個沒使用過,哈哈。可是在不少基於 Python 構建的應用中,都有Twisted 的影子。
最後
上述這些個純 Python 編寫的 Web 服務器,在保證了性能的同時,讓使用者減小其餘語言或技術棧工具的選用,可以很好的控制風險和提升效率。
至於文章開頭提到的 Python Web 集成環境,州的先生初步的設計方案是:
mod_wsgi + Apache
Waitress + Nginx
mod_wsgi + Apache 的組合方案已經有比較多的應用,MrDoc交流羣裏的小肥羊大佬也經過這個組合方案實現了一個批處理的功能面板用於使用Apache部署覓道文檔:
而 Waitress + Nginx 的方案,則有待進行測試和驗證,敬請期待。
🧐分享、點贊、在看,給個三連擊唄!👇
本文分享自微信公衆號 - 州的先生(zmister2016)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。