【问题标题】:Move to 2 Django physical servers (front and backend) from a single production server?从单个生产服务器迁移到 2 个 Django 物理服务器(前端和后端)?
【发布时间】:2010-08-04 16:41:44
【问题描述】:

我目前有一个不断增长的 Django 生产服务器,所有前端和后端服务都在其上运行。我可以让服务器越来越大,但我想尝试将该主服务器作为我的后端服务器,并创建多个前端服务器来运行 apache/nginx 并远程连接到主生产后端服务器。

我现在正在使用 slicehost,所以我不认为我可以从在 Intranet 上运行多个服务器中受益。我该怎么做?

【问题讨论】:

  • 服务器负载的来源是什么?是CPU吗?数据库?磁盘?多个 apache/nginx 前端服务器比单个 apache/nginx 前端和多个后端服务器更没有意义,那么脚下是否还有另一个问题?
  • 如果不知道你已经在做什么以及它是如何不成功的,这个问题是不可能回答的。

标签: django


【解决方案1】:

扩展服务器的第一步通常是分离数据库服务器。我假设这就是您所说的“后端服务”,除非您提供更多详细信息。

所有这些都需要更改您的设置文件。将 DATABASE_HOST 从 localhost 更改为数据库服务器的新 IP。

如果您的网站大量使用静态内容,则创建单独的媒体服务器可能会有所帮助。您甚至可以查看CDN

【讨论】:

    【解决方案2】:

    第一步通常是将运行实际 Python 代码的服务器和数据库服务器分开。任何进行处理的后台作业都可能在数据库服务器上运行。我假设当您说前端服务器时,您实际上是指运行 Python 代码的服务器。

    现在,由于每个请求都必须执行许多数据库查询,因此网络服务器和数据库服务器之间的延迟非常重要。我不知道 Slicehost 是否有一些功能允许您创建两个在网络延迟方面“接近”的虚拟机(快速谷歌搜索没有找到任何东西)。他们看起来很不错,所以也许你可以问他们是否有这样的服务或者可以破例。

    无论如何,当您在 Slicehost 上有两台机器时,您可以通过简单地在它们之间 ping 来检查它们之间的延迟。当你得到结果时,你可能会知道这是否可行。

    进一步的步骤取决于您的应用程序。如果它是重媒体,那么使用单独的媒体服务器可能是有意义的。否则,正常的步骤是添加更多的 Web 服务器。

    --

    作为旁注,我个人认为,为这种设置投资配备专用网络设备的真正专用服务器更有意义。这当然取决于您的预算。

    我还建议您研究一下 Amazon EC2,您可以在其中预置神奇地彼此接近的服务器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-07-11
      • 1970-01-01
      • 1970-01-01
      • 2017-09-04
      • 1970-01-01
      • 2023-03-19
      • 2011-09-26
      相关资源
      最近更新 更多