nginx-ingress-controller限制上传文件大小问题

背景

业务后端由nginx反向代理,前端需要上传大于1M的图片,上传失败,nginx响应413

处理

正常方法是修改nginx配置client_max_body_size,修改为0是不限制,或者改高一些比如20m
我修改后生效成功加载配置但是界面报错不变,nginx响应的413,请求未到后端服务,执行nginx -T配置是成功加载的

考虑到后端服务都会经过nginx-ingress-controller调度,这也是个nginx,但是网上nginx-ingress-controller都是部署在容器里面,我这项目是直接运行在服务器上,找不到执行的程序以及配置文件在哪
Alt text

经组内大佬指点在对应ingress中添加如下配置即可修改请求体大小限制
img
nginx.ingress.kubernetes.io/proxy-body-size: 100m

nginx.ingress.kubernetes.io/affinity: 用于指定后端服务的会话亲和性。默认为false。

nginx.ingress.kubernetes.io/affinity-mode: 用于指定会话亲和性的模式,可以是cookie或ip。

nginx.ingress.kubernetes.io/app-root: 用于指定应用程序的根路径。

nginx.ingress.kubernetes.io/auth-signin: 用于指定未经身份验证时的重定向URI。

nginx.ingress.kubernetes.io/auth-url: 用于指定身份验证服务的URL。

nginx.ingress.kubernetes.io/backend-protocol: 用于指定后端服务的协议。默认值为http。

nginx.ingress.kubernetes.io/enable-cors: 如果设置为true,则允许跨域资源共享。

nginx.ingress.kubernetes.io/from-to-www-redirect: 如果设置为true,则重定向所有从www域名请求的HTTP请求到非www域名的HTTPS。

nginx.ingress.kubernetes.io/ingress.class: 用于指定要使用的Ingress Controller类。

nginx.ingress.kubernetes.io/lb-method: 用于指定负载均衡方法。可以是wrr或ip_hash。

nginx.ingress.kubernetes.io/limit-connections: 用于限制连接数。

nginx.ingress.kubernetes.io/limit-rps: 用于限制每秒请求数。

nginx.ingress.kubernetes.io/limit-rpm: 用于限制每分钟请求数。

nginx.ingress.kubernetes.io/limit-whitelist: 用于指定白名单IP地址。

nginx.ingress.kubernetes.io/proxy-body-size: 用于限制客户端请求的大小。

nginx.ingress.kubernetes.io/proxy-connect-timeout: 用于指定连接超时时间。

nginx.ingress.kubernetes.io/proxy-read-timeout: 用于指定读取超时时间。

nginx.ingress.kubernetes.io/proxy-send-timeout: 用于指定发送超时时间。

nginx.ingress.kubernetes.io/real-ip-header: 用于指定真实IP地址的HTTP头。

nginx.ingress.kubernetes.io/redirect-to-https: 如果设置为true,则强制将HTTP请求重定向到HTTPS。

nginx.ingress.kubernetes.io/rewrite-target: 用于将请求重定向到另一个路径。

nginx.ingress.kubernetes.io/server-snippet: 用于指定要添加到Nginx服务器块的自定义配置。

nginx.ingress.kubernetes.io/ssl-redirect: 如果设置为true,则所有HTTP请求都将被重定向到HTTPS。

nginx.ingress.kubernetes.io/ssl-passthrough: 如果设置为true,则使用SSL透传。

nginx.ingress.kubernetes.io/ssl-protocols: 用于指定允许的SSL协议。

nginx.ingress.kubernetes.io/ssl-ciphers: 用于指定允许的SSL密码。

nginx.ingress.kubernetes.io/whitelist-source-range: 用于指定白名单IP地址。

posted @ 2024-01-19 17:09  大雄猫皮太痒  阅读(227)  评论(1编辑  收藏  举报