【问题标题】:choosing http server for python api为 python api 选择 http 服务器
【发布时间】:2021-03-09 03:13:58
【问题描述】:

案例是我们要构建一个大型 API,而我的团队选择了 python 作为实现平台。 API 并不真正需要任何网页(模板) - 只需接受 GET/POST 请求并使用 xml/json 响应。

问题是:为生产规模部署 python api 的首选 http 服务器是什么?我们正在考虑将 django 和 cherrypy 作为框架,它们确实具有内置服务器,但它们似乎更像是一种开发工具,而不是一种可扩展、超快速的生产软件。

Java 拥有所有的 servlet/应用程序容器(jboss、tomcat、glassfish 等),PHP 拥有 Apache HTTPD 和/或 Nginx - python 怎么样?

【问题讨论】:

  • 这听起来像是你可以很容易地用谷歌搜索到的信息......
  • 一个典型的配置是nginx后面的uWSGI或者Gunicorn

标签: python apache httpserver


【解决方案1】:

您可能想要conform to the WSGI,那么您不需要将您的实现绑定到特定的 HTTP 服务器。

了解更多:

【讨论】:

  • 只要我的框架(django 或cherrypy)符合WSGI(它们都符合),我可以在任何符合WSGI 的服务器上部署我的API,对吧?有推荐的服务器吗?
  • 是的,没错。我对很多服务器没有太多经验,但过去我在Apache Httpdmod_wsgi 方面取得了成功。
【解决方案2】:

如果您想使用 python,请查看 GunicornuWSGI。第一个是 WSGI 服务器,它可以与大多数框架一起使用。其次是语言不可知论,可能具有更好的性能。我建议从 Gunicorn 开始,从默认服务器切换更容易,而且 Web 服务器(nginx)配置更容易。

不要在生产中使用默认 Web 服务器! Werkzeug 也用于开发。

为您的 API 服务器选择哪种框架取决于您的需求、功能大小和开发时间。 Django 是一个安全的工具,它可以处理许多安全问题,但更新代码可能需要更长的时间。 Flask 开发速度更快,但您可能会在数据库/ORM/设置配置上花费更多时间。

对于简单的 API,我推荐json-rpc,它易于使用并且支持 Django。对于更复杂的 API,检查 REST frameworks 可能会更好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-21
    • 2017-09-18
    • 1970-01-01
    • 1970-01-01
    • 2017-03-21
    • 1970-01-01
    • 2013-03-23
    相关资源
    最近更新 更多