我为在单台计算机上运行的Web应用程序设计了一个架构

时间:2010-01-27 02:08:50

标签: php architecture nginx key-value

我计划构建一台在单台计算机上运行的Web应用程序,并尽可能高效地利用硬件资源。应用程序的逻辑并不复杂。以下是我的设计:

操作系统:Linux(CentOS 5)

Web服务器:Nginx

Web脚本:PHP

数据库:东京内阁+东京暴君

指数:Sphinx

我不会使用像MySQL这样的RDBMS,因为我认为带有索引器(Sphinx)的键值存储(东京机柜)将满足部署普通Web应用程序的所有需求,同时具有比MySQL更好的性能

我的问题是:这个设计是单个计算机的高效架构吗?或者如何改进它?

(我知道这个问题可能是主观的,但我真的需要你的帮助)

非常感谢〜

修改

我要托管我的应用程序的计算机,是普通的PC,如8GB~16GB内存,500G~1TB硬盘等。我认为不需要考虑“可扩展性”。 Web应用程序的每个第一步都是从一台计算机启动的,它始终是开始的。

2 个答案:

答案 0 :(得分:1)

DB的选择

我认为您选择的数据库类型取决于托管系统的计算机数量。我认为这应该更多地取决于您希望/需要保留的数据质量。

例如,如果您需要存储客户的送货地址,则需要在存储结构中考虑该地址。一个名称值对看起来似乎是一个足够简单的结构,但如果您预见到以下任何一种情况,您应该考虑转移到标准数据库系统

  • 跟踪变化
  • 报告活动/报告
  • 并发用户

<强>性能

这取决于您的代码,图像,内容,缓存等,就像您在数据库中一样。

答案 1 :(得分:1)

好吧,一种方法是加载测试它: http://grinder.sourceforge.net/

我从未与东京内阁合作,但如果它在功能上足够,那么它可能会比数据库快得多。

从长远来看,当你开始扩展到那个盒子之外时,通过调整你的应用程序在一个盒子上工作所实现的任何节省都会很快失去。试图添加大量的缓存,以及让应用程序更快的黑客只会到目前为止。更重要的是,您应该考虑如何轻松地将各层分离。