一、ingress Rule

描述:通常我们需要为单个业务进行相应调优配置, 此时我们就需要在业务的ingress上做修改。

例如:编辑 java.zhang-qing.com 虚拟主机站点的ingress 规则(kubectl edit ingress -n default java-ingress-nginx)

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  annotations:
    # 解决: 413 Request Entity Too Large
    nginx.ingress.kubernetes.io/proxy-body-size: "50m"

    # 解决:后端大文件上传问题
    nginx.ingress.kubernetes.io/client-body-buffer-size: 50m
    nginx.ingress.kubernetes.io/proxy-max-temp-file-size: 100m

    # 解决: 上传文件较慢问题
    nginx.ingress.kubernetes.io/proxy-buffer-size: 50m
    nginx.ingress.kubernetes.io/proxy-buffering: "on"
    nginx.ingress.kubernetes.io/proxy-buffers-number: "4"

    # 解决: 与后端backend超时问题
    nginx.ingress.kubernetes.io/proxy-connect-timeout: 300s
    nginx.ingress.kubernetes.io/proxy-read-timeout: 180s
    nginx.ingress.kubernetes.io/proxy-send-timeout: 180s

    # 解决: 处理Nginx代理转发与后端服务文件上传缓存区设置(原生命令)
    nginx.ingress.kubernetes.io/server-snippet: |
      location ~ /fastfile {
        client_max_body_size 1024m;    #允许客户端请求的最大单文件字节数,人话:能上传多大文件
        client_body_buffer_size 10m;   #缓冲区代理缓冲用户端请求的最大字节数,人话:一次能接受多少文件,建议根据带宽上限设置,减少磁盘读写,加快速度
        proxy_connect_timeout 300;     #Nginx与后端代理连接超时时间
        proxy_read_timeout 300;        #后端服务器响应时间(代理接收超时)时间
        proxy_buffer_size 1024k;       #设置代理服务器(nginx)保存用户头信息的缓冲区大小
        proxy_buffers 6 500k;          #proxy_buffers缓冲区,网页平均在32k以下的话,这样设置
        proxy_busy_buffers_size 1024k; #高负荷下缓冲大小(proxy_buffers*2)
        proxy_temp_file_write_size 1024k; #设定缓存文件夹大小,大于这个值将从upstream服务器传输
      }