Nginx 反向代理的 Bug

之前写 spmjs.org 时,在未登录时,上传文件会超时,一直不知道原因,因为裸服务器时是 OK 的。

今天终于发现原因了,如果后端没有读 request 的 body,Nginx 就会出问题,例如:

@app.route('/', methods=('PUT',))
def home():
    return 'ok'

当 PUT 一个数据流时,裸服务器是能返回 ok 的结果的,但是如果前面有 Nginx 做 proxy 的话,则没返回值。

如果,我们读一下 request 的 body,Nginx 做 proxy 也会返回值了:

@app.route('/', methods=('PUT',))
def home():
    len(request.data)
    return 'ok'

不知何故。

2 comments