如何使用 Nginx 和 GUnicorn 在单个服务器上部署多个 Django 应用程序?

Posted

技术标签:

【中文标题】如何使用 Nginx 和 GUnicorn 在单个服务器上部署多个 Django 应用程序?【英文标题】:How to Deploy Multiple Django Apps on Single server using Ngnix & GUnicorn? 【发布时间】:2021-10-06 13:29:18 【问题描述】:

我正在尝试使用具有相同 IP 的单个 AWS EC2 实例部署两个 Django 应用程序。 但是当我添加第二个 App.sock 和测试主管时它总是失败。 我喜欢以前有人问过类似的问题。但没有正确回答,我的用例略有不同。 (Run multiple django project with nginx and gunicorn)

我已按照以下步骤操作: .

从 Git * 克隆我的项目

pip install -r requiernments.txt

pip3 安装 gunicorn

sudo apt-get install nginx -y

sudo apt-get install supervisor -y

cd /etc/supervisor/conf.d

sudo touch testapp2.conf

sudo nano testapp2.conf

更新配置文件如下

[程序:gunicorn]

目录=/home/ubuntu/projects/testapp2/testerapp 命令=/home/ubuntu/projects/testapp2/venv/bin/gunicorn --workers 3 --bind unix:/home/ubuntu/projects/testapp2/testerapp/app.sock testerapp.wsgi:application 自动启动=真 自动重启=真 stderr_logfile=/home/ubuntu/projects/testapp2/log/gunicorn.err.log stdout_logfile=/home/ubuntu/projects/testapp2/log/gunicorn.out.log

[组:guni]

程序:gunicorn

*----------

  sudo supervisorctl reread

  sudo supervisorctl update

  sudo supervisorctl status

如果上面只有一个配置,则以下步骤将起作用并且站点在浏览器上可用。但是当我添加了一个额外的配置时,它会在浏览器上显示 502 Bad Gateway。请帮我解决这个问题。

【问题讨论】:

【参考方案1】:

您可以在 supervisor conf.d 中再添加一个配置文件,并在不同的 Django 应用程序中使用不同的端口号。

【讨论】:

我已经这样做了,但是当我添加了第二个端口时,第一个站点没有显示。它显示 500 内部服务器错误。你能告诉我我应该遵循的完整步骤吗? ?

以上是关于如何使用 Nginx 和 GUnicorn 在单个服务器上部署多个 Django 应用程序?的主要内容,如果未能解决你的问题,请参考以下文章

nginx+gunicorn+flask部属web时,使用nginx如何指定多个静态文件路径

如何在 ubuntu 14.04 上使用 nginx 和 gunicorn 部署 django 1.8 应用程序

使用 Gunicorn 和 nginx 部署 Django 项目

使用 Traefik 时如何使用 Nginx 和 Django Gunicorn 提供静态内容

如何在 AWS Elastic Beanstalk 上使用 Nginx、React、Webpack、Gunicorn、PostgreSQL、Django 和 DRF 部署应用程序?如何使用此应用程序处

如何使用 gunicorn 为 django 配置 nginx?