Closed tufu9441 closed 4 years ago
使用过程中尝试将某个vhost的流量默认直接转发到Caddy,并在alpn中设置了h2,http/1.1,但访问网站时浏览器(Chrome 80, Microsoft Edge均测试过)出现错误提示ERR_HTTP2_PROTOCOL_ERROR(alpn http/1.1时正常)。 tls-shunt-proxy的运行日志: tls-shunt-proxy的config.yaml如下:
ERR_HTTP2_PROTOCOL_ERROR
listen: 0.0.0.0:443 vhosts: - name: mydomain.com tlsoffloading: true managedcert: false cert: /usr/local/caddy/mydomain.com.crt key: /usr/local/caddy/mydomain.com.key alpn: h2,http/1.1 default: handler: proxyPass args: 127.0.0.1:8082
对应的Caddyfile中相关的内容如下:
http://mydomain.com:8082 { proxy / localhost:8080 { transparent } proxy /secret localhost:8888 { websocket header_upstream -Origin } }
经测试,如果不经过分流器转发(删除该vhost内容),直接通过Caddy访问8082端口是正常的,并可检测出是h2连接。此时Caddyfile改写为:
https://mydomain.com:8082 { tls /usr/local/caddy/mydomain.com.crt /usr/local/caddy/mydomain.com.key { must_staple } proxy / localhost:8080 { transparent } proxy /secret localhost:8888 { websocket header_upstream -Origin } }
个人认为这跟Caddy是否支持反代h2c流量应该没有关系,整个过程Caddy中proxy的内容并不涉及h2,不知道为何会出现这个问题,还请大佬指点!
caddy 不支持监听 h2c,请参阅 caddyserver/caddy#3227,和 caddy 反代功能无关。建议使用 nginx 替代
好的,我明白了。
使用过程中尝试将某个vhost的流量默认直接转发到Caddy,并在alpn中设置了h2,http/1.1,但访问网站时浏览器(Chrome 80, Microsoft Edge均测试过)出现错误提示
tls-shunt-proxy的config.yaml如下:
ERR_HTTP2_PROTOCOL_ERROR
(alpn http/1.1时正常)。 tls-shunt-proxy的运行日志:对应的Caddyfile中相关的内容如下:
经测试,如果不经过分流器转发(删除该vhost内容),直接通过Caddy访问8082端口是正常的,并可检测出是h2连接。此时Caddyfile改写为:
个人认为这跟Caddy是否支持反代h2c流量应该没有关系,整个过程Caddy中proxy的内容并不涉及h2,不知道为何会出现这个问题,还请大佬指点!