django - 从一台服务器运行两个 Web 应用程序?
问题描述
我有一台服务器,其中包含我制作的第一个 webapp,服务器容量使用了一半(cpu 和 hdd),但它仍然可以赚到一些钱。我不想删除该应用程序,但我想在那里托管一个新项目,但是设置非常……让我们说“我的第一个应用程序样式”不好。例如,那里没有虚拟环境。
这是我正在考虑的文件夹结构:
/public_html/
/apps
/core_app
/3rd_apps #old-app django is here
/static
/media
/new_app #this would be my new app
/new app folders #with different django
new_app 将拥有自己的 django 和其他所有内容。目前我的环境变量指向应用程序、3rd_apps 和 core_app。我不确定如果我引入一个新应用程序并将更多环境变量指向 new_app 文件夹会发生什么。
另外,目前我在那里使用 nginx、gunicorn、postgres 服务器和主管。
我认为为新应用程序使用相同的数据库服务器(并创建一个新数据库)应该不是问题。主管应该也没有问题。我想我可以设置 nginx 来处理不同位置的两个域。
我最大的恐惧是两个 django 会在没有虚拟环境的情况下互相争斗。我不知道如何测试这个,因为我没有免费的服务器。
有没有人有这方面的经验?一些建议如何做到这一点?
解决方案
现在只要以正确的方式做事,你就可以避免很多未来的头痛。
如果您不想使用 Docker 等所有容器,我建议
- 每个应用程序一个 UNIX 用户
- 应用用户主目录中的 virtualenv(
~/venv
例如) - 用户主目录中的 Git 工作副本(
~/app
例如) ~/var/static
用户主目录中的静态/媒体目录(~/var/media
例如)
只要应用程序具有单独的数据库,共享数据库服务器就可以了。
推荐阅读
- logstash - Grok 用于日志文件 Logstash
- vba - mailItem.Recipients[i].Address 返回的值代表什么?
- ios - resignFirstResponder() 的模糊使用
- azureservicebus - 如何查看 Azure 服务总线的用户错误日志?
- java - 即使在 Ubuntu 中安装后 Java 也无法运行
- azure - 将 Azure API for FHIR 数据复制到 datalake
- c++ - 从类方法调用朋友函数
- nginx - 启用 ssl 时,nginx 不再重写重定向位置
- python - 测试目录中的 Python 导入
- html - 我想在点击时使用 javascript 或 jquery 将动画播放状态更改为运行。任何帮助都会得到帮助