日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

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

發(fā)布時(shí)間:2024/8/23 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 nginx 上传 文件超时设置_Ingressnginx自定义配置文件 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

點(diǎn)擊上方藍(lán)色字體,關(guān)注我們

讀完需 8 分鐘

速讀需?4 分鐘

k8s集群默認(rèn)安裝的ingress-nginx直接投入測(cè)試或生產(chǎn)使用,其不合適的配置參數(shù)可能會(huì)導(dǎo)致一些訪問(wèn)報(bào)錯(cuò)。
例如:

  • “413 Request Entity Too Large”

  • “503 Service Unavailable”

此時(shí)我們就需要調(diào)整ingress-nginx的配置參數(shù)來(lái)解決問(wèn)題,有以下三種方式:

  • ConfigMap
    使用ConfigMap設(shè)置Nginx的全局配置文件

  • Annotations
    使用Annotations設(shè)置特定的Server的配置文件,如:某個(gè)hello.test.cn

  • Custom Template
    使用模板設(shè)置更多的特定Server的配置文件

在此只介紹下比較常見(jiàn)的ConfigMap、Annotations兩種方式。

需求

在此主要以解決以下兩個(gè)問(wèn)題為例:

  • “413 Request Entity Too Large”
    此問(wèn)題為上傳文件過(guò)大導(dǎo)致,nginx默認(rèn)限制為1M,可以通過(guò)調(diào)整client_max_body_size參數(shù)解決。

  • upstream超時(shí)
    upstream超市可能會(huì)導(dǎo)致502、503、504等問(wèn)題,nginx默認(rèn)超時(shí)時(shí)間為60s,可以通過(guò)設(shè)置proxy_read_timeout、proxy_connect_timeout、proxy_send_timeout參數(shù)解決。

  • ConfigMap

    1.?默認(rèn)配置

    默認(rèn)ingress-nginx的ConfigMap有以下三種并且數(shù)據(jù)都為空

    # 默認(rèn)的三種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都沒(méi)有Data設(shè)置,因此數(shù)據(jù)定義都為空;

    • nginx-ingress-controller分別引用nginx-configuration、 tcp-services、 udp-services三個(gè)ConfigMap。

    2.自定義設(shè)置
    調(diào)整參數(shù)我們需要選擇對(duì)應(yīng)的ConfigMap,經(jīng)過(guò)測(cè)試需要選擇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"# 應(yīng)用后,nginx會(huì)自動(dòng)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。

    • 經(jīng)測(cè)試,按照官網(wǎng)"https://kubernetes.github.io/ingress-nginx/examples/customization/custom-configuration/"設(shè)置,ConfigMap使用ingress-nginx-controller是不生效的,因?yàn)闆](méi)有ingress-nginx-controller這個(gè)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
    • 在此我將全局配置文件單獨(dú)列出,也可以將其合并到mandatory.yaml中。

    Annotations

    ConfigMap適用于全局配置,但是有時(shí)我們只需要針對(duì)某個(gè)特定的站點(diǎn)設(shè)置,此時(shí)就需要用到Annotations。

    例如:要對(duì)hello.test.cn 這個(gè)站設(shè)置client_max_body_size解決上傳文件太大問(wèn)題。

    # vim hellworld.yaml# 單獨(dú)設(shè)置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# 應(yīng)用# kubectl apply -f helloworld.yaml# 驗(yàn)證# kubectl exec -it nginx-ingress-controller-gmzq6 -n ingress-nginx -- cat /etc/ngclient_max_body_size????????????????????300m;

    此時(shí)client_max_body_size只針對(duì)hello.test.cn 這個(gè)server生效,其他server仍然使用的是全局配置文件。

    總結(jié)

    在ingress-nginx的配置文件/etc/nginx/nginx.conf中指定了Global filters、TCP services、UDP services區(qū)域,應(yīng)該分別對(duì)應(yīng)三個(gè)ConfigMap。

    熟悉了ingress-nginx的自定義配置后,我們就可以靈活修改配置參數(shù)了。

    k8s node節(jié)點(diǎn)停機(jī)維護(hù),pod如何遷移?

    K8S+Jenkins實(shí)現(xiàn)SpringBoot項(xiàng)目的CI/CD

    Jenkins擴(kuò)展共享庫(kù)進(jìn)階

    Ventoy:新一代多系統(tǒng)啟動(dòng)U盤(pán)解決方案

    面對(duì)中小企業(yè)的開(kāi)源運(yùn)維平臺(tái)spug

    Docker動(dòng)態(tài)構(gòu)建Jenkins Slave

    關(guān)注我們

    總結(jié)

    以上是生活随笔為你收集整理的nginx 上传 文件超时设置_Ingressnginx自定义配置文件的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。