python写web服务效果_4个纯Python编写的Web服务器

最近,州的先生准备为觅道文档制作一个 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 的方案,则有待进行测试和验证,敬请期待。

🧐分享、点赞、在看,给个三连击呗!👇

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值