当前位置: 首页 > 知识库问答 >
问题:

Nginx入口控制器502坏网关大文件上传

姚臻
2023-03-14

我们最近从nginx入口控制器从0.8.2升级到0.11.0,并开始在大约10 MB或更高的大文件上传时出现502个坏网关错误,我们已将client_max_body_size设置为通过confimap中的proxy-body size500m并验证其设置。5-6 MB左右的较小文件工作正常。

日志中没有错误,只有这些消息。

修订-[修订]-[2018年3月25日:02:08:49 0000]“发布/修订/上传HTTP/1.1”000 0”https://redacted/“”Mozilla/5.0(Windows NT 10.0;Win64;x64)AppleWebKit/537.36(KHTML,像Gecko)Chrome/65.0.3325.181 Safari/537.36“3371263 10.850[上传器443]----

[警告] 30684#30684: *42090客户端请求正文被缓冲到临时文件 /var/lib/nginx/body/0000000482,客户端:已编辑,服务器:已编辑,请求:POST /redacted/uploadHTTP/1.1,主机:已编辑,引用者:https://已编辑/

代理服务器是tomcat,请求不会到达tomcat。我们尝试增加:

  • 超时
  • 代理缓冲区
  • proxy\u buffer\u大小

但什么都没起作用。

回到0.8.2版本解决了这个问题。

更新1:nginx。配置代码段

位置 /redacted/{

port_in_redirect;

设置$proxy\u upstream\u name“redacted-443”;

....

....

client\u max\u body\u size“500m”;

共有3个答案

裴昕
2023-03-14

我建议使用configmap设置:

  body-size: "1024m"
  proxy-body-size: "1024m"

下面是一个完整的示例:https://github.com/mateothegreat/k8-byexamples-ingress-controller/blob/master/manifests/configmap.yaml

要将配置映射应用于入口控制器部署,您需要将其作为参数传递给容器,例如:https://github.com/mateothegreat/k8-byexamples-ingress-controller/blob/master/manifests/controller-deployment.yaml#L59

孟树
2023-03-14

您是否验证了生成的nginx.conf以查看是否实际设置了值?我在入口配置本身中使用了the,它可以工作(版本0.11也是如此)

东郭勇
2023-03-14

看起来您可能需要为所有入口规则在全局范围内设置更大的文件大小。

这可以通过使用代理车身尺寸参数来实现,即:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    nginx.ingress.kubernetes.io/proxy-body-size: 20mb
.... 

之后,它应该适用于大于10MB的文件。

 类似资料:
  • null service-configuration-file.yml ingress-configuration-file.yml(基于主机的路由) 我遵循了以下步骤: 输出结果是: 不幸的是,当我试图在浏览器上访问Dash应用程序时,我从Nginx得到了一个502坏网关错误。你能帮帮我吗?因为我的Kubernetes知识有限。提前谢了。

  • 我的nginx.conf文件是这样的: 现在,在打开一些URL时,它抛出了502个坏网关,但对其他URL则没有。我犯的错误。日志为: 2019/01/10 23:53:39[错误]12139#12139:*5 recv()在从上游读取响应头时失败(104:由对等方重置连接),客户端:127.0。0.1,服务器:localhost,请求:“GET/wordpress/HTTP/2.0”,上游:fas

  • 502网关错误。错误日志和nginx配置如下。有什么问题吗? [错误]7660#0:*10 connect()在连接到上游时失败(111:连接被拒绝),客户端:40.83。126.181,服务器:127.0。0.1,请求:“GET/HTTP/1.1”,上游:fastcgi://127.0.0.1:9000,主持人:“www.mysite.com” nginx。形态: vhost/home.conf

  • 我在K8S集群中面临一个奇怪的问题 基本上我有两个应用程序: identity manager(基于WSO2,但该问题与WSO2无关) 将管理X509身份验证的外部SAML2 IDP 为了使用这个外部SAML2 IDP,我配置了WSO2 当我尝试通过X509登录时,WSO2显示登录页面,我单击智能卡,重定向到外部SAML IDP。 在这种情况下,nginx入口为我提供了502个坏网关。如果我复制U

  • 好的,我正在本地运行一个应用程序,homestead.app:8000。我正在运行流浪,这是在我“流浪停止”为Nginx更改文档根然后流浪后才开始发生的。 Nginx正在将502坏网关返回到浏览器,我的测试域的错误日志声明如下: 2014/05/18 21:37:11[crit] 1368#0:*7连接()到unix:/var/run/php5-fpm.sock失败(2:没有这样的文件或目录),同

  • 我用Ired邮件和两个网站成功地运行了Ubuntu服务器20.04,其中一个是WordPress。 我想安装Nextcloud,为此我必须重新安装php fpm以生成php7。4-fpm。短袜在这之后,Nextcloud工作了,但是我的其他网站停止了工作,出现了错误“502坏网关”。 所以至少可以说,我很困惑! 我根据本文安装了Nextcloud并设置了启用的站点。符合说明的conf文件:http