nginx 上传 文件超时设置_Ingressnginx自定义配置文件

95e04cfb0502fe95b0c2ca80bf0763ba.gif

点击上方蓝色字体,关注我们

读完需 8 分钟

速读需 4 分钟

5ca9dc7504b9cd8e0090ec0cd08ec4ff.png

k8s集群默认安装的ingress-nginx直接投入测试或生产使用,其不合适的配置参数可能会导致一些访问报错。
例如:

  • “413 Request Entity Too Large”

  • “503 Service Unavailable”

此时我们就需要调整ingress-nginx的配置参数来解决问题,有以下三种方式:

  • ConfigMap
    使用ConfigMap设置Nginx的全局配置文件

  • Annotations
    使用Annotations设置特定的Server的配置文件,如:某个hello.test.cn

  • Custom Template
    使用模板设置更多的特定Server的配置文件

在此只介绍下比较常见的ConfigMap、Annotations两种方式。

需求

在此主要以解决以下两个问题为例:

  1. “413 Request Entity Too Large”
    此问题为上传文件过大导致,nginx默认限制为1M,可以通过调整client_max_body_size参数解决。

  2. upstream超时
    upstream超市可能会导致502、503、504等问题,nginx默认超时时间为60s,可以通过设置proxy_read_timeoutproxy_connect_timeoutproxy_send_timeout参数解决。

ConfigMap

1. 默认配置

默认ingress-nginx的ConfigMap有以下三种并且数据都为空

# 默认的三种ConfigMap# kubectl get cm -n ingress-nginxNAME                              DATA   AGEingress-controller-leader-nginx   0      10dnginx-configuration               0      10dtcp-services                      0      10dudp-services                      0      10d# ConfigMap定义# vim mandatory# 截取ConfigMap部分---kind: ConfigMapapiVersion: v1metadata:  name: nginx-configuration  namespace: ingress-nginx  labels:    app.kubernetes.io/name: ingress-nginx    app.kubernetes.io/part-of: ingress-nginx---kind: ConfigMapapiVersion: v1metadata:  name: tcp-services  namespace: ingress-nginx  labels:    app.kubernetes.io/name: ingress-nginx    app.kubernetes.io/part-of: ingress-nginx---kind: ConfigMapapiVersion: v1metadata:  name: udp-services  namespace: ingress-nginx  labels:    app.kubernetes.io/name: ingress-nginx    app.kubernetes.io/part-of: ingress-nginx

其中:

  • 三种ConfigMap都没有Data设置,因此数据定义都为空;

  • nginx-ingress-controller分别引用nginx-configuration、 tcp-services、 udp-services三个ConfigMap。

2.自定义设置
调整参数我们需要选择对应的ConfigMap,经过测试需要选择nginx-configuration。

# vim global_configmap.yaml# ingress-nginx 全局配置文件apiVersion: v1kind: ConfigMapmetadata:  name: nginx-configuration  namespace: ingress-nginx  labels:    app.kubernetes.io/name: ingress-nginx    app.kubernetes.io/part-of: ingress-nginxdata:  proxy-connect-timeout: "300"  proxy-read-timeout: "300"  proxy-send-timeout: "300"  proxy-body-size: "200m"# 应用后,nginx会自动reload生效kubectl apply -f global_configmap.yaml# 检查配置文件kubectl exec -it nginx-ingress-controller-gmzq6 -n ingress-nginx -- cat /etc/nginx/nginx.conf

注意:

  • 使用nginx-configuration,而不是tcp-services和udp-services。

  • 经测试,按照官网"https://kubernetes.github.io/ingress-nginx/examples/customization/custom-configuration/"设置,ConfigMap使用ingress-nginx-controller是不生效的,因为没有ingress-nginx-controller这个ConfigMap,需要使用nginx-configuration。

$ cat configmap.yamlapiVersion: v1data:  proxy-connect-timeout: "10"  proxy-read-timeout: "120"  proxy-send-timeout: "120"kind: ConfigMapmetadata:  name: ingress-nginx-controller
  • 在此我将全局配置文件单独列出,也可以将其合并到mandatory.yaml中。

Annotations

ConfigMap适用于全局配置,但是有时我们只需要针对某个特定的站点设置,此时就需要用到Annotations。

例如:要对hello.test.cn 这个站设置client_max_body_size解决上传文件太大问题。

# vim hellworld.yaml# 单独设置IngressapiVersion: extensions/v1beta1kind: Ingressmetadata:  name: helloworld  namespace: test  annotations:    nginx.ingress.kubernetes.io/proxy-body-size: 300mspec:  rules:    - host: hello.test.cn      http:        paths:          - path: /            backend:              serviceName: helloworld              servicePort: 8080# 应用# kubectl apply -f helloworld.yaml# 验证# kubectl exec -it nginx-ingress-controller-gmzq6 -n ingress-nginx -- cat /etc/ngclient_max_body_size                    300m;

此时client_max_body_size只针对hello.test.cn 这个server生效,其他server仍然使用的是全局配置文件。

总结

在ingress-nginx的配置文件/etc/nginx/nginx.conf中指定了Global filtersTCP servicesUDP services区域,应该分别对应三个ConfigMap。

熟悉了ingress-nginx的自定义配置后,我们就可以灵活修改配置参数了。

b6c98cf562ebbefdc6d993933d04d409.gif

k8s node节点停机维护,pod如何迁移?

K8S+Jenkins实现SpringBoot项目的CI/CD

Jenkins扩展共享库进阶

Ventoy:新一代多系统启动U盘解决方案

面对中小企业的开源运维平台spug

Docker动态构建Jenkins Slave

关注我们508458cd29bb84989f36691fa34e1ecf.png75bfbed69a4897b5cf5527ec7472831b.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/506228.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

fiddler安装_Fiddler的安装和APP抓包

点击上方“蓝字”关注我们吧!前言1.Fiddler安装包2.安卓手机3.iOS手机1.下载fiddler软件:可以去官网下载https://www.telerik.com/fiddler,可以下载最新版2.百度云盘(非最新版):链接:https://pan.baidu.com/s/10XVzoxw…

div中的p标签于img设置同一水平_前端工程师:css中一些需要注意的东西

html标签有三大性质,如果不清楚这些东西,在使用css添花的时候可能会糊涂的不知所措。一、块级元素块元素会独自占据一整行,或者多行,可以任意设置其大小尺寸,是用于搭建网页布局的必须部分,使网页结构更加紧…

python用电度数设计_用Python实现一个爬取XX大学电费通知的小脚本

内容简要 1分析网站 2简单爬取 3进阶自定义爬取 4保存进数据库 学校基础设施太差,宿舍电量过低提醒虽然贴在楼下,但是作为低头一族,经常忘记看提醒导致宿舍酣战时突然黑屏,为了避免这种尴尬的场景以及强化PY学习,我决定…

钉钉如何调整组织架构_阿里调整组织架构:盒马升级为独立事业群,钉钉被划进阿里云丨钛快讯...

钛媒体6月18日消息,阿里巴巴集团CEO张勇通过全员信宣布了阿里新一轮面向未来的组织升级。他表示这次升级的主要目的是:充实创新业务的领导力量和组织保障;明确大文娱一号位,聚焦大文娱各业务的紧密融合;实现战略投资业…

服务器监控系统大概多少钱,服务器监控系统 报价

服务器监控系统 报价 内容精选换一换设置“云服务器名称”。名称可自定义,但需符合命名规则:只能由中文字符、英文字母、数字及“_”、“-”、“.”组成。如果同时购买多台弹性云服务器,系统会自动按序增加后缀。一次创建多台弹性云服务器时&…

过去式加ed的发音_【思语小课堂】时态二三事:规则动词过去式的发音规则

在一个简单句中,通常有主语,谓语,及宾语或表语等成分,例如:They watch television.这句话中,主语是they,谓语动词watch,television是宾语。除了这些成分会决定句子的含义&#xff0c…

服务器开机显示f1 f2,开机提示按F1/F2才能进入系统的解决方法

电脑开机出现了一个怪现象,那就是每次开机的时候都会有“F1”或者是“F2”的提示,并且要按一下才能正常进入系统,该怎么解决呢?下面秋叶系统小编教大家解决办法!下图为开机按F1键才能正常进入系统的画面!下…

apache httpclient 工具类_HttpClient 和Mycat 主从节点和读写分离

第175次(HttpClient)学习主题:HttpClient学习目标:1 掌握HttpClient自定义工具以及HttpClient具体的使用对应视频: http://www.itbaizhan.cn/course/id/85.html对应文档:无对应作业1. HttpClient自定义工具类的使用(1) 如何编写一个HttpClient工具类&…

datalist可以放div吗?_混凝土中能放竹子吗?可以代替钢筋吗?为何打地坪混凝土放竹子?...

大家好,我是专注家居和装修知识分享的家居杂坛。喜欢的就点击一下关注吧!对于在地面上所浇筑的混凝土,常规有两种做法。例如,在混凝土中铺设钢筋,打成钢筋混凝土的地面,又或者还有一些朋友在钢混凝土中放入…

snmp协议_软件评测师写作专栏之OSI七层模型及其常见的协议11

各位学员大家好,大家在学习计算机网络的时候,OSI七层模型及其常见的协议是必考的内容。为了让大家快速掌握这方面的知识点,接下来就带领大家一起来学习一下!例题:下面的协议中属于应用层协议的是( 1 ),该协…

linux部署tomcat项目404_一个tomcat下部署多个项目或一个服务器部署多个tomcat

点击上方[全栈开发者社区]→右上角[...]→[设为星标⭐]♪ 点击上方绿标 收听一个tomcat下部署多个项目或一个服务器部署多个tomcat最近需要把两个项目同时部署到服务器上,于是研究了一下,页借鉴了很多别人的方法,把过程记录下来,以…

科学计数法_第一章 科学计数法与近似数

生活中,我们常常遇到一些较大的数,如10000000、3450000000等.利用科学计数法表示某些较大的数可以免去一些不必要的麻烦,尤其是遇到一些乘法运算时,如20000000245000000.科学记数法表示数时,不改变数的符号&#xff0c…

# 傅立叶变换 画曲线_让你永远忘不了的傅立叶变换解析

使用联想链条和几何直观,辅以从实际需求衍生概念的思考模式,详解什么是傅立叶变换,为什么要做傅立叶变换等,帮助记忆和理解,目的当然是标题所说:让你永远忘不了傅立叶变换这个公式。另,这篇博客…

找不到天隆虚拟机_玩转虚拟机,教你如何装系统

最近小白系统收到很多小伙伴的私信想要知道虚拟机如何安装系统,那么今天小白系统整理了下虚拟机安装系统的教程,下面一起看下吧。虚拟机安装系统适合什么人群呢?1、如果你新买的电脑不支持安装Win7系统,那么装个虚拟机吧&#xff…

从数据类型 nvarchar 转换为 numeric 时出错_JS入门篇(三):javascript的数据类型详解...

JavaScript的数据类型分为两大类,基本数据类型和复杂数据类型。基本数据类型:Undefined、Null、Boolean、Number、String。复杂数据类型:Object。(1)Undefined类型Undefined 类型只有一个值,即特殊的 undefined。在使用 var 声明变…

为啥我的页面模板的from提交不了数据_4-9【微信小程序全栈开发课程】意见反馈(四)--提交反馈信息

1、创建后端操作文件先在后端server/controllers文件夹中创建操作文件createopinion.js,用来将从前端页面提交的数据,插入到opinions表中,创建完之后,页面目录如下2、添加路由在路由管理文件server/routes/index.js文件中添加路由…

rac一节点时间比另一个节点快_数据库数据那么多为什么可以检索这么快?

你好,是我琉忆。经常跟数据打交道的你,有没有去考虑过数据上百万,为什么它可以检索那么快?一说到数据库的检索速度这么快,我想你一定想到了索引。没错,今天我们来简单聊聊索引,聊聊索引是什么&a…

唯有自己变得强大_真正的自立,唯是让自己变得更加强大

更大的成功,不是看我们用双腿走了多少路,而是要看我们总共行了多少路。一只萤火虫,靠自身的力量发出了光芒。夜晚,它仰头望天,对着月亮说:“我是靠自己而发光的,而你却是借助太阳的光芒。虽然你…

mysql必知必会_MySQL必知必会

MySQL必知必会联结的使用, 子查询, 正则表达式和基于全文本的搜索, 存储过程, 游标, 触发器, 表约束.了解SQL数据库基础电子邮件地址薄里查找名字时, 因特网搜索站点上进行搜索, 验证名字和密码, 都会用到数据库.数据库是一个以某种有组织的方式存储的数据集合.把数据库想象成一…

vm虚拟机安装_虚拟机 --- 安装VM(一)

虚拟机(英语:virtual machine),在计算机科学中的体系结构里,是指一种特殊的软件,可以在计算机平台和终端用户之间创建一种环境,而终端用户则是基于这个软件所创建的环境来操作软件。虚拟机最初由…