参考 https://segmentfault.com/a/1190000013420784 

 

nginx 版本 1.12.2
tomcat 版本 8.5.32​

 

开始之前,nginx和tomcat必须先已经是HTTPS,拥有SSL证书。如何还没有的,先看下我之前的2篇博客

Let's Encrypt 第二弹 支持通配符的免费SSL证书

Nginx Tomcat 实现网站全站https 基于免费的SSL证书Let's Encrypt

 

http2.0的好处 和浏览器支持情况我放到后面再说,先直接上方法,一句话就搞定

tomcat部分(版本必须大于等于 8.5.x  查版本方法 查看tomcat根目录文件RELEASE-NOTES)

  1. # 首先是tomcat配置文件 tomcat/conf/server.xml
  2. # 再次强调,必须是已经HTTPS的http 1.1才能平滑升http 2.0
  3. # 找到配置 8443 和SSL证书的Connector标签
  4. <Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol" SSLEnabled="true" ......... >
  5. # 重点就是这个 加上这句
  6. <UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />
  7. </Connector>

结束重启tomcat

  1. ./tomcat/bin/shutdown.sh
  2. ./tomcat/bin/startup.sh


nginx部分(版本必须大于 1.9.x 查版本命令 nginx -v)

  1. # /etc/nginx/nginx.conf 
  2.     server {
  3.         # 重点就是这里加http2
  4.         listen    443  ssl http2 default_server;
  5.         ...
  6.     }

 结束重启nginx

  1. service nginx restart

到这里已经大功告成了


打开chrome的开发者工具(F12)检查一下

如果network里没有内容,就到页面ctrl+f5强制刷新,如果没有看到protocol列,就右击列头勾选上




http2.0详解可以参考大牛的帖子

https://blog.wangriyu.wang/2018/05-HTTP2.html


浏览器支持情况


最后一句话总结 HTTP2 就是快!浏览器完全支持!