我在负载均衡器后面有五个节点,我正在尝试确定基于Django的站点的最佳配置。
每个节点都可以访问Postgres、mod_wsgi、Apache、Lighttpd、memcached、pgpool2 (用于数据库复制)和glusterfs(用于媒体文件复制),并且正在运行Ubuntu8.04LTS。
到目前为止,设置是运行Apache/Lighttpd/memcached/pgpool2的四个节点,所有这些节点都在读/写一个运行“主”Postgresql的主节点。四个web节点中的每一个也都在运行Postgres,以便通过pgpool从主节点进行复制。
因此,我的问题是:如果可能,您将如何配置此设置和/或您将进行哪些更改以避免单点故障?
发布于 2011-12-02 19:33:53
这听起来像是一个很好的设置,尽管很难确切知道您的设置是什么样子的。在内存等方面,以及您希望处理的流量。
您可能希望考虑使用Django的multidb支持,并拥有一个只读postgres实例(使用DB路由直接读取某些应用程序的只读实例)。这可以提供一些相当不错的速度改进-目前,您可能在单个postgres实例上有一个潜在的瓶颈,这取决于您的数据库工作有多繁重。
正如@ashwood建议的那样,它可能正在调查gunicorn和nginx。我猜目前你只使用Apache来运行mod_wsgi?以及静态文件的lighttpd?有了nginx,你可以在许多wsgi服务器上使用它,它对静态文件也很好。
发布于 2011-11-30 19:37:58
这个设置对我来说看起来很不错。我会考虑使用gunicorn/uwsgi + nginx。虽然pgpool2提供了更多开箱即用的功能,但我也会使用pbbouncer进行基准测试。
https://stackoverflow.com/questions/1887997
复制相似问题