This repository was archived by the owner on Mar 17, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 104
[Bug] gRPC回落到nginx无法正确处理POST请求 #251
Copy link
Copy link
Open
Labels
bugSomething isn't workingSomething isn't working
Description
Describe the bug【描述 bug】
在verysimple中配置通过gRPC回落到nginx (h2c)时,无法正确处理POST请求。看nginx日志似乎是verysimple没有正确处理参数,把参数省略掉了。
To Reproduce【如何复现该bug】
按所给出的配置文件运行verysimple,nginx和webd。
打开浏览器登录webd。
Expected behavior【预期的行为】
verysimple正确处理回落的POST请求,登录成功。
Envs (please complete the following information):【系统环境】
Clear Linux 38630, Kernel 6.2.1
verysimple 1088b27
nginx 1.20.2
Config file 【配置文件,客户端服务端配置都提供】
verysimple服务端
[app]
loglevel = 0
logfile = "/root/tmp/vs_log"
[[listen]]
tag = "vless-grpc-tls-in"
protocol = "vlesss"
uuid = "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"
ip = "0.0.0.0"
port = 9443
version = 0
advancedLayer = "grpc"
path = "grpc_path"
fallback = "/dev/shm/h2c.sock"
sniffing.enabled = false
cert = "/usr/local/etc/xray/cert.pem"
key = "/usr/local/etc/xray/cert.key"
extra.tls_minVersion = "1.3"
alpn = ["h2"]
[[listen]]
tag = "vless-tcp-in"
protocol = "vlesss"
uuid = "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"
ip = "0.0.0.0"
port = 8443
version = 0
fallback = "/dev/shm/h2c.sock"
sniffing.enabled = false
cert = "/usr/local/etc/xray/cert.pem"
key = "/usr/local/etc/xray/cert.key"
extra.tls_minVersion = "1.3"
alpn = ["h2"]nginx.conf
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;
events {
worker_connections 2048;
multi_accept on;
use epoll;
}
http {
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 15;
types_hash_max_size 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
ssl_prefer_server_ciphers on;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
gzip off;
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
server {
listen unix:/dev/shm/h2c.sock http2;
client_header_timeout 52w;
keepalive_timeout 52w;
location / {
proxy_pass http://127.0.0.1:80/;
proxy_http_version 1.1;
}
}Debug Log 【Debug日志, 客户端 和 服务端 的 日志 都提供】
正常回落verysimple日志
{"L":"INFO ","T":"230301 023936.128","M":"Program started","loglvl":0}
{"L":"INFO ","T":"230301 023936.131","M":"zap log init complete.","logfile":"/root/tmp/vs_log"}
{"L":"INFO ","T":"230301 023936.134","M":"verysimple v1.2.5-1088b279ef77e4c34405ead8913588aaa83f425e, go1.20.1 linux amd64, with advLayer packages: [grpcSimple ws] \n"}
{"L":"INFO ","T":"230301 023936.134","M":"Working at","dir":"/root/tmp"}
{"L":"DEBUG","T":"230301 023936.135","M":"All Given Flags","flags":{"c":"my string representation"}}
{"L":"INFO ","T":"230301 023936.135","M":"Options","Log Level":"debug","UseReadv":true}
{"L":"INFO ","T":"230301 023936.137","M":"Starting..."}
{"L":"INFO ","T":"230301 023936.140","M":"Listening","tag":"vless-grpc-tls-in","protocol":"tls+grpc+vless","listen_addr":"0.0.0.0:9443","defaultClient":"dual+direct","dial_addr":""}
{"L":"INFO ","T":"230301 023936.143","M":"Listening","tag":"vless-tcp-in","protocol":"tls+vless","listen_addr":"0.0.0.0:8443","defaultClient":"dual+direct","dial_addr":""}
{"L":"INFO ","T":"230301 023947.603","M":"New Accepted Conn","connid":114949,"from":"1.2.3.4:60860","handler":"tls+vless://0.0.0.0:8443#vless-tcp-in"}
{"L":"WARN ","T":"230301 023947.911","M":"Failed handshakeInserver","connid":114949,"handler":"0.0.0.0:8443","client RemoteAddr":"1.2.3.4:60860","error":" [ Vless Invalid version , Detail: invalid data, Data: 80 ] , with Buffer,len 148"}
{"L":"DEBUG","T":"230301 023947.912","M":"Fallback to default setting","addr":"/dev/shm/h2c.sock"}
{"L":"DEBUG","T":"230301 023947.912","M":"Default Route","connid":114949,"source":"/dev/shm/h2c.sock","client":"dual+direct","addr":""}
{"L":"INFO ","T":"230301 023947.912","M":"Request","connid":114949,"Fallback from":"1.2.3.4:60860","Target":"unix://%2Fdev%2Fshm%2Fh2c.sock","through":"dual+direct://"}
{"L":"DEBUG","T":"230301 023947.912","M":"handshake client with first payload","connid":114949,"len":148}
{"L":"DEBUG","T":"230301 023947.913","M":"TryCopy","id":114949,"from":"*net.UnixConn","->":"*tlsLayer.conn"}
{"L":"DEBUG","T":"230301 023947.913","M":"copying with readv","id":114949}
{"L":"DEBUG","T":"230301 023947.913","M":"TryCopy","id":114949,"from":"*tlsLayer.conn","->":"*net.UnixConn"}
{"L":"DEBUG","T":"230301 023947.913","M":"copying with classic method","id":114949}
{"L":"INFO ","T":"230301 024018.729","M":"Program got close signal."}
{"L":"INFO ","T":"230301 024018.730","M":"Stopping..."}
{"L":"DEBUG","T":"230301 024018.730","M":"netLayer.loopAccept, listener got closed","error":"accept tcp [::]:9443: use of closed network connection"}
{"L":"DEBUG","T":"230301 024018.730","M":"netLayer.loopAccept, listener got closed","error":"accept tcp [::]:8443: use of closed network connection"}异常回落verysimple日志
{"L":"INFO ","T":"230301 024115.849","M":"Program started","loglvl":0}
{"L":"INFO ","T":"230301 024115.853","M":"zap log init complete.","logfile":"/root/tmp/vs_log"}
{"L":"INFO ","T":"230301 024115.854","M":"verysimple v1.2.5-1088b279ef77e4c34405ead8913588aaa83f425e, go1.20.1 linux amd64, with advLayer packages: [grpcSimple ws] \n"}
{"L":"INFO ","T":"230301 024115.855","M":"Working at","dir":"/root/tmp"}
{"L":"DEBUG","T":"230301 024115.855","M":"All Given Flags","flags":{"c":"my string representation"}}
{"L":"INFO ","T":"230301 024115.855","M":"Options","Log Level":"debug","UseReadv":true}
{"L":"INFO ","T":"230301 024115.857","M":"Starting..."}
{"L":"INFO ","T":"230301 024115.860","M":"Listening","tag":"vless-grpc-tls-in","protocol":"tls+grpc+vless","listen_addr":"0.0.0.0:9443","defaultClient":"dual+direct","dial_addr":""}
{"L":"INFO ","T":"230301 024115.862","M":"Listening","tag":"vless-tcp-in","protocol":"tls+vless","listen_addr":"0.0.0.0:8443","defaultClient":"dual+direct","dial_addr":""}
{"L":"INFO ","T":"230301 024124.310","M":"New Accepted Conn","connid":998747,"from":"1.2.3.4:33558","handler":"tls+grpc+vless://0.0.0.0:9443/grpc_path#vless-grpc-tls-in"}
{"L":"WARN ","T":"230301 024124.576","M":"grpc Server got wrong path","path":"/.auth"}
{"L":"INFO ","T":"230301 024124.578","M":"GrpcSimple will fallback","path":"/.auth","method":"POST","raddr":"1.2.3.4:33558"}
{"L":"DEBUG","T":"230301 024124.578","M":"Fallback to default setting","addr":"/dev/shm/h2c.sock"}
{"L":"DEBUG","T":"230301 024124.584","M":"TryCopy","id":998747,"from":"http2.noBodyReader","->":"*netLayer.IOWrapper"}
{"L":"DEBUG","T":"230301 024124.584","M":"copying with classic method","id":998747}
{"L":"INFO ","T":"230301 024130.567","M":"Program got close signal."}
{"L":"INFO ","T":"230301 024130.567","M":"Stopping..."}
{"L":"DEBUG","T":"230301 024130.568","M":"netLayer.loopAccept, listener got closed","error":"accept tcp [::]:9443: use of closed network connection"}
{"L":"DEBUG","T":"230301 024130.568","M":"netLayer.loopAccept, listener got closed","error":"accept tcp [::]:8443: use of closed network connection"}Other 【其他】
由于超出了Github Issue的长度限制,nginx日志将在下面提供
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working