环境为nginx+uwsgi.

在某些GET请求上从Nginx获取502错误网关.似乎与URL的长度有关.在我们的例子中,有一长串GET参数.缩短GET参数,无502错误.

来自nginx/错误.日志(log)

[error] 22113#0: *1 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 192.168.1.100, server: server.domain.com, request: "GET <long_url_here>"

uwsgi错误日志(log)中没有信息.

推荐答案

在这上面花了很多时间之后,我终于想明白了.有很多关于Nginx和对等体重置连接的引用.其中大部分似乎与PHP有关.我找不到一个专门针对nginx和uwsgi的答案.

我终于找到了对fast cgi的引用和502错误网关(https://support.plesk.com/hc/en-us/articles/213903705).这导致我在uwsgi配置中查找缓冲区大小限制,该限制为buffer-size.默认值为4096.从文档中看,它说:

如果您计划接收包含大量头的大请求,可以将该值增加到64k(65535).

配置uwsgi的方法有很多种,我碰巧使用了一个.ini文件.因此,在我的.ini文件中,我try 了:

buffer-size=65535

这解决了问题.你可以根据口味来调整.也许从最大值开始,然后再返回,直到得到一个可接受的值,或者只是将其保留在最大值.

这是令人沮丧的追踪,因为在uwsgi方面没有错误.

Django相关问答推荐

使用序列化器获取Django ORM auth_user. id数据

如何创建为模型创建信号的Djangodecorator ?

如何根据递归ManyToManyField值创建Django查询集?

Django-表单(ModelForm)中的数据不保存在现有数据库中

访问默认的 django-allauth 登录和注册页面时出现 TemplateSyntaxError

如何将多个模型添加到单个列表视图?

Django 转储数据将附加数据添加到 json 导出

在 python 视图中检测移动浏览器

可插拔应用程序的Django默认设置约定?

在 Django CharFields 中自动截断 max_length 字段

Django,如何从模型表单的 Select 字段中删除空白 Select ?

使用 XMLHttpRequest 提示下载文件

如何按名称设置 django 模型字段?

base.html 中的 Django 变量

Django -- User.DoesNotExist 不存在?

Django模型字段按变量

刷新时重新提交的django表单

Django:如何将数据保存到 ManyToManyField?

django 如何知道已经运行了哪些迁移?

Django 用户配置文件