Page 76 - Web性能权威指南
P. 76

设施:在全球几大数据中心租用一些云服务器,然后在每台服务器上都运行代理(服
               务器)程序,把请求转发到你的原始服务器,再加上地理 DNS 负载均衡系统即可。



                                          不缓存的原始获取
                使用 CDN 或代理服务器取得资源的技术,如果要根据用户定制或者涉及隐私
                数据,则不能做到全球缓存,这种情况被称为“不缓存的原始获取”(uncached
                origin fetch)。
                虽然只有把数据缓存到全球各地的服务器上 CDN 才能发挥最大的效用,但“不
                缓存的原始获取”仍然具有性能优势:客户端连接终止于附近的服务器,从而
                显著减少握手延迟。相应地,CDN 或你的代理服务器可以维护一个“热连接池”
               (warm connection pool),通过它将数据转发给原始服务器,同时做到对客户端快
                速响应。
                事实上,作为附加的一个优化层,CDN 提供商在连接两端都会使用邻近服务器!
                客户端连接终止于邻近 CDN 节点,该节点将请求转发到与对端服务器邻近的 CDN
                节点,之后请求才会被路由到原始服务器。CDN 网络中多出来这一跳,可以让数
                据在优化的 CDN 骨干网中寻路,从而进一步减少客户端与服务器之间的延迟。




               4.7.3 会话缓存与无状态恢复
               无论什么情况下,在接近用户的地方终止连接都有助于减少延迟,但有延迟终归快不
               过没有延迟。启用 TLS 会话缓存和无状态恢复可以完全消除“回头客”的往返时间。

               SSL  2.0 引入的会话标识符机制是 TLS 会话缓存的基础,目前已经得到大多数客户
               端和浏览器的广泛支持。然而,如果你在自己的服务器上配置 SSL/TLS,千万不能
               主观认为该机制默认是开启的。实际上,在大多数服务器的默认配置下它是禁用的。
               为此,应该仔细检查和验证自己的配置:

               •   支持多进程或工作进程的服务器应该使用共享的会话缓存;
               •   共享的会话缓存的大小应该根据流量调整;
               •   应该设置会话超时时间;
               •   在多台服务器并存的情况下,把相同的客户端 IP 或相同的 TLS 会话 ID 路由到同
                 一台服务器可以最好地利用会话缓存;
               •   在不适宜使用“单一”负载均衡策略的情况下,应该为多台服务器配置共享缓存,
                 以便最好地利用会话缓存;
               •   检查和监控 SSL/TLS 会话缓存的使用情况,以之作为性能调优的依据。





               58   |   第 4 章
   71   72   73   74   75   76   77   78   79   80   81