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,一经查实,立即删除!

相关文章

在 sysservers 中找不到服务器,在 sys.servers 中找不到服务器的解决办法,自己解决的...

一开始提示,在服务器中找不到在 sys.servers 中找不到服务器 QPAccountsDBLink,先用select * from sys.servers ,发现只能查到一个服务器名称,后来自己电脑里保存了一些链接脚本,只需改几个地方-- 变量定义DECLARE DB…

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添花的时候可能会糊涂的不知所措。一、块级元素块元素会独自占据一整行,或者多行,可以任意设置其大小尺寸,是用于搭建网页布局的必须部分,使网页结构更加紧…

计算机在运行 显示器出现黑屏,显示器黑屏但电脑一直在运行是什么原因

大家好,我是时间财富网智能客服时间君,上述问题将由我为大家进行解答。显示器黑屏但电脑一直在运行的原因是:1、可能是主机和显示器的连线接触不良(特别是接口处没有插好或者松动),还有可能连接的数据线出现问题,所以才…

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

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

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

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

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

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

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

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

python数据挖掘分析案例python_Python 数据挖掘实例 决策树分析

友情提示:此篇文章大约需要阅读 7分钟57秒,不足之处请多指教,感谢你的阅读。安装Anaconda Python集成环境下载环境anaconda下载选择安装环境下载过程中使用默认,但有一个页面需要确认,如下图。anaconda选择页面第一个勾…

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

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

mysql日志监控 zabbix_zabbix监控mysql哪些性能

匿名用户1级2017-09-27 回答一、从网上下载相应脚本与XML定义文件。extensive_mysql_monitoring_including_replication1.   Template_MySQL_Server.xml2.   Template_MySQL_Replication_Master.xml3.   Template_MySQL_Replication_Slave&#xf…

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

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

已通过os信号请求关闭服务器,redis(一)内部机制的介绍和启动过程

redis(一)内部机制的介绍和启动过程redis的基本介绍redis服务端redis客户端redis的持久化redis中的文件事件和时间时间redis的启动过程redis的基本介绍redis是一种非关系型数据库,采用key,value的形式来存储数据。key是二进制数据,对于value的…

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

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

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

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

nginx文件服务器密码登录,风的方向

说明很多时候我们服务器上的页面或者服务可能没有安全配置,使得服务开放的暴露在互联网中,很不安全。nginx可以给我们提供密码配置,来保护我们的服务器上的服务的安全性。配置nginx配置文件在需要配置密码的服务的相关nginx配置文件中的locat…

selenium python下载_使用Selenium、Chrome和Python下载PDF

我试着按照前面关于这个主题的文章来写,比如这些(post 1,post 2),但是我还是被卡住了。我的脚本必须使用一组凭据登录到站点,然后通过一些下拉菜单导航以选择报表。选择报表后,将弹出一个新窗口,在该窗口中…

劲乐团u显示服务器维护,劲乐团9YOU原版服务端架设教程

我来做一个o2jam的服务端架设教程,希望新手能有点帮助相信你已经全的数据库文件了,其实只要里面的三个就可以了test2...o2jamtrade---onlinereport那么GO了.首先确定你已经安装好了MSSQL.如果没有.........那就先安装下......企业版安装在SQL服务器的安装盘中找到MS…

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

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

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

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