Page 226 - Web性能权威指南
P. 226
在使用 PSOL 库的情况下,mod_pagespeed(Apache)和 ngx_pagespeed(Nginx)
模块都可以基于指定的优化过滤器(如嵌入、压缩、拼接、分片等)实现动态重
写,并优化资源交付方式。每次优化都在请求时动态应用(并被缓存),整个优化
过程完全自动化了。
在动态优化下,服务器还可以根据所用协议,甚至用户代理的类型和版本调整优
化策略。比如,可以配置 mod_pagespeed 模块,在客户端使用 HTTP 2.0 时跳过某
些优化:
# 对 SPDY/HTTP 2.0 客户端禁用拼接
<ModPagespeedIf spdy>
ModPagespeedDisableFilters combine_css,combine_javascript
</ModPagespeedIf>
# 只对 HTTP 1.x 客户端使用域名分区
<ModPagespeedIf !spdy>
ModPagespeedShardDomain www.site.com s1.site.com,s2.site.com
</ModPagespeedIf>
使用 PageSpeed 这样的自动 Web 优化库,可以让我们省去不少麻烦,值得考虑。
13.3.3 1.x与2.0的相互转换
除了双协议优化策略,很多已部署的应用都需要在自己的应用服务器上采取一种折
中方案:两端都是 HTTP 2.0 是追求最佳性能的目标,但(新增)一个转换层(图
13-2)也可以让 1.x 服务器利用 HTTP 2.0。
HTTP 1.xޜခഗ
2.0ڟ1.xገ࣑ഗ
پ+ሜ࢚ഗ
HTTP 1.xޜခഗ
图 13-2:HTTP 2.0 到 1.x 的转换,即将流转换为 1.x 请求
一台居间服务器可以接受 HTTP 2.0 会话,处理之后再向既有基础设施分派 1.x 格式
的请求。接到响应后,再将其转换成 HTTP 2.0 的流并返回客户端。通常,这是应
用 HTTP 2.0 更新的最简单方式,因为这样可以重用已有的 1.x 基础设施,而且基本
不用修改。
212 | 第 13 章