如何将多租户 django 应用程序部署到 AWS?

Posted

技术标签:

【中文标题】如何将多租户 django 应用程序部署到 AWS?【英文标题】:How to deploy a multi-tenant django app to AWS? 【发布时间】:2017-05-15 17:49:00 【问题描述】:

我有一个具有多租户结构的 Django+Postgres 应用程序,我之前没有将此类应用程序部署到 AWS 的经验。我已按照通用 Elastic Beanstalk 教程部署了一个简单的应用程序。 (https://realpython.com/blog/python/deploying-a-django-app-to-aws-elastic-beanstalk/) 但是,我正在寻找一种解决方案,可以让我更灵活地创建不同的“站点”。目前,我已经通过本教程 (http://mycodesmells.com/post/django-tutorial-multi-tenant-setup) 学会了创建不同的站点。

所以我有以下问题:

    如何部署此应用程序(我倾向于不使用 Elastic Beanstalk,而只是将其部署到 EC2) 部署此应用后如何创建不同的网站。

【问题讨论】:

【参考方案1】:

以下内容应该会有所帮助:

设置您的.ebextensions,以便使用eb deploy 部署您的Django 项目。 如果需要,使用 AWS S3 为媒体文件设置 django-storages。 购买一个域并使用 AWS Route 53 进行设置(您也可以通过 Route 53 购买)。 将您的根域别名指向您的 Elastic Beanstalk 应用程序。 也将通配符域指向您的应用。 设置 AWS SES 以将您的域电子邮件保存到 AWS S3 存储桶。您也可以使用其他提供商,SES 几乎是最简单的。 为 HTTPS 支持提供 AWS ACM 证书。

现在您的站点在 .example.com 下运行,并且可以使用 tenant.example.com 来引用单个客户端的设置 - 它引用相同的部署但具有不同的 Host 标头,这使 Django 租户模式可以区分客户端。您有通配符转发,除了在 Django 中添加新租户之外,不需要任何设置。

【讨论】:

以上是关于如何将多租户 django 应用程序部署到 AWS?的主要内容,如果未能解决你的问题,请参考以下文章

如何将 Django Fixtures 部署到 Amazon AWS

将 Django 部署到 AWS Fargate 时,如何将本地 ip 添加到 ALLOWED_HOSTS

无法将多容器 docker 部署到 ElasticBeanstalk

Django 部署到 AWS EB 显示 500 内部服务器错误

如何在 AWS 上部署 Django Rest Framework 和 React

ModuleNotFoundError:没有名为“应用程序”的模块 [将 Django 部署到 AWS]