New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
求教caddy2的h2代理配置,調試了好久都不行 #759
Comments
www.website.com { 换Caddy1看看呢,或者Caddy2用上面的参数试试 |
@o0HalfLife0o 試過不行,會提示head错误,如果用tls重新加密仍然會提示錯誤。 |
遇到同样问题,也没有测通。caddy2.1.1 |
This is due a bug in Caddy v2, I submitted a PR to address the issue, hope it would be merged soon. caddyserver/caddy#3556 |
这里有人试过自己 git clone devel version caddy 来 build 吗? |
提供一下你的caddy配置文件 以及 v2ray 服务端和客户端配置文件看看(隐去隐私信息)。 |
你好, 这是我的客户端与服务端的配置, 还请过目 |
大致看了一下,
https://gist.github.com/hang333/5021e39f8f6f3fe5b94a1cf571c8c245#file-server_v2ray-json-L41 并且去掉"tlsSettings" 那一节。 Caddy 中的 /h2path 需要 和 v2ray server端的"httpSettings": { "path": "/h2path"} 一致。 试试看。 |
我试了一下, 还是发生错误了。 |
看上去新的配置文件没问题,重新启动一下v2ray server 和 Caddy,然后输出一下两者的日志看看。 |
我看了一下我 caddy 的日志, 发现 v2ray 请求的时候 host 是 www.example.com , 把 client 的 httpSettings 加多一个 host 数组里放服务器的域名就行了 "httpSettings": {
"host": [
"domain"
],
"path": "/h2path"
} 谢谢你的协助! |
好的,不客气。你的配置文件可以一直放在那给其他人一个参考了。 |
我尝试了自己build v2.2.0-rc.1 版本的caddy,现在收到http2请求的时候caddy能正常通过h2c反代给后端,但是收到(比如由CDN回源的)http1.1请求的时候依然会出问题。 caddy的log:
v2ray的error.log: caddy的配置:
v2ray的配置:
|
嗯,这个特性只有在 <-http2->Caddy<-http2->时会启用。 |
所以现在是用H2就只能不过CDN直连吗? |
可能要按CDN提供商的控制面板配置一下http2 CDN。 |
我目前为止试了Cloudfront、cloudflare和gcorelab,三家回源都固定只能是http1.x,就没什么办法 |
This issue is stale because it has been open 90 days with no activity. Remove stale label or comment or this will be closed in 5 days |
请问你caddy2 + vmess + h2 配置搞定了吗?我遇到同样的问题想咨询下 |
https://gist.github.com/DdVwl6Fj3a/b74ea62d7f0f43a9b1b3c458b708ccef |
我之前配置到过直连能访问的程度,但因为当时CDN没法支持http2回源就撤除了。caddy有一个allow h2c(http2 cleartext)的选项好像只在json配置里可用,反代给v2需要启用那个。你可以先绕过cdn直连测试一下能不能通。 |
直连是通的,就是加了cdn之后不通 |
那就完全是CDN设置的问题了……这个也没办法泛泛地讲。虽然你说CDN是支持h2回源的,但我还是建议你先排查一下这个,比如看看caddy的log里request的alpn。我之前调查的时候,能找到的CDN都是节点到客户端支持h2,但回源最多只能http/1.1。 |
我这个cdn,cdn请求Origin的时候是优先h2,也支持http/1.1,但是和我caddy服务器协商出来的是http/1.1,我caddy服务器设置了alpn,只支持h2,不知道为啥能协商出来http/1.1的 |
你可以试试本地发个只支持1.1的请求给caddy试试?感觉CDN那边多少还是有点问题,具体的你可能得问问CDN的客服 |
有没有可能是caddy服务器配置的问题,我是不是可以在caddy服务器中指定只支持h2协议? |
所以我说,你在本地用curl之类的给服务端caddy发一个请求,看看apln的协商过程,才知道是不是caddy配置的问题。 |
我不使用cdn的时候,直连caddy服务器是没问题的。PS:curl看协商过程该咋写命令? |
你不使用CDN的时候,和caddy通信的是你配置好指定只使用h2的v2ray client。负责回源的CDN节点和v2ray client的请求行为应该并不一致,caddy能和后者通信不一定就能和前者通信。我估计curl的行为可能更接近前者一些。 |
curl看到的是我客户端和cdn前端之间的请求,cdn和v2ray之间的请求我看不到的,确实cdn请求caddy服务器的时候行为不一致,使用的是http/1.1,我联系了cdn提供商一起看这个问题,他们这个cdn是支持h2的,现在就是不知道为啥握手变成了http/1.1 |
caddy2的配置:
可以看到其實caddy2的配置裏有ws+tls的配置,只是新開了一個端口用來調試h2
使用ws+tls時是完全沒問題的,因此不用懷疑證書的配置。
web方面也完全沒問題。
下面是v2ray 4.25.0的服務端配置:
The text was updated successfully, but these errors were encountered: