我接手了一个项目。我们正在为客户托管一个 Web 服务,该服务仅提供静态内容(来自文件系统)。该系统必须同时处理 10,000 个连接。
将会有一个数据库来存储客户详细信息,但我不相信会有任何 PHP 会话进行。
根据您过去的经验,并考虑到网站的静态性质,您是否认为 2 个负载平衡的 Apache Web 服务器(具有 8GB RAM,每个服务器都有一个 RAID10 磁盘阵列)就足够了?我打算使用一台 pfSense 机器进行负载平衡。
对于数据库,我考虑采用一个带有 8 个主轴的 RAID10 阵列、24GB RAM 和双四核 CPU 的单一数据库服务器。
大家觉得怎么样?
非常感谢您的建议
谢谢
编辑:
正如下面有人指出的那样,“静态”和“数据库”相互矛盾。为了澄清这一点,数据库将仅用于收集客户详细信息(即仅写入)。因此没有身份验证,也没有从数据库检索任何内容。网站代码将使用 PHP,但仅用于此数据收集,以及从其他地方托管的外部源检索内容(通过某些 API)。
答案1
静态内容服务通常以每秒请求数来衡量,而不是简单地以并发连接数来衡量。
一些比较在配备 i3 2.4GHz、4GB RAM、5400 RPM 磁盘的单台服务器上,使用 Apache MPM 每秒向 500 个并发客户端提供 10,000 个请求,而使用 nginx 则每秒超过 20,000 个请求,无论客户端数量有多少(最多 1000 个)。
对于真正静态的 (HTML) 和 PHP URL,使用不同的服务器(软件和可能独立的硬件)可能是值得的。对于纯静态 HTML 和 PNG/GIF/JPEG 文件,其他类型的 httpd-server 软件可能效果更好。
答案2
您可以用更少的功率实现这一目标!
由于您只有静态内容而没有任何数据库交互,因此您甚至可以使用一个双核处理器来完成这个简单的任务。需要具有广泛缓存的快速 Web 服务器,并且当并非所有文件都可以缓存时,还需要快速 SSD。因此单台机器应该没问题。