首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为不同后端上的多个服务搜索正确的侵入定义

为不同后端上的多个服务搜索正确的侵入定义
EN

Stack Overflow用户
提问于 2022-11-04 06:32:36
回答 1查看 60关注 0票数 2

我需要帮助设置TLS终止(使用入口-nginx)两个服务在不同的后端。基本上,我们的想法是:

代码语言:javascript
复制
https://some.url.here/serviceOne/ -> http://hostOne/
https://some.url.here/serviceTwo/ -> http://hostTwo/someServiceNameHere/

我试着用rewrite-target: "/"rewrite-target: "/$1"use-regexp: "true"来做这件事,但是连接到http://hostTwo/someServiceNameHere/总是失败的。

我的入口定义如下:

代码语言:javascript
复制
kind: Ingress
metadata:
  name: rp-some-url-here
  namespace: reverse-proxy
  annotations:
    kubernetes.io/ingress.class: nginx
    # ??? nginx.ingress.kubernetes.io/rewrite-target: "/$1"
    # ??? nginx.ingress.kubernetes.io/use-regex: "true"
    nginx.ingress.kubernetes.io/backend-protocol: "HTTP"
    nginx.ingress.kubernetes.io/proxy-ssl-verify: "false"
    nginx.ingress.kubernetes.io/upstream-vhost: "some.url.here"
    nginx.ingress.kubernetes.io/proxy-connect-timeout: "600"
    nginx.ingress.kubernetes.io/proxy-send-timeout: "600"
    nginx.ingress.kubernetes.io/proxy-read-timeout: "600"
    # proxy-buffering is now disabled by default,
    # just having it here for reference
    nginx.ingress.kubernetes.io/proxy-buffering: "off"
spec:
  tls:
  - hosts:
    - some.url.here
    secretName: my-tls-secret
  rules:
  - host: some-url-here
    http:
      paths:
      - backend:
          service:
            name: serviceOne
            port:
              number: 80
        # path: /serviceOne # using this with rewrite-target
        path: /serviceOne/.*
        pathType: Prefix
      - backend:
          service:
            name: serviceTwo
            port:
                number: 8180
        # path: /serviceTwo # using this with rewrite-target
        path: /serviceTwo/.*
        pathType: Prefix

服务定义就像

代码语言:javascript
复制
---
apiVersion: v1
kind: Service
metadata:
  name: service-one
  namespace: reverse-proxy
spec:
  type: ExternalName
  externalName: some.hostname.here
---
apiVersion: v1
kind: Service
metadata:
  name: service-two
  namespace: reverse-proxy
spec:
  type: ExternalName
  externalName: another.hostname.here
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-15 13:12:43

下面是一个应该如何执行的快速示例,还请确保第二个服务响应您指定的端口(8180)。

代码语言:javascript
复制
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /$2
  name: rewrite
  namespace: default
spec:
  ingressClassName: nginx
  rules:
  - host: rewrite.bar.com
    http:
      paths:
      - path: /something(/|$)(.*)
        pathType: Prefix
        backend:
          service:
            name: http-svc1
            port: 
              number: 80
      - path: /something2(/|$)(.*)
        pathType: Prefix
        backend:
          service:
            name: http-svc2
            port: 
              number: 8180
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74312997

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档