• #15楼 @sunfjun 这个东西的主要意义不是免费,而是自动化。

  • 安利一下自己的 HTTPS-PORTAL,差不多就是这些东西,不过包装成 Docker container 适合和 docker 部署的 app 一起使用。

  • 通过 Nginx 启用 HTTP/2 at 2016年5月10日

    #33楼 @ibachue 哦,我没想到这一层。server push 实际上做到了下载和处理的并行化,这点打包是做不到的。 我明白你的观点,但你字里行间让我感觉你认为不完全的 HTTP/2 开启了没有意义,这是我表示反对的地方。

  • 通过 Nginx 启用 HTTP/2 at 2016年5月09日

    #29楼 @ibachue

    我的意思是如果“多次请求小文件和一次请求大文件的耗时在 HTTP/2 (without out server push) 下应该是差不多的”,那么通过 server push 来减少 request 数量的提升就不明显。因为 server push 实际上就相当于一个更聪明、粒度更细的、缓存 overhead 比较小的把多个小 request 合并成一个大 request 的方法。

    我的观点 Nginx 启用的 HTTP/2 虽然没有达到 HTTP/2 的最大性能,但是以最小的配置达到了显著的性能提升,比没有强。

  • 通过 Nginx 启用 HTTP/2 at 2016年5月09日

    #27楼 @ibachue 可能是我理解不对,但是你这句话和你上一条回复好像矛盾了。 所以,在 HTTP/2 下,多次请求小文件(不用 server push)到底是不是比一次请求大文件更耗时?

    我认为是这样的,HTTP/2 下,多次请求小文件也是更耗时的。对此,比较优秀的解决方法是用 server push。但是如果 app 端还不支持,用 assets pipeline 打包也比什么都不做好。启用 Nginx 上的 HTTP/2 只需要改动两三行 Nginx 配置,是目前最方便的提升性能的方法。而且在这种状态下,assets pipeline 打包依然比不打好。以后如果方便或有精力,当然可以换掉 assets pipeline 的打包,换用 server push。

  • 通过 Nginx 启用 HTTP/2 at 2016年5月08日

    #24楼 @ibachue 那如果用 requirejs 加载大量小型 js 文件难道不需要吗?Asset pipeline 的打包不是可以节省这部分时间么? 虽然有 overhead,但统计上并不严重。

  • 通过 Nginx 启用 HTTP/2 at 2016年5月08日

    #22楼 @ibachue 如果在 HTTP/2 下,加载大量小文件所花的时间开销很小,可以忽略的话,那么为什么还需要用 server push 把这些文件预先 push 过来呢?

  • 通过 Nginx 启用 HTTP/2 at 2016年5月07日

    #20楼 @ibachue 部分 assets pipeline 的功能和 sprites 不再需要了,但是我不觉得留着它们会帮倒忙。 Server push 可以先不用。

    我认为 HTTP/2 主要的功能:压缩和节省 TCP 通道的作用是可以马上使用的。我试验下来在 Nginx 上启用 HTTP/2 后速度提升立竿见影。

    至于 Rails 和 Nginx 之间的通信还是 HTTP 1.1,本来在同一主机上 TCP 握手就很快,性能瓶颈不在这里。

  • 通过 Nginx 启用 HTTP/2 at 2016年5月06日

    #13楼 @ibachue

    这些优化是指什么呢? HTTP2 的主要优点不就是可以把多个请求放在一个 TCP connection 中,并且提供压缩么?这并不需要 app 端做任何改变,Nginx 里 enable 不就行了?

  • 通过 Nginx 启用 HTTP/2 at 2016年4月29日

    #1楼 @ibachue 怎么说?