前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >4个纯Python编写的Web服务器

4个纯Python编写的Web服务器

作者头像
州的先生
发布2020-11-05 19:12:33
3.5K0
发布2020-11-05 19:12:33
举报
文章被收录于专栏:州的先生州的先生

最近,州的先生准备为觅道文档制作一个 Windows 下的 Python 集成环境,用于 Windows 操作系统下便捷快速地部署 Django 应用。(是的,类似于 PHPStudy 的 PHP 集成环境)

在选择方案的时候,搜索发现到了很多使用 Python 编写的 Web 服务器,在此分享给大家。

Gunicorn

官网地址:https://gunicorn.org/

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 的特点是无阻塞的网络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 的方案,则有待进行测试和验证,敬请期待。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-10-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 州的先生 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Gunicorn
  • Tornado
  • Waitress WSGI 服务器
  • Twisted Web
  • 最后
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档