【问题标题】:Proxy requests to backend using h2c使用 h2c 对后端的代理请求
【发布时间】:2019-08-06 04:02:30
【问题描述】:

在这里重新询问the question from HA-Proxy discourse site,希望得到更多关注。

我正在使用 HA-Proxy 版本 1.9.4 2019/02/06 将 HTTP 流量代理到 h2c 后端。但是,我看到 HA-Proxy 在代理请求时将 :scheme 设置为 https (据我所知,在请求中使用 SSL)。当我直接点击后端时, :scheme 设置为 http 并且请求如预期的那样是非 SSL 的。我已经使用 wireshark 验证了这种 HA-Proxy 行为。

关于我应该在我的配置中进行哪些更改以便我可以设置以确保在将请求代理到后端时将 :scheme 设置为 http 的任何建议?

我正在使用 curl 7.54.0 发出请求: $卷曲http://localhost:9090 HA-Proxy 正在侦听端口 9090。

我的 HA-Proxy 配置文件:

global
   maxconn 4096
   daemon

defaults
   log   global
   option http-use-htx
   timeout connect 60s
   timeout client 60s
   timeout server 60s

frontend waiter
    mode http
    bind *:9090
    default_backend local_node

backend local_node
    mode http
    server localhost localhost:8080 proto h2

【问题讨论】:

    标签: haproxy http2


    【解决方案1】:

    目前还不支持。 client=>haproxy 连接可以是 HTTP/2,haproxy=>server 连接不能。

    https://cbonte.github.io/haproxy-dconv/1.9/configuration.html#1.1

    HTTP/2 仅支持传入连接,不支持连接 去服务器。

    【讨论】:

    • 我认为文档需要更新,因为 1.9 公告指出现在支持端到端 HTTP/2:haproxy.com/blog/haproxy-1-9-has-arrived
    • 好的,文档已经过时了。您的配置直接来自公告,应该可以工作。
    • 尝试haproxy -vv 并检查 alpn 和/或 h2 是否已编译。尝试在前端也启用 HTTP/2,也许它需要端到端。
    • 好吧,我对 OPs 问题的解读是它正在工作,它只是提供原始方案,而不是用于连接最后一站的方案。 OP 没有说明这是否会导致后端无法响应请求,或者这不是他所期望的。无论哪种方式,如果它们确实是链接在一起的独立连接,这对我来说听起来像是一个错误,尽管可能是一个有用的错误,只要后端能够处理它,因为它告诉这个连接最初是通过 HTTPS 进行的,这可能比知道更重要最后一次连接(例如返回 HTTPS 资源)。
    • @BarryPollard 在我的场景中,后端期待 http,如果请求使用 SSL(它是)它会失败。配置要求请求和方案是非 SSL。
    【解决方案2】:

    只需将proto h2 添加到服务器定义中即可。

    引用example

    server server1 192.168.1.13:80 proto h2
    

    这是 haproxy-1.9 的实验性功能,您必须启用 option http-use-htx 才能使用它。

    option http-use-htx 自 haproxy-2.0-dev3 起默认启用。

    【讨论】:

      【解决方案3】:

      这被报告为issue in haproxy github,并且一直是fixed in version 2.0

      【讨论】:

        猜你喜欢
        • 2018-02-04
        • 2020-08-12
        • 1970-01-01
        • 2018-12-13
        • 2019-01-08
        • 2015-11-01
        • 1970-01-01
        • 2013-01-24
        • 2020-04-06
        相关资源
        最近更新 更多