Kubernetes Nginx入口:仅为一个子域设置client_max_body_size

时间:2018-08-17 19:27:26

标签: nginx kubernetes nginx-ingress

如何为单个子域设置client_max_body_size参数?我有一台服务器可以接受高达5TB的文件上传。我看过的所有示例都向您展示了如何进行全局设置。我的ingress.yaml中有多个规则,我不希望每个规则都继承client_max_body_size参数,只有文件上传服务器可以。

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ingress-nginx
  annotations:
    kubernetes.io/ingress.class: nginx
spec:
  rules:
  - host: example.com
    http:
      paths:
      - backend:
          serviceName: homepage
          servicePort: 80
  - host: storage.example.com
    http:
      paths:
      - backend:
          serviceName: storage
          servicePort: 80

在上面的ingress.yaml中,我只想为位于主机client_max_body_size上的storage服务设置storage.example.com

1 个答案:

答案 0 :(得分:1)

因为我没有在list of annotations上看到client-max-body-size,所以我认为您必须使用custom-config-snippet为该Ingress包含client_max_body_size 5tb;

metadata:
  annotations:
    nginx.ingress.kubernetes.io/configuration-snippet: |
      client_max_body_size 5tb;

但是,假设您只希望storage.example.com使用它,则需要将storage.example.com的Ingress配置拆分为自己的Ingress资源,因为(AFAIK)注释是应用于Ingress资源中的每个host:记录。