k8s Ingress配置

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: apptest-ingress-service
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/rewrite-target: /$1
    nginx.ingress.kubernetes.io/server-snippet: |
    location ~* "^.*actuator.*$" {
          deny all;
          return 403;
        }    
spec:
  rules:
    - http:
        paths:
          - path: /?(.*)
            backend:
              serviceName: apptest-fe-cluster-ip
              servicePort: 3000
          - path: /api(?=\/|\#|\?|$)/?(.*)
            backend:
              serviceName: apptest-cluster-ip
              servicePort: 8080
  1. 使用nginx.ingress.kubernetes.io/rewrite-target annotation 重写路径
  2. 如果是根路径转发, 使用/?(.*) 可以匹配带/ 和不带/的请求, 例如访问: http://www.baidu.com 和访问 http://www.baidu.com/, 均可转发到指定service
  3. 如果是前缀转发,使用/api(?=\/|\#|\?|$)/?(.*) 如下访问可进行转发:

不转发请求: