在 VPS 上托管多个 Django 实例

Stu*_*cts 2 python django web-hosting nginx uwsgi

我正在从 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。

任何智慧都会被感激地接受。

安迪:)

Ash*_*lam 5

传统方法

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

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

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

就是这样。