如题,log:
2024/06/04 02:11:30 [error] 29#29: *2 writev() failed (104: Connection reset by peer) while sending request to upstream
现在发现好像是用 go-gin 作为后端在读到 header 里的 authorization 不对时就直接返回错误,导致 nginx 在文件 body 还没有上传完时就结束连接,返回 502 ,而不是 401
我目前的办法是强制要求后端读完 body,但是这样可能很慢,各位大佬有无直接配置 nginx 来解决这个问题的方法?
1
Red998 165 天前
大文件、断点续传? oss 一般都有方案吧
|
2
ayelky 165 天前
超时了吧,设置超时时间长一些不就可以了
|
4
ChovyChu 165 天前
盲猜跟 authorization 的校验有时效性有关
|
5
shinession 165 天前
client_max_body_size 512M;
OP 查下这个参数用法, 可以解决上传文件大小问题 |
6
ddddjent OP @shinession 我试了一下,这个是 client 给 nginx post 的 body 限制,好像不能解决 nginx 给上游反代服务器的问题
|
7
whileFalse 165 天前
你的意思是这玩意本来就应该报错,只是期望报错 401 实际报错 502 ?
感觉不是大问题,让前端 handle 一下好了。 另外要谨慎使用直接向网站上传大型文件的行为 |
8
shinession 165 天前
@ddddjent #6 上游的 nginx 设置这个参数?
|
9
ddddjent OP @shinession 上游是 gin ,不是 nginx ,设置不了
|
10
ddddjent OP |
11
wellerman 164 天前
nginx 的 buffer 小了吧
试试 client_body_buffer_size 20M; |
12
cmhu1023 164 天前
从经验来看,应该 buffer 小了。设置大点
|
13
zsj1029 164 天前
采用流式传输,go-gin 的问题,问题不是在 nginx 上感觉
|
14
wushenlun 164 天前 via Android
gin 发的 fin 或者 rst 导致 ngx502 ,超过 gin 限制了,一般是溢出问题
|