【问题标题】:Standalone WSGI servers for production用于生产的独立 WSGI 服务器
【发布时间】:2014-10-15 09:04:26
【问题描述】:

我一直在学习 Python 中用于 REST API 的 WSGI。我有一个使用 Lighttpd+FastCGI 的工作设置。

但是,此路径将专用于为 API 提供服务 - 静态内容将通过内容交付网络交付,并且任何网站都可以设置为 API 的 REST 客户端。

Python WGSI 服务器太多了。似乎除了 Python 中内置的一个,每个 WSGI 模块、框架,我的狗都包括一个,而且这些几乎普遍带有“将其用于开发,但您可能希望使用适当的生产质量 W​​SGI 堆栈”。

Python Paste 看起来很有前途,但它真的很稳定吗?它是否与我现有的 web.py+army-of-modules 框架重复了太多?

我的主要标准是:

  • 稳定性。我想要一些我几乎可以配置而不用担心的东西。
  • 安全。不要引入安全漏洞。
  • 表现:应该表现得足够好。我当然不希望它成为我实现中的瓶颈,但是我看到基准显示 WSGI 服务器每秒处理数百个请求,所以只要 WSGI 服务器不是异常缓慢,我不希望这是一个问题。

在高容量环境中,我还需要关注 WSGI 服务器的哪些其他方面?

【问题讨论】:

    标签: rest wsgi uwsgi


    【解决方案1】:

    我已经看到Gunicorn 在非常重要的生产环境中使用,所以这可能是您的最佳选择。我也可以在这里为netius做一个不要脸的插件,这是一个Python网络库,可以用于快速创建异步非阻塞服务器和客户端。它没有依赖关系,它是跨平台的,并且提供了一些开箱即用的示例 netius 驱动的服务器,即生产就绪的 WSGI 服务器。我不能推荐该项目已被很多人使用,即使我们将它用于我们的任务关键型 SaaS 服务,负载很大,但对您来说唯一的优势是代码库很小,严格的结构和广泛的评论,因此您可以轻松地自行审核它的安全性。

    【讨论】:

    • 我去看看……但我虽然 WSGI 阻止了服务器异步!?
    • 这不是真的,虽然 Python 的基础库主要是基于同步的(文件 IO 等),但 WSGI 中并没有阻止基于异步的实现。
    • 这篇文章解释了如何处理在 WSGI 下实现异步处理的技巧。 bottlepy.org/docs/dev/async.html
    猜你喜欢
    • 1970-01-01
    • 2016-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-05
    • 1970-01-01
    • 2015-07-19
    • 1970-01-01
    相关资源
    最近更新 更多