如何修复大型标头上的 Nginx 502 错误网关?

mat*_*gan 6 http nginx uwsgi

我有一个在 Nginx 代理后面运行的 Django REST Framework 应用程序,我们有一个第三方服务,可以重定向到应用程序中的一个 url。当重定向发生时,我从这个端点收到 502s,并将其缩小到 Referer 标头太大。我的逻辑如下:

  • 重定向发生时收到 502
  • 使用所有查询参数在本地点击链接返回预期的响应
  • 添加 Referer 标头(非常大)会触发 502
  • 删除一半的 Referer 标头使我们返回到预期的结果

我试过增加我的 uwsgi 缓冲区大小和 nginx 代理缓冲区。

mat*_*gan 7

经过数小时尝试不同的东西后,原因实际上是 uwsgi 缓冲区大小不够高,即使我已经将它增加了四倍。对于那些不知道的人,您需要添加:

buffer-size=32768
Run Code Online (Sandbox Code Playgroud)

其中数字是适用于您的用例的一些字节数。默认值为 4096。