实际上,我们的网站有以下设置,可以吸引世界各地的流量:
所有 JS、图像、照片都存储在 CDN 上:云文件(“Akamai light”提供支持)。
发送动态内容的WebApp服务器位于瑞士,平均页面大小约为14KB(GZip后为3-5KB)。
70% 的流量来自北美。我们的网络延迟时间在 105 - 185 毫秒之间,主要通过数据中心测量,我认为这意味着家庭用户的延迟会更高。
在美国东西海岸的数据中心放置一个代理服务器,延迟时间较短(100 毫秒),然后从那里为来自美国的访问者提供来自 WebAPP 服务器的动态内容,这是一个好的解决方案吗?这意味着代理服务器将把请求转发给我们,然后发回答案。
答案1
如果您有许多可缓存的内容,则在您的 Web 服务器和客户端之间使用代理服务器在响应时间和带宽使用方面会更好。
只要缓存的对象未过期,代理服务器就会非常快速地提供页面/对象,而无需联系原始服务器。在大多数情况下,将代理服务器移近客户端将缩短响应时间。
答案2
如果所有页面都必须从欧洲发送,我看不出代理服务器有什么用。这只是又一个没有任何好处的跳跃。您已经在美国的 CDN 上拥有静态资源。如果只有一个页面点击,最多 180 毫秒,并且所有其他资源都已缓存,我认为这可能没问题,但如果您的服务器上有多个点击,则可能存在问题 - Ajax 算数。
您可以: - 将应用程序移到离用户更近的地方 - 如果适用,您可以在不同国家/地区拥有应用程序服务器,要么与欧洲的数据库通信(如果数据库繁重,速度可能比现在慢)要么同步每个国家的数据库(更复杂但更快)。欧洲的主数据库和美国的只读副本可能会起作用。
答案3
如果 70% 的流量来自美国,那么将应用服务器放在这里就很有意义了。从那时起,建议使用一些 HA 交付系统。
我设定的目标是,我的应用为客户服务的时间不超过 1 秒。无论需要做什么来实现这个目标,都是我的工作。