我是 Web 开发和服务器设置的新手。我正在寻找一些建议或有关设置生产系统的教程链接。现在,我有一台服务器(Ubuntu、Apache、MongoDB 和 PHP)。它接收请求,PHP 查询 Mongo,然后 PHP 发送请求的数据。如何让更多服务器也能使用?我读到过,你可以创建一个由一个主节点和两个从节点组成的集群,它们作为运行 Mongo 的独立服务器工作,但这些从节点也运行 PHP 吗?还是只有主节点运行 PHP?我读过 Mongo 网站上的一些文档和 10gen 某人的视频,但它们面向似乎已经了解这些内容的人,我不知道,需要从头开始。
如果有人能帮助我了解 PHP(充当我的 API)在这些集群中的位置,我将不胜感激!提前感谢任何帮助!
答案1
扩展时,通常会拆分组件。最终会得到类似这样的结果(这些不是标准名称,您也不必这样做,但这是常见的情况):
- 应用服务器(Linux、Apache、PHP)
- 数据库服务器(Linux、MongoDB)
您需要多少个取决于您的应用程序需求。在 MongoDB 方面,对于生产,您需要至少运行一个副本集。这将至少构成一个主服务器、一个从服务器和一个仲裁服务器(请参阅文档,但作为快速指南,主服务器和从服务器应该相同且通常是专用主机,仲裁服务器没有数据且重量轻,可以在共享主机上运行)。
应用程序服务器将接受来自客户端的请求,无论是人类还是调用您应用程序的其他应用程序。应用程序将使用 PHP 驱动程序通过网络与 MongoDB 副本集进行通信(而不是本地通信,这可能是您到目前为止一直在做的)。
最终,如果你继续成长,你可能需要扩展到分片 MongoDB设置。从 PHP 的角度来看,唯一的区别在于您与 mongos 进程对话,而不是直接与副本集对话。不过,在这种情况下,这听起来对您来说还远远不够,所以请注意这一点,但在近期内应该没有必要。