部署 Python API

Deployment of Python API

我正在尝试了解在生产环境中部署 Django 应用程序的最简单方法。

许多人推荐 nginx 或 Apache 以及 uwsgi 或 gunicorn。我认为这超出了我的情况,我想知道我的想法是否正确。

此应用程序只不过是一个 API,它向客户端应用程序发送 JSON。管理页面有静态文件,但该页面仅供开发人员使用,因此流量极低。换句话说,大多数响应的负载都非常小,对静态资源的请求很少。

此外,由于这只是一个 API,因此可以在端口 8000 上提供服务。

如果 uWSGI 足以满足我的情况,我很乐意省略 nginx/Apache 的复杂性,但我不清楚真实服务器可能提供的其他优势,以及如何确定是否有必要。

我知道这个问题是主观的,但我在 Python/Django 领域没有经验,而且似乎所有的建议都集中在提供实际网页的更典型的情况下。是否有部署 Django APIs 的最佳实践?

安全,这最终是关于什么,一直是一个非常复杂的问题。开放的互联网是最危险的地方之一。无论您的服务器看起来多么小和微不足道,人们都会找到它并试图破坏它。如果 Web 服务器不是从头开始设计来处理开放互联网的所有罪魁祸首,它就不安全

Gunicorn 被设计为 Python 应用服务器。尽管它处理 HTTP 请求,但它并未设计为完整的 Web 服务器。作为 the docs say:

We strongly recommend to use Gunicorn behind a proxy server.

我对 uWSGI 没有任何经验,但如果是这样我也不会感到惊讶。