k8s nginx-ingress too large

问题:k8s nginx-ingress-controller Failed to upload report - 413: 413 Request Entity Too Large

413 Request Entity Too Large


nginx/1.13.9

解决:
kind: Ingress
metadata:
annotations:
nginx.ingress.kubernetes.io/proxy-body-size: 25m
creationTimestamp: 2017-11-10T21:52:14Z

只需在ingress 里添加
annotations:
nginx.ingress.kubernetes.io/proxy-body-size: 25m

问题:414 Request-URI Too Large
分析:
HTTP request的大小限制

对于一个HTTP request请求可以分为URI,HEADER,Body三个部分。
3.1 URI

HTTP协议中没有明确限制URI长度,但是浏览器和WEB服务器一般都会有限制。

浏览器限制

IE浏览器对URL的长度现限制为2048字节。
360极速浏览器对URL的长度限制为2118字节。
Firefox(Browser)对URL的长度限制为65536字节。
Safari(Browser)对URL的长度限制为80000字节。
Opera(Browser)对URL的长度限制为190000字节。
Google(chrome)对URL的长度限制为8182字节。

WEB服务器限制
以Nginx为例,在Nginx中,参数

large_client_header_buffers number size;
默认值:large_client_header_buffers 4 8k;

用来控制request的URI长度和header大小。

当request的URI长度超过size值时报414错误,当request的header超过size值时报400错误。
解决:经测试在ingress里添加annotations:
nginx.ingress.kubernetes.io/server-snippet: client_header_buffer_size 2046k;
是无效的。
正确做法:在nginx-nginx-ingress-controller的daemonset使用的configmap添加加粗行
“data”: {
“enable-vts-status”: “false”,
"large-client-header-buffers": "512 512k"
}
容器不需要重启则问题解决
参考:https://github.com/kubernetes/ingress-nginx/issues/1824
https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/configmap/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值