多个 nginx 入口重写的默认路径

2024-04-27

这是我的情况,我在 kubernetes(入口)上,有两个 docker 镜像:一个专用于 Web,第二个专用于 api。

在下一个配置下(在消息末尾):/web将显示将进行一些调用的前端/api, 那里一切都好.

but /是 404,因为没有定义任何内容,我找不到一种方法来告诉入口配置/应该重定向到/web

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: dev-ingress
  annotations:
    kubernetes.io/tls-acme: "true"
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  tls:
  - hosts:
    - demo.com
    secretName: tls-secret
  rules:
  - host: demo.com
    http: 
      paths:
      - path: /api
        backend:
          serviceName: api-app
          servicePort: 8080
      - path: /web
        backend:
          serviceName: web-app
          servicePort: 80

这取决于您的前端和后端应用程序对路径的期望。一般情况下,前端会需要能够在某个外部路径上找到后端 https://stackoverflow.com/questions/53148660/communication-from-pod-to-pod-on-same-node-inside-kubernetes-in-gcp在你的情况下,听起来你的后端需要在外部的不同路径上可用(/api)来自它在集群内的工作(/)。您可以重写 api 请求的目标,以便/api将会去/当请求路由到后端时:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: dev-ingress-backend
  annotations:
    kubernetes.io/tls-acme: "true"
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  tls:
  - hosts:
    - demo.com
    secretName: tls-secret
  rules:
  - host: demo.com
    http: 
      paths:
      - path: /api
        backend:
          serviceName: api-app
          servicePort: 8080

并且您还可以为前端定义一个单独的入口(使用不同的名称),该入口不会重写目标,以便请求/web将会去/web for it:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: dev-ingress-frontend
  annotations:
    kubernetes.io/tls-acme: "true"
spec:
  tls:
  - hosts:
    - demo.com
    secretName: tls-secret
  rules:
  - host: demo.com
    http: 
      paths:
      - path: /web
        backend:
          serviceName: web-app
          servicePort: 80
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

多个 nginx 入口重写的默认路径 的相关文章

  • 由于 istio-sidecar 注入,Kubernetes 部署失败

    我们的 K8 集群工作了一年多 最近它出现了一些奇怪的行为 现在当我们使用kubectl apply f deployment manifest yaml 它没有显示在kubectl get pods 但显示在kubectl get dep
  • 无法导入...(没有所需的模块提供包)

    我正在关注本教程 https www martin helmich de en blog kubernetes crd client html 我初始化我的项目并通过以下方式获取依赖项 go mod init github com mart
  • Pod 清单写入 Deployment Manifest

    在 Kubernetes 中 将正在运行的 pod 清单转换为具有 x 个副本的部署的简单方法是什么 我尝试获取清单 k get po xyz o yaml gt po1 yaml 然后编辑 yaml 并与部署清单匹配 但这似乎并不容易 我
  • 通过流式传输将分段文件上传到 Amazon S3 时内存使用率过高?

    我的 Java Spring 应用程序中的以下方法直接将文件流式传输并上传到 Amazon S3 存储桶 我研究过 使用流将使上传大文件 对于我的用例 gt 100MB 视频 更加内存有效 当使用 25MB 文件测试该方法时 Kuberne
  • kubectl:描述与获取 -o <格式>

    在 kubectl 中 两者describe and get o
  • 如何使用 kubectl 列出 kubernetes 中应用的自定义资源定义

    我最近应用了这个 CRD 文件 https raw githubusercontent com jetstack cert manager release 0 11 deploy manifests 00 crds yaml With ku
  • 跨命名空间共享秘密

    有没有办法在 Kubernetes 中跨命名空间共享秘密 我的用例是 我的所有命名空间都有相同的私有注册表 并且我想避免为每个命名空间创建相同的秘密 秘密 API 对象驻留在命名空间中 它们只能由同一命名空间中的 pod 引用 基本上 您必
  • Kubernetes Service 没有活动 Endpoint

    我创建了一个Deployment Service and an Ingress 不幸的是 ingress nginx controllerpod 抱怨我的Service没有活动端点 controller go 920 Service
  • curl:(7)无法连接到192.168.99.100端口31591:连接被拒绝

    这些是我的豆荚 hello kubernetes 5569fb7d8f 4rkhs 0 1 ImagePullBackOff 0 5d2h hello minikube 5857d96c67 44kfg 1 1 Running 1 5d2h
  • 如何重用现有的持久卷声明

    我已经删除了我的 Elasticsearch 集群 但现在在部署新集群后 我需要访问存储在 3 个持久卷 PV 上的旧数据 如下所述 NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS
  • 在 Kubernetes API 中启用 CORS

    有没有办法在 Kubernetes API 上启用 CORS 以便我可以使用不同的域向 Kubernetes API 发送 ajax 请求 通过将 cors allowed origins http 参数添加到 etc default ku
  • Kubernetes 中的暂停镜像有什么用?

    看来在 Windows 上 Kubernetes 启动了一个pause创建的每个 Pod 的图像 这个暂停图像的目的是什么 我在哪里可以找到更多有关它的文档 The pause容器是保存 Pod 网络命名空间的容器 Kubernetes 创
  • Kubernetes ConfigMap 大小限制

    Though resourceQuotas可能会限制命名空间中的配置映射的数量 是否有任何这样的选项来限制单个配置映射的大小 我不喜欢某些用户开始上传大型文本文件作为配置映射 ConfigMap etcd 支持的最大大小是多少 如果 etc
  • 从头开始使用映像部署无法启动

    我正在使用以下内容构建图像Dockerfile FROM golang 1 19 2 bullseye as builder COPY src src WORKDIR src RUN CGO ENABLED 1 go build race
  • Jenkinsfile 泊坞窗

    我正在 docker 容器内的 GCE 上运行一个 jenkins 实例 并希望从此 Jenkinsfile 和 Github 执行多分支管道 我正在使用GCE詹金斯 https cloud google com solutions con
  • prometheus 节点实例列表

    是否可以使用 prometheus 获取节点实例列表 我有一个节点导出器 但我没有看到这样的指标 我们应该添加一个新的运算符吗 您可以使用kube 状态指标 https github com kubernetes kube state me
  • 从 celery 工作人员到普罗米修斯的自定义指标

    我有一些 celery 工作人员在 kubernetes 下的容器中运行 它们不会由 celery 自动缩放 并且每个都在单个进程中运行 即没有多处理 我想从他们那里获取一堆不同的指标到普罗米修斯中 我研究过 celery promethe
  • 从 App Engine 连接到 Kubernetes 引擎

    我们希望使用应用程序引擎灵活的流程来更新位于 Google Kubernetes Engine 上的 ElasticSearch 索引 我们需要通过 http s 地址连接到 ElasticSearch 推荐的方法是什么 我们不想将集群暴露
  • Kubernetes coredns pod 陷入待处理状态。无法启动仪表板[关闭]

    Closed 这个问题是与编程或软件开发无关 help closed questions 目前不接受答案 我正在按照此构建 Kubernetes 集群tutorial https www profiq com kubernetes clus
  • 如何从 Kubernetes 服务背后的 HTTP 请求读取客户端 IP 地址?

    我的 Web 应用程序作为 Kubernetes pod 在 SSL 的 nginx 反向代理后面运行 代理和我的应用程序都使用 Kubernetes 服务进行负载平衡 如所述here http blog kubernetes io 201

随机推荐

  • C++ 中的映射的多个键

    我有一个表 其中的条目是这样的 Row Column1 Column2 Column3 Column4 1 0X0A 1 2 A 2 0X0B 2 2 B 3 0x0C 3 2 C 现在我想使用映射 以便我可以使用第 1 列或第 2 列作为
  • 如何使用 Apache Beam 从 Google Pub/Sub 访问消息 ID?

    我一直在 Python 2 7 16 上使用 2 13 0 SDK 测试 Apache Beam 以流模式从 Google Pub Sub 订阅中提取简单消息 并写入 Google Big Query 表 作为此操作的一部分 我尝试使用 P
  • 使用 PIL 对图像进行着色,同时保持透明度?

    好吧 情况是这样的 我想使用 Python 图像库来 主题化 图像 如下所示 Theme color 33B5E5 IN OUT 我使用 ImageMagick 命令得到了结果 convert image png colorspace gr
  • 滚动到 HTML 网站中的顶部 JavaScript

    我正在尝试在我的网站中实现滚动到顶部功能 www arrow tvseries com 网站上可以看到 按钮 但它无法正常工作 因为单击时它不会滚动到页面顶部 更重要的是 我希望 滚动到顶部按钮 在向下滚动 例如一半页面 时可见 这是 Ja
  • Discord.js - guildMemberRemove 不起作用,guildMemberAdd 工作得很好

    抱歉 如果格式不正确 我以前从未在这里写过问题 首先 这是我第一次用 JavaScript 编写任何东西 所以这可能是我犯的一些愚蠢的错误 导致了我的问题 我想要做的是当成员加入服务器时发送一条消息 并在成员离开时发送不同的消息 当有人加入
  • 以编程方式最大化屏幕一半的窗口

    我想最大化屏幕左侧的随机窗口 我可以在我的代码中使用 Windows Aero 函数吗 这个窗口can像用鼠标一样最大化 我只想以编程方式做到这一点 I use C 我可以得到IntPtr窗户的 如果可能的话 不要伪造鼠标或键盘输入 这可以
  • Attachconsole的问题

    我需要使 Windows GUI 应用程序可以在控制台中运行 因此当使用命令行调用应用程序时 我将控制台附加到进程 但是 应用程序退出后 除非按 ENTER 键 否则不会显示带有路径的控制台提示符 有什么办法可以不按回车键直接显示路径提示吗
  • 通过从 .BAT 中查找进程正在使用的端口来终止进程

    在 Windows 中 什么可以查找端口 8080 并尝试通过 BAT 文件终止它正在使用的进程 打开命令提示符并运行以下命令 C Users username gt netstat o n a findstr 0 0 3000 TCP 0
  • 如何在命名管道 (mkfifo) 上执行非阻塞 fopen?

    如果我有一个程序使用 mkfifo 创建并尝试打开命名管道 如何在不阻塞的情况下打开管道进行读取或写入 具体来说 我正在编写一个 C 程序 它可以在有或没有 GUI 的情况下运行 用 Java 编写 在 C 程序中 我使用 mkfifo 成
  • 如何使用 Windows 粘贴命令将文本粘贴到 C# 中的其他应用程序?

    如何调用互操作来使用 Windows Pastse 命令将文本粘贴到 C 中的其他应用程序 调用互操作 我的意思是如何对 C 进行编程相同的右键单击粘贴文本 在某些情况下这可能有点棘手 但实际上非常简单且容易做到 下面的示例介绍了如何使用文
  • tensorflow SavedModel - 如何迭代保存

    我正在采用新的SavedModel据我所知 API 是 未来 应该优先于tf train Saver 我想要实现的目标是每次保存一个模型N批次数 我想最多保留 20 个已保存的模型 显然我可以自己监控这一点 但如果tf train Save
  • CodeIgniter 中使用 Active Record 的查询中的 DATE_FORMAT 不起作用

    编码员 我在这里遇到一个小问题 找不到解决方案 我正在使用 CI 的 Active Record 构建查询 这是查询的代码 this gt db gt select u id AS user id u email p display nam
  • 用于查找艺术家属性的 dbpedia SPARQL 查询

    我试图通过 DBPedia 和 SPARQL 查询语言获取有关艺术家的详细信息 但是 根据我的理解 如何获取某些信息似乎几乎是不可能的 我正在尝试找到一位艺术家并获取诸如他们的家乡之类的信息 我猜查询应该类似于 SELECT c WHERE
  • 3 维装箱算法

    我面临着 3 维装箱问题 目前正在进行一些初步研究 了解哪些算法 启发式方法目前能产生最佳结果 由于问题是 NP 难问题 我不希望在每种情况下都能找到最佳解决方案 但我想知道 1 最好的精确求解器是什么 分支定界 我期望使用合理的计算资源可
  • QT 5.6 QWebEngine不保存cookie

    我正在创建名为 webengine 的简单 QT 应用程序 pWebView new QWebEngineView this pWebView gt load QUrl http technoz ru pWebView gt show On
  • jni.h:没有这样的文件或目录

    我一直在关注本教程 http www java tips org other api tips jni simple example of using the java native interface html 在第 5 步 我从 GCC
  • 在 Rails 中使用 RSpec 和 Capybara 时未定义的方法“visit”

    我无法让水豚与 rspec 一起工作 它给了我这个错误 undefined method visit for
  • Android 模拟器出现错误:冷启动:快照不存在

    我在使用 Android 模拟器 7 8 天后就遇到了问题 起初它根本没有运行 现在重新安装模拟器解决了这个问题 但又产生了新的问题 每当我运行模拟器时 都会花费很长时间 大约 5 6 分钟 然后显示错误 Cold Boot Snapsho
  • Android facebook 4.0.0 分享对话框不分享内容

    几个小时以来 我一直在尝试通过 facebook 4 0 0 sdk 分享我的 android 应用程序中的内容 我完全按照Facebook 分享文档 https developers facebook com docs sharing a
  • 多个 nginx 入口重写的默认路径

    这是我的情况 我在 kubernetes 入口 上 有两个 docker 镜像 一个专用于 Web 第二个专用于 api 在下一个配置下 在消息末尾 web将显示将进行一些调用的前端 api 那里一切都好 but 是 404 因为没有定义任