# ingress-nginx的几个小技巧

所有注释：<https://iovhm.com/book/books/k8s/page/nginx-ingress>

#### 文件上传限制

```

nginx.ingress.kubernetes.io/proxy-body-size:200m

```

#### 一个ingress绑定多个域名

原来我们是直接克隆一个，需要同时修改两个，非常麻烦

```yaml

# 类似nginx.conf的  server_name 
nginx.ingress.kubernetes.io/server-alias: a.com,b.com

```

#### 后端路径不与前端路径不一致的时候重写

```yaml
# ingress的path设置为/xxx/(.*),这是一个正则匹配，请自行gpt

nginx.ingress.kubernetes.io/rewrite-target: $2

```

#### 使用https访问后端

```yaml

nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"

```

#### 增加IP白名单

```yaml

# 类似deny,allow
nginx.ingress.kubernetes.io/whitelist-source-range: 10.0.0.0/24,172.10.0.1

```

#### 设置IP黑名单

```yaml

# 类似deny
nginx.ingress.kubernetes.io/denylist-source-range: 10.0.0.0/24,172.10.0.1


```




#### 增加基础身份验证

```yaml

# 使用basic认证
# 创建一个键值对（opaque）密钥，
# 键为 auth
# 值为 htpasswd -c auth username 生成
# 在线生成 https://www.bejson.com/encrypt/htpasswd/

# 为ingress增加注解
nginx.ingress.kubernetes.io/auth-type: basic
nginx.ingress.kubernetes.io/auth-secret: basic-auth

```