2

我正在慢慢地进入我的 Django 站点之一需要在其背后具有一些鲁棒性的位置。我目前在带有 memcached 的 SQLite 数据库上的单个 VPS 上运行。它几乎是不可扩展的。

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

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

我是不是走错路了?有没有更简单的方法来拥有更快、更强大的 django 站点?

4

2 回答 2

2

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

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

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

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

于 2009-12-02T16:33:17.010 回答
0

观看Jacob Kaplan-Moss的Django 部署研讨会应该会给您一个很好的概述。

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

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

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

我不认识 Cherokee,但nginx很棒。

于 2011-05-17T10:01:15.853 回答