Spring WebFlux+Netty 中怎么配置 HTTP/2? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
u6b7b5fc3
V2EX    Java

Spring WebFlux+Netty 中怎么配置 HTTP/2?

  •  
  •   u6b7b5fc3 2021-01-03 12:35:15 +08:00 2324 次点击
    这是一个创建于 1745 天前的主题,其中的信息可能已经有所发展或是发生改变。

    环境 JDK11+SpringBoot2.4.1+Spring WebFlux+默认 Netty 服务器,看了一下官方文档说是不同服务器配置不一样:

    里面的链接有关于 Netty 的配置:

    但是不知道怎么集成到 SpringBoot 中:

    另一方面证书是阿里云买的,没有提供 Netty 直接相关的证书:

    额外搜索了一下好像没有现成的 Demo (准确来说 Github 上有,但是有的用的是 Undertow,有的用的是 OpenSSL 生成的证书),以前使用 Spring MVC+Tomcat 的时候可以直接下载证书并在配置文件中配置:

    server: http2: enabled: true ssl: key-store: xxxx key-store-type: xxxx key-store-password: xxxx 

    就可以使用了,但是 Netty 的好像不可以。

    所以现在的问题是到底怎么配置才能集成 HTTP/2 ?

    8 条回复    2021-01-03 16:14:15 +08:00
    hantsy
        1
    hantsy  
       2021-01-03 13:16:23 +08:00
    Java 项目应该 JKS 都是可以的。
    hantsy
        2
    hantsy  
       2021-01-03 13:23:16 +08:00
    证书这东西跟服务器有什么关系?

    Java 最常见的就是用 JDK 自带的的 Keytool 生成。

    默认 keytool 生成生成的证书,在浏览器中会被挡住。但 keytool 可以合并第三方权威证书,比如 CA,Let‘sEncrpt 就可以解决浏览器的问题了。
    hantsy
        3
    hantsy  
       2021-01-03 13:29:21 +08:00
    Servlet 4 标准默认启用 Http 2,以前在 Glassfish 里面测试的时候,访问会自动转向 Https,证书似乎是部署的时候 Glassfish 自动管理的。

    https://github.com/hantsy/javaee8-by-example-gitbook/blob/master/servlet-push.md
    hantsy
        4
    hantsy  
       2021-01-03 13:33:43 +08:00
    @u6b7b5fc3 这种如果官方文档没说明应该尝试看源代码中的《《《测试代码》》》。https://docs.spring.io/spring-framework/docs/current/reference/html/index.html
    hantsy
        5
    hantsy  
       2021-01-03 13:35:41 +08:00
    不过回过头,加证书不一定要在你的 java 程序里面,部署的时最常见的一种方法是放在前面一层的 Reverse Proxy ( Side Car )里面去,如 Ngnix 之类。
    learningman
        6
    learningman  
       2021-01-03 13:57:44 +08:00
    一般都是 nginx 反代,然后这些传输层的协议用 nginx 来处理
    u6b7b5fc3
        7
    u6b7b5fc3  
    OP
       2021-01-03 16:13:44 +08:00
    @hantsy 谢谢大佬提醒
    u6b7b5fc3
        8
    u6b7b5fc3  
    OP
       2021-01-03 16:14:15 +08:00
    @hantsy 应该用反代的,不应该直接写在 SpringBoot 里面
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5461 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 31ms UTC 07:31 PVG 15:31 LAX 00:31 JFK 03:31
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86