Top Menu

enable http2 and keepalive

突然发现这个服务器的apache没有开启h2和keepalive,难怪总觉得打开页面特别慢

其实影响最大的还是keepalive,keepalive的核心就是复用连接,相当于是proxy里的多路复用,省去了重复tls握手的时间。

另外发现Cache-Control设置是no-cache,顺便把这个也改了

最后看了一眼,发现并没有真正开启http2,响应头里的h2是因为开启了mod http2后,http2的mod自带的config里自动设置的header所以看起来开了h2,实际在Protocol里就可以看到还是http/1.1,真正的h2在响应头里是没有这个upgrade字段的,主要是因为mpm_prefork不兼容http2,需要改成mpm_event+php-fpm,但是修改mpm_prefork又需要先禁用mod php,又是一个大工程。

加载时间对比

  • http/1.1 no-cache:20.75 s
  • http/1.1 + keepalive no-cache:5.52 s
  • http/2 no-cache:5.85 s
  • http/2 cached:667 s
  • http/1.1 + keepalive cached:681 ms

发现h2和keepalive其实并不能共存,突然醒悟,h2的tcp复用不就是keepalive么。。。并且从实际测试结果来看,http/2和http/1.1 + keepalive的加载时间非常接近。虽然h2宣称从本质上解决了拥塞问题,但是实际并没看出区别。

know more

enable http2

(optional)/etc/apache2/sites-available/blog.minirplus.com.conf

enable keepalive

/etc/apache2/apache2.conf

enable cache

/etc/apache2/sites-available/blog.minirplus.com.conf

 

There are no comments yet

  • Hello, guest

Powered by WordPress. Designed by WooThemes