如何使用 Linux Ubuntu 16.04 中的 h2 (HTTP/2) 协议使 Wildfly 10.1.0 在端口 80 和 443 (SSL) 中工作

How to make Wildfly 10.1.0 work in port 80 and 443 (SSL) with h2 (HTTP/2) protocol in Linux Ubuntu 16.04

我正在尝试让 wildfly 在 ubuntu 的生产环境中工作。

我能够让它使用其标准 80808443 端口,并设法重定向端口 8080804438443 使用来自 ubuntu 的 iptables .

但是执行此重定向时,页面以 https 打开,但 h2 协议 (HTTP/2) 和 gzip 不起作用. 如果我直接使用标准的 wildfly 协议 (www.example.com:8443) gziph2 完美运行。

这是 iptables 重定向命令:

Iptables -t nat -A PREROUTING -i eth0 -p tcp -dport 80 -j REDIRECT --to-port 8080

Iptables -t nat -A PREROUTING -i eth0 -p tcp -dport 443 -j REDIRECT --to-port 8443

我尝试过使用nginx 进行重定向,但出现了同样的问题。 我还尝试将 wildfly 配置为直接使用端口 80443Ubuntu 不允许 .

我在防火墙中的状态如下: ufw status verbose of server

如果有办法让 wildfly 在端口 80443 或在 中重定向工作h2gzip.

系统:

请帮我解决这个问题。

非常感谢。

我刚刚找到了解决方案。 问题出在我的 Windows 10 Anti-Virus(更具体地说是 BitDefender 2017)中。

我所做的所有测试都是在 Windows 10 操作系统上进行的,当我切换到 Linux(我有双启动)时,该站点终于获得了 http2 所以我看到正在使用的证书颁发者的名称是:Bitdefender Personal CA.Net-Defender.

正是在这一点上,我意识到我的 letsencrypt 创建的证书正在被另一个 bitdefender 证书覆盖。

解决方案: 在 BitDefender 中进入模块设置,然后转到 internet 模块并禁用验证 SSL 证书的选项。重新启动浏览器,大功告成。

所以在使用防病毒软件测试网站时要小心。