我正在尝试更改该client_max_body_size值,因此我的nginx入口不会返回413错误.
我测试了一些解决方案.
这是我的测试配置图:
kind: ConfigMap
apiVersion: v1
data:
proxy-connect-timeout: "15"
proxy-read-timeout: "600"
proxy-send-timeout: "600"
proxy-body-size: "8m"
hsts-include-subdomains: "false"
body-size: "64m"
server-name-hash-bucket-size: "256"
client-max-body-size: "50m"
metadata:
name: nginx-configuration
namespace: ingress-nginx
labels:
app: ingress-nginx
Run Code Online (Sandbox Code Playgroud)
这些更改完全没有效果,加载后,在nginx控制器日志中我可以看到有关重新加载配置图的信息,但是nginx.conf中的值是相同的:
root@nginx-ingress-controller-95db685f5-b5s6s:/# cat /etc/nginx/nginx.conf | grep client_max
client_max_body_size "8m";
client_max_body_size "1m";
client_max_body_size "1m";
client_max_body_size "1m";
client_max_body_size "1m";
client_max_body_size "1m";
client_max_body_size "1m";
client_max_body_size "1m";
client_max_body_size "1m";
client_max_body_size "1m";
client_max_body_size "1m";
client_max_body_size "1m";
client_max_body_size "1m";
Run Code Online (Sandbox Code Playgroud)
我的nginx-controller配置使用这个图像:quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.13.0
如何强制nginx更改值?对于我所有的进入,我需要在全局范围内进行更改.
Ant*_*nko 33
您可以使用注释 nginx.ingress.kubernetes.io/proxy-body-size在Ingress对象中设置max-body-size选项,而不是更改基本ConfigMap.
以下是使用示例:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: my-app
annotations:
nginx.ingress.kubernetes.io/proxy-body-size: "50m"
...
Run Code Online (Sandbox Code Playgroud)
小智 30
nginx.ingress.kubernetes.io/proxy-body-size这里对于正确的注释是否是或存在混淆nginx.org/client-max-body-size。答案是,可能是!
在每个参与者无懈可击的智慧中,世界上存在两种不同的“NGINX入口”。很难分辨你正在运行哪一个,谷歌搜索在区分这里没有什么用处(但有什么新功能)。
如果您使用官方 NGINX Ingress,则正确的注释位于:https: //docs.nginx.com/nginx-ingress-controller/configuration/ingress-resources/advanced-configuration-with-annotations/
如果您使用的是基于 NGINX 的官方 Kubernetes Ingress,则正确的注释是这样的:https: //kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/#custom-max-body-size
如果您的入口实现的 Docker 镜像名称是,k8s.gcr.io/ingress-nginx/controller那么您正在使用官方 Kubernetes 版本。通过排除法,您可以确定您是否正在使用 NGINX 实现。
我希望每个造成这种混乱状态的人都有一个非常糟糕的一天。你们其余的人……保持乐观!
也许最近有人被困在这里。我们刚刚发现该注释nginx.ingress.kubernetes.io/proxy-body-size不再被应用,正确的注释是:
annotations:
nginx.org/client-max-body-size: "999m"
Run Code Online (Sandbox Code Playgroud)
希望这对其他人有帮助。
小智 6
要进行全局设置,此configmap.md文档可能会有所帮助。原来要设置的变量是proxy-body-size,不是client-max-body-size。
部署舵图时,可以设置--set-string controller.config.proxy-body-size="4m"。
小智 6
更新:
我也遇到过同样的问题,但没有任何解决方案有效。在阅读了无数博客和文档后,所有这些博客和文档都有相同的建议解决方案,我发现他们已经改变了命名约定。
它不再用“proxy-body-size”表示,或者这对我来说永远不起作用。
下面的链接显示要使用的正确 configmap 变量是“client-max-body-size”
| 归档时间: |
|
| 查看次数: |
7620 次 |
| 最近记录: |