在我的群集上,我试图上传一个大文件,但当我尝试时,我得到413 Error
error parsing HTTP 413 response body: invalid character '<' looking for beginning of value: "<html>\r\n<head><title>413 Request Entity Too Large</title></head>\r\n<body>\r\n<center><h1>413 Request Entity Too Large</h1></center>\r\n<hr><center>nginx/1.19.3</center>\r\n</body>\r\n</html>\r\n"
我知道这是由nginx的默认参数引起的,我需要覆盖它。在文档中,我发现这可以通过两种方式完成:
1.在入口配置上使用注解
1.使用configMap
两种方法我都试过了,没有结果。
以下是我的YAML:ingress.yml
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/proxy-body-size: "700m"
name: nginx-ingress
spec:
rules:
- host: example.com
http:
paths:
- backend:
serviceName: nginx-service
servicePort: 80
path: /
configmap.yml:
apiVersion: v1
data:
proxy-body-size: "800m"
kind: ConfigMap
metadata:
name: ingress-nginx-controller
labels:
app.kubernetes.io/name: nginx-ingress
app.kubernetes.io/part-of: nginx-ingress
8条答案
按热度按时间zour9fqk1#
对于未来的搜索,它为我工作:
yqlxgs2m2#
对于NGINX,当请求中的大小超过客户端请求体的最大允许大小时,将向客户端返回413错误。此大小可通过参数配置
为了针对所有Ingress规则全局地配置该设置,可以在NGINX ConfigMap中设置代理主体大小值。要在Ingress规则中使用自定义值,请定义以下注解:
https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/#custom-max-body-size
对于node.js,您可以设置
332nm8kg3#
我在GKE上使用Nginx Ingress时遇到了同样的问题。
以下是对我有用的注解:
别忘了为你输入正确的值。
有关更多详细信息,您可以查看这些文档:
1.使用注解
1.客户端最大正文大小
PS我已经在this tutorial后面安装了“Nginx Ingress Controller”。
0yycz8jy4#
这里已经有一些很好的答案来避免
413
。例如,使用以下注解编辑Ingress(更好的重新部署):
此外,对于NGINX,当请求中的大小超过客户端请求体的最大允许大小时,将向客户端返回413错误。此大小可以通过参数
client_max_body_size
参考配置。carvr3hs5#
下面的配置为我工作:
参考:https://github.com/kubernetes/ingress-nginx/issues/4825
zpjtge226#
在设置此设置时,需要考虑以下几点:
1.最好重新创建Ingress对象,而不是编辑它,以确保配置将被正确加载。删除Ingress并使用适当的注解重新创建它。
1.如果仍然不起作用,您可以尝试使用ConfigMap方法,例如:
1.请注意,将size设置为
0
将禁用对客户端请求正文大小的检查。1.请记住将该值设置为大于您尝试推送的数据大小。
1.根据您的Kubernetes版本使用适当的
apiVersion
。请注意:Ingress的
extensions/v1beta1
和networking.k8s.io/v1beta1
API版本将不再在v1.22中提供。networking.k8s.io/v1
API版本(自v1.19
起可用)。kt06eoxx7#
也许我的经验可以帮助别人。我在nginx中的所有设置都是OK的,但nginx在代理模式下站在CloudFlare后面。因此,请尝试将其设置为“仅DNS”,以确保您和nginx之间没有任何内容。
piah890a8#
以上设置在AKS nginx上适用。零意味着没有限制,如果用户想要应用上传限制,只需将0替换为所需的限制,如150m。