gpt4 book ai didi

docker - 如何在单个域上为React app + Express设置k8s入口?

转载 作者:行者123 更新时间:2023-12-02 11:41:08 25 4
gpt4 key购买 nike

我有一个用React和nodejs后端构建的前端应用程序。
两者都具有单独的Docker镜像,因此在k8(gce)上具有单独的部署。
每个部署都有对应的k8s服务,比如fe-sericebe-service
我正在尝试设置一个Ingress,以便通过以下方式在单个域中公开这两个服务:

  • /api/*-路由到be-service
  • 其他所有内容都路由到fe-service

  • 这是我的yaml文件:
    apiVersion: extensions/v1beta1
    kind: Ingress
    metadata:
    name: my-ingress
    annotations:
    ingress.kubernetes.io/rewrite-target: /
    spec:
    rules:
    - host: my-host
    http:
    paths:
    - path: /*
    backend:
    serviceName: fe-service
    servicePort: 80
    - path: /api/*
    backend:
    serviceName: be-service
    servicePort: 5000
    这是我 curl 的东西: curl [ip] --header "Host: my-host"-> React应用(如预期) curl [ip]/foo --header "Host: my-host"-> nginx 404(为什么?) curl [ip]/api --header "Host: my-host"-> nginx 404(为什么?) curl [ip]/api/ --header "Host: my-host"-> nodejs应用 curl [ip]/api/foo --header "Host: my-host"-> nodejs应用
    据我所知, api/的一部分工作正常,但我无法弄清楚其他所有内容,我尝试使用带/不带通配符的不同组合,但仍然无法按我希望的方式工作。
    我想念什么?这有可能吗?
    提前致谢!

    最佳答案

    我无法解释为什么/ foo不起作用



    / api / *不涵盖/ api,仅涵盖/ api /之后的所有内容

    关于docker - 如何在单个域上为React app + Express设置k8s入口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49140859/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com