【问题标题】:Hosting multiple Django instances on a VPS在 VPS 上托管多个 Django 实例
【发布时间】:2021-01-28 12:19:53
【问题描述】:

我正在从 WordPress 转向定制的 Python 应用程序。

我已经选择 Django 作为我的 Python 框架,我目前唯一的问题是关于托管。我目前的共享托管环境非常适合 WordPress(CloudLinux 上的 WHM),但是在 Apache/cPanel 上为 Django 服务似乎是一时之间,尽管我还没有在我的新托管公司尝试过。 - 在 cPanel 中启用了 Python。

对我来说,设置 VPS 来运行托管环境的最简单方法是什么,比如 20 个网站?我在 virtualenv 中开发所有东西,但我还没有在生产环境中运行 Django 的经验。我会假设 venv 不够安全或存在可扩展性问题?我读过一些关于人们使用 Docker 在 VPS 上设置单独的 Django 实例的文章,但我不确定他们是否编写了自己的管理系统。

我的理解是每个 Python/Django 实例都需要驻留在该虚拟容器中的 uWSGI 和 Nginx?我正在寻找一种简单而强大的解决方案来在 VPS 上托管 20 个 Django 站点 - 是否有开箱即用的解决方案?如果我的方向正确,我也很乐意开发并设置 VPS。

我们将不胜感激地接受任何智慧。

安迪:)

【问题讨论】:

标签: python django nginx web-hosting uwsgi


【解决方案1】:

传统方法

  • Virtualenv 已经足够好,完全可以用于生产环境。您可以为同一 VM 上的多个项目拥有多个 virtualenv。
  • 如果您有多个用于多个项目的数据库引擎。比如,一个是 MySQL,另一个是 PostgreSQL,这样你只需要单独设置。
  • 安装Nginx,根据项目进行配置。
  • 安装 supervisor 以单独管理(重启/启动/停止)每个项目。
  • 项目需要的任何东西。
    这里有一个很大的缺点。因为您不能以简单的方式在数据库引擎上为不同的项目使用不同的版本。因此,强烈建议使用容器化。

对于简单而强大的解决方案,

  • 使用 Docker(docker-compose) 进行本地和生产部署。
  • 使用 Nginx 配置 uWsgi(可在 docker 上使用。)
  • 使用 Jenkins 等任何工具创建 CI/CD 管道。
  • 使用任何好的工具(如 Raygun)监控您的项目。

就是这样。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-02-24
    • 2016-01-14
    • 2017-05-09
    • 1970-01-01
    • 2013-11-28
    • 2015-05-06
    • 1970-01-01
    • 2018-06-05
    相关资源
    最近更新 更多