Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在VPS上托管多个Django实例_Python_Django_Nginx_Web Hosting_Uwsgi - Fatal编程技术网

Python 在VPS上托管多个Django实例

Python 在VPS上托管多个Django实例,python,django,nginx,web-hosting,uwsgi,Python,Django,Nginx,Web Hosting,Uwsgi,我正从WordPress转向定制的Python应用程序 我已经决定使用Django作为我的Python框架,目前我唯一的问题是关于托管。我目前的共享托管环境非常适合WordPress(CloudLinux上的WHM),但在Apache/cPanel上为Django提供服务似乎是一帆风顺的,尽管我还没有在我的新托管公司尝试过。-谁在cPanel中启用了Python 对我来说,最简单的方法是什么来建立一个VPS来运行一个托管环境,比如说20个网站?我在virtualenv中开发所有东西,但我还没有在

我正从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并建立一个VPS

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


安迪:)

传统方法

  • Virtualenv已经足够好了,完全可以投入生产使用。您可以在同一个VM上为多个项目使用多个virtualenv
  • 如果您有多个项目的多个数据库引擎。比如,MySQL代表一个,PostgreSQL代表另一个,类似这样的东西,那么你只需要分别设置它们
  • 安装Nginx并根据项目进行配置
  • 安装主管以单独管理(重新启动/启动/停止)每个项目
  • 项目需要的任何东西。
    这里它有一个巨大的缺点。因为您不能简单地将数据库引擎上的不同版本用于不同的项目。因此,强烈建议采用集装箱运输。
对于简单而健壮的解决方案,

  • 使用Docker(Docker compose)进行本地和生产部署
  • 使用Nginx配置uWsgi(docker上提供)
  • 使用任何类似Jenkins的工具创建CI/CD管道
  • 使用像Raygun这样的好工具监控您的项目

就是这样。

传统方法

  • Virtualenv已经足够好了,完全可以投入生产使用。您可以在同一个VM上为多个项目使用多个virtualenv
  • 如果您有多个项目的多个数据库引擎。比如,MySQL代表一个,PostgreSQL代表另一个,类似这样的东西,那么你只需要分别设置它们
  • 安装Nginx并根据项目进行配置
  • 安装主管以单独管理(重新启动/启动/停止)每个项目
  • 项目需要的任何东西。
    这里它有一个巨大的缺点。因为您不能简单地将数据库引擎上的不同版本用于不同的项目。因此,强烈建议采用集装箱运输。
对于简单而健壮的解决方案,

  • 使用Docker(Docker compose)进行本地和生产部署
  • 使用Nginx配置uWsgi(docker上提供)
  • 使用任何类似Jenkins的工具创建CI/CD管道
  • 使用像Raygun这样的好工具监控您的项目

> ./P>考虑把这个放在上面,考虑把这个放在上面。