【发布时间】:2011-02-08 11:54:06
【问题描述】:
我目前正在为瑞士的一个社会项目创建一个网站。
在用户溢出之前,我想准备应用程序进行扩展。
我自己回答了很多问题,但还有一些问题。
我解释我想做什么。
第一
在开始时,应用程序将只有一台服务器(短时间),带有 DNS、PHP、Mysql、Data 和 memcache。
第二
那我把它们一分为二
- DNS、Mysql、内存缓存
- 数据,PHP
第三
这就是问题所在,我不知道该怎么做才能让应用程序运行良好。
我可以:
- 前端:负载均衡器、内存缓存、DNS
- Web 1:PHP、数据
- Web 2:PHP、数据
- Mysql
这就是方案,所有 PHP 会话都保存在数据库中。
但是,我如何同步数据? 我是否运行 Rsync 以使它们保持最新。 是否可以确定将它们放在单独的磁盘(网络磁盘)上? 但是在这种情况下,如果用户上传,我该怎么办?
如果网站取得更大的成功,我们必须继续构建更大的结构,这不会造成更新延迟吗?
或者直接访问亚马逊的网络服务会是一件好事吗?
一些信息 我使用 codeigniter 作为框架。 我使用linux作为webserver(现在没有选择发行版,但应该是Debian)
提前感谢您的回答。
【问题讨论】:
-
AWS 提供了一些用于拆分服务的出色工具:用于静态元素的内容交付和 S3,用于分布式数据库的 RDS 和 SimpleDB,以及用于可扩展服务器资源的 EC2。
-
实际上有超过 10 种方法可以让几到一千个 Web 服务器共享同一个文档根目录,请查看 serverfault。在大容量站点的数据库中存储会话?您可能会对 MySQL 复制和查询负载平衡更感兴趣。
-
@Onigoetz ,我能知道你想出的最终方法吗?我什至在尝试类似的网站。提前感谢您的回复
标签: php codeigniter scalability