这也可能是针对serverfault的问题,但它也包括来自此处的主题。
我正在构建一个由6台服务器组成的新网站。 1个mysql,1个Web,2个文件处理服务器,2个文件服务器。简而言之,文件处理服务器处理文件并将它们复制到文件服务器。在这种情况下,我有两个选择;
我可以为每个文件服务器设置一个Web服务器,并直接从那里提供文件。比如,file1.domain.com/file.zip。某些文件(并非所有文件)都需要身份验证,因此我将通过这些服务器的memcache对用户进行身份验证。 90%的请求不需要任何身份验证。
或者我可以直接从网络服务器设置NFS并提供文件,例如www.domain.com/fileserve.php?id=2323(这是一个基本的例子)
由于项目严重依赖于文件,第二个选项可能不如第一个选项有效,因为它会占用更多内存(即使我在服务时将文件拆分成块)
设置将长时间保持不变,因此我们不会在设置中添加新的文件服务器。
您有什么想法,哪一个更好?或者任何不同的想法?
提前致谢,
答案 0 :(得分:3)
只是我,但我实际上会在“Web服务器”上放置一组反向代理规则,然后将HTTP请求(如果它们具有相同的文件系统,可能是负载均衡的)代理回到文件服务器上的轻量级HTTP服务器。 / p>
这为您提供了灵活性和实现未来缓存,日志记录,过滤器链,重写规则,身份验证和& c的能力。我发现将前端Web服务器作为代理层是一种非常有效的解决方案。
答案 1 :(得分:2)
我建议您选择#1:允许文件服务器充当Web服务器。我个人发现NFS在大批量使用时有点片状。
答案 2 :(得分:0)
您还可以使用内容分发网络,例如simplecdn.com,它们可以解决带宽和服务器负载问题。