0
点赞
收藏
分享

微信扫一扫

Ingress nginx配置同一个域名不同的path访问不同的service

zhaoxj0217 2023-04-19 阅读 118

配置同一个域名,不同的path,访问不同的service

    # 重写URL

   # 当您访问 http://<ingress_ip>/foo/bar 时,nginx ingress controller 将把请求路由到 foo-service 的 80 端口,并将原始请求的路径 /foo/bar 重写为 /bar。    

   # nginx.ingress.kubernetes.io/rewrite-target: /

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: test-lava-mall-client-ingress
  namespace: test-app
  annotations:
    # location ^~ /store-api  使用正则匹配
    nginx.ingress.kubernetes.io/use-regex: "true"    
    nginx.ingress.kubernetes.io/server-snippet:
      location ^~ /index/common/getQandAListi {
        rewrite ^(.*)$ https://www.bb.com$1 permanent;
      }
      content_by_lua_block {
         ngx.say("<p>hello, world</p>")
      }
    nginx.ingress.kubernetes.io/configuration-snippet:
        rewrite ^/store-api/(.*)$ /$1 break;
spec:
  tls:
  - hosts:
    - a.yht.com
    secretName: yht-tls-secret
  rules:
  - host: a.yht.com
    http:
      paths:
      - path: "/"
        pathType: Prefix
        backend:
          service:
            name: test-lava-mall-client-selector-service
            port:
              number: 80
  - host: a.yht.com
    http:
      paths:
      - path: "/store-api"
        pathType: Prefix
        backend:
          service:
            name: test-store-api-selector-service
            port:
              number: 80

效果展示如下:

server {
    listen  443 ssl http2;
    server_name a.yht.com;
    
    location ^~ /index/common/getQandAListi {
        rewrite ^(.*)$ https://www.bb.com$1 permanent;
    }    

    location / {
       if (!-f $request_filename){
            proxy_pass https:/test-lava-mall-client-selector-service.yht.com;
        }
    }

    location ^~ /store-api {
        rewrite ^/store-api/(.*)$ /$1 break;
        proxy_pass http://test-store-api-selector-service.yht.com
    }

}

举报

相关推荐

0 条评论