使用H2C代理后端请求

时间:2019-03-15 05:58:02

标签: haproxy http2

在这里重新询问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代理行为。

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

我正在使用curl 7.54.0发出请求: $ curl 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

3 个答案:

答案 0 :(得分:0)

尚不支持。 "engines": {"node": "8"} 连接可以是HTTP / 2,client=>haproxy连接不能。

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

  

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

答案 1 :(得分:0)

只需在服务器定义中添加proto h2

引用example

server server1 192.168.1.13:80 proto h2

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

自haproxy-2.0-dev3起,

option http-use-htx默认为启用。

答案 2 :(得分:0)

它被报告为issue in haproxy github,并且已经fixed in version 2.0