【问题标题】:Is there any way to implement HTTP/3 (QUIC) in Apache HTTP Server?有没有办法在 Apache HTTP Server 中实现 HTTP/3 (QUIC)?
【发布时间】:2020-02-20 16:09:44
【问题描述】:

有什么方法可以在 Apache 中实现 HTTP/3?

编辑:

QUIC 协议现已成为 RFC,请参阅 RFC 9000 等待 HTTP/3...

OpenSSL 在某处表示,他们将在发布 OpenSSL 3.0 后开始开发 QUIC。不确定 OpenSSL 3.0 何时发布。

在那之前,也许我们可以将 BoringSSL 集成到 Apache 中,并开始使用 QUIC 进行测试。

【问题讨论】:

    标签: apache quic http3


    【解决方案1】:

    不,目前没有办法。 Apache 目前还没有承诺做这里需要的工作。

    LiteSpeed is an Apache alternative 支持许多相同的功能,但with strong QUIC and HTTP/3 support

    Nginx 也只对 QUIC 和 HTTP/3 做出了模糊的 cmets,但 Cloudflare have made an Nginx patch available that adds QUIC and HTTP/3 support。 (编辑 Nginx have since previewed HTTP/3 support 独立于 Cloudflare 的实现构建)。

    或者Caddy 是另一个支持 QUIC 和 HTTP/3 的替代服务器。

    但是,如果我希望启用,甚至只是尝试使用 QUIC 和 HTTP/3,我会考虑使用 CDN,因为它们将是启用此功能并确保您拥有最佳设置的最简单方法。 Cloudflare 有一个免费计划,(我认为)还包括 HTTP/3 和 QUIC 支持,因此很容易在您拥有的网站前设置。

    【讨论】:

    • 嗯 HTTP/3 - 或者更准确地说是支持它的 QUIC - 是一个巨大的变化,基本上是在 UDP 之上重建大部分 TCP。所以工作量很大。该规范甚至还没有最终确定(尽管已经非常非常接近了!)所以可以说没有人应该实施这个!在浏览器方面,Chrome 昨天才宣布默认开启,其他的不支持没有标志。还有一个问题是它是否需要大量专业知识来管理并更好地留给专家服务提供商:almanac.httparchive.org/en/2019/http2#conclusion
    • LiteSpeed 也被大量货币化,并根据您支付的金额施加人为限制。
    【解决方案2】:

    注意:使用 quiche 编译 NGINX,仅在要测试 HTTP/3 时使用此解决方案,因为它不是很可靠。

    我得到的一个解决方案是,您可以仅使用 QUIC 在 443 上使用 HTTP/3 运行 NGINX,因此它将使用 UDP。

    而且,您可以在 443 上使用 Apache,它将使用 TCP。

    因此,您可以让 Apache 发送 Alt-Svc 标头,并使其处理 HTTP/0.9、HTTP/1.0、HTTP/1.1 和 HTTP/2.0。

    而且,您可以使用以下方法使 NGINX 成为 Apache 的包装器:

    listen 1.2.3.4:443 quic reuseport;
    location / {
         proxy_pass https://your-apache-server.tld:443;
    }
    

    这只是让你可以运行:

    • HTTP/0.9
    • HTTP/1.0
    • HTTP/1.1
    • 带有 TLS 的 HTTP/2.0
    • 没有 TLS 的 HTTP/2.0,使用 Upgrade: h2c 标头升级到它
    • 没有 TLS 的 HTTP/2.0,在 Apache 中使用 H2Direct 来启用 http2-prior-knowledge(不确定它的实际名称)。
    • HTTP/3.0

    常见问题

    • 好吧,你为什么要这样做?而是使用 NGINX!
      如果您需要 apache 提供的一些功能,例如 HTTP/2 明文(http 升级:标头或直接),如果您不需要这些功能,则可以坚持使用 NGINX。
      或者,如果您只想将 Apache 用于所有主要内容。

    问题

    • 我注意到,在部署当前配置时,nginx 在处理 POST 请求方面存在一些问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多