Django冗余和两个VPS帐户的复制

时间:2009-12-02 13:10:12

标签: django deployment redundancy

我正慢慢进入我的Django网站需要一些强大功能的位置。我目前在带有memcached的SQLite数据库上使用单个VPS运行..它的大小与事情无关。

如果我购买了另一个VPS帐户,我想做什么?

  • 通过复制转移到MySQL / PostgreSQL?最简单的是什么?复制是否保护我免受一个服务器的爆炸?是否存在并发缺点?
  • 如何在两台服务器之间进行负载均衡?
  • 我也把memcached放在新服务器上。如果我将两个IP放入配置中,是否会在两个服务器上保留数据副本? (我正在考虑会话数据会发生什么 - 目前存储在memcached中)
  • 我目前正在使用切诺基作为httpd - 我确信这有一系列问题。如果您有任何提示,请告诉我。

我是以错误的方式去做的吗?是否有更简单的方法来获得更快,更强大的django网站?

2 个答案:

答案 0 :(得分:2)

第一步:从SQLite切换到真正的生产数据库(我喜欢Postgres)。这应该在您考虑第二个VPS之前很久就会发生。 SQLite本质上根本不支持并发。就个人而言,我甚至不会考虑首先在SQLite上部署一个实时网站。

如果您的网站在SQLite上运行且运行正常,我猜您距离单个VPS实际上还有很长的路要走(除非它已经非常重载)。

如果/当您确实需要添加第二台服务器时,您的配置方式取决于您实际看到瓶颈的位置。有可能它是数据库,在这种情况下,一个好的步骤可能只是将数据库移动到自己的服务器上(假设您可以保证两个VPS之间的低延迟)并使用尽可能多的RAM加载数据库服务器。通常,磁盘性能在VPS中受到的影响最大,因此需要考虑的另一个步骤可能是将DB放在原始金属上。

在考虑数据库复制或多个Web层服务器之前,我可能会考虑这些步骤,但这实际上取决于对实际案例进行分析(以及您如何评估性能与可靠性)。

答案 1 :(得分:0)

观看Jacob Kaplan-Moss的Django Deployment Workshop应该会给你一个很好的概述。

MySQL支持Master-Slave和Master-Master设置我不使用PostgreSQL。

您可以使用nginx作为您的负载均衡器,HAProxy也是一个选项(使用它)。

Memcached在服务器上分发对象,如果一个崩溃,数据就会丢失。

我不认识切诺基,但是nginx很棒。