我可以仅使用 nginx 或 Gunicorn 部署我的 Django 应用程序吗?

问题描述 投票:0回答:2

我知道为了部署 Django 应用程序,我们必须使用 uWSGI + Nginx 或 Nginx + Gunicorn 服务器的组合。有必要吗?我这里有一个小小的疑问。我们可以只在 Nginx 中部署整个应用程序,还是只在 Gunicorn 中部署?会不会,行不通?仅举一个例子(离开生产)我不能这样做吗?

python django nginx gunicorn
2个回答
1
投票

是的,可以。不,你不应该。

如果您在其开发服务器上运行您的应用程序(在我的例子中为 Django)。您可以从远程计算机的 ip_address:port_number 访问它,该地址应类似于 123.142.524.110:8000,您可以在工作中看到您的应用程序。

您也可以仅使用gunicorn运行Django,它仍然缺乏Web服务器功能,例如有效地提供静态文件或处理缓慢的客户端或DDOS处理。但它会运行,这就是我所能保证的。

不确定 Nginx 是否可以直接尝试使用 DJANGO 应用服务器,但我不明白为什么不可以。 <>

我应该再说一遍,只是因为它可能并不意味着你应该这样做。


0
投票

仅使用 Nginx 或 Gunicorn 部署 Django 应用程序在技术上是不可能的。原因如下:

  1. Nginx:Nginx 非常擅长高效地提供静态内容并充当反向代理。它可以处理 HTTP 请求并将其路由到后端服务器,例如 Gunicorn 或 uWSGI。然而,Nginx缺乏直接执行Python代码的能力。因此,仅使用 Nginx 部署 Django 应用程序是不可行的。

  2. Gunicorn:Gunicorn(Green Unicorn)是一个用于运行Python Web应用程序的Python WSGI HTTP服务器。它通常与 Nginx 配对作为 Django 应用程序的 WSGI 服务器。但 Gunicorn 并不是像 Nginx 那样的独立 Web 服务器;它是一个独立的 Web 服务器。它旨在与 api 一起使用。它旨在与 Django 等应用程序框架配合使用,并且需要 Web 服务器(如 Nginx 或 Apache)来处理传入请求并充当反向代理。

在典型的部署设置中,Nginx 用作反向代理来处理传入的 HTTP 请求,而 Gunicorn(或 uWSGI)用作 WSGI 服务器来执行 Django 应用程序代码。此设置提供了负载平衡、静态文件服务和改进的安全性等优点。

© www.soinside.com 2019 - 2024. All rights reserved.