如何增加 nginx 入口控制器和 kong 的最大请求体大小
How to increase max request body size on nginx ingress controller and kong
我有一项服务接受正文中带有 base64 编码文件的 POSTs。我目前正在
Error: 413 Request Entity Too Large
当我 POST 任何大于 1MB 的东西时,否则它工作正常。
我的设置有 kong 代理服务。我通过稳定的 kong helm chart 安装了代理入口的以下注释:
kubernetes.io/ingress.class: "nginx"
ingress.kubernetes.io/ssl-redirect: “true”
ingress.kubernetes.io/proxy-body-size: 50m
我还将此添加到 kong env 值中:
client_max_body_size: 0
我的理解是这应该更新 nginx.conf
Kong 前面有一个 nginx-ingress,我用 stable helm chart 安装了它。对于我设置的入口控制器:
--set controller.config.proxy-body-size: "50m"
但是 none 这些设置有效。查看入口控制器的 pod 日志,我看到:
2019/08/02 15:01:34 [warn] 42#42: *810139 a client request body is buffered to a temporary file /tmp/client-body/0000000014, client: 1X.XXX.X0.X, server: example.com, request: "POST /endpoint HTTP/1.1", host: "example.com"
以及kong pod中对应的日志:
2019/08/02 15:01:39 [warn] 33#0: *1147388 a client request body is buffered to a temporary file /usr/local/kong/client_body_temp/0000000017, client: XX.XXX.XXX.XX, server: kong, request: "POST /ENDPOINT HTTP/1.1", host: "example.com"
10.120.20.17 - - [02/Aug/2019:15:01:39 +0000] "POST /endpoint HTTP/1.1" 413 794 "-" "PostmanRuntime/7.15.2"
我是否遗漏了其他设置,或者我做错了什么?我怎样才能让它按预期工作。
- 如果我只是 POST 直接使用它的 IP 到 pod,不涉及入口控制器,我会得到相同的 413 错误。 kubernetes 是否有一个默认入口也需要更改?
注释似乎工作正常。我受到 运行 的限制是因为我正在测试的代码是在 kubeless 中。 kubeless 函数使用 bottle,入口限制在 bottle 上。我在 kubeless 的自定义 python3.7 图像中增加了它,并且一切正常。
我有一项服务接受正文中带有 base64 编码文件的 POSTs。我目前正在
Error: 413 Request Entity Too Large
当我 POST 任何大于 1MB 的东西时,否则它工作正常。
我的设置有 kong 代理服务。我通过稳定的 kong helm chart 安装了代理入口的以下注释:
kubernetes.io/ingress.class: "nginx"
ingress.kubernetes.io/ssl-redirect: “true”
ingress.kubernetes.io/proxy-body-size: 50m
我还将此添加到 kong env 值中:
client_max_body_size: 0
我的理解是这应该更新 nginx.conf
Kong 前面有一个 nginx-ingress,我用 stable helm chart 安装了它。对于我设置的入口控制器:
--set controller.config.proxy-body-size: "50m"
但是 none 这些设置有效。查看入口控制器的 pod 日志,我看到:
2019/08/02 15:01:34 [warn] 42#42: *810139 a client request body is buffered to a temporary file /tmp/client-body/0000000014, client: 1X.XXX.X0.X, server: example.com, request: "POST /endpoint HTTP/1.1", host: "example.com"
以及kong pod中对应的日志:
2019/08/02 15:01:39 [warn] 33#0: *1147388 a client request body is buffered to a temporary file /usr/local/kong/client_body_temp/0000000017, client: XX.XXX.XXX.XX, server: kong, request: "POST /ENDPOINT HTTP/1.1", host: "example.com"
10.120.20.17 - - [02/Aug/2019:15:01:39 +0000] "POST /endpoint HTTP/1.1" 413 794 "-" "PostmanRuntime/7.15.2"
我是否遗漏了其他设置,或者我做错了什么?我怎样才能让它按预期工作。
- 如果我只是 POST 直接使用它的 IP 到 pod,不涉及入口控制器,我会得到相同的 413 错误。 kubernetes 是否有一个默认入口也需要更改?
注释似乎工作正常。我受到 运行 的限制是因为我正在测试的代码是在 kubeless 中。 kubeless 函数使用 bottle,入口限制在 bottle 上。我在 kubeless 的自定义 python3.7 图像中增加了它,并且一切正常。