【问题标题】:Issues with rewrite-target for iis site on kubernetes podkubernetes pod 上 iis 站点的 rewrite-target 问题
【发布时间】:2021-02-09 10:21:58
【问题描述】:

我们有几个namespaces,每个都包含我们产品的一个实例,该实例在Windows pod 上的IIS 上运行。我们不想将此 pod 暴露在互联网上,因此希望在同一 vnet 上启用堡垒 VM 以通过 NGINX 入口控制器访问它们。

此入口控制器已设置并正在工作,但我们遇到了一些问题。我们的目标是能够基于路径在应用程序实例之间进行路由,例如nginxIP/instance1 路由到 1 个实例,nginxIP/instance2 路由到第二个实例。

以下是我们目前在解决方案中使用的示例 ingress yaml file

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: instance1-ingress
  namespace: instance1
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/ssl-redirect: "false"
    nginx.ingress.kubernetes.io/use-regex: "true"
    nginx.ingress.kubernetes.io/rewrite-target: /$2
spec:
  rules:
  - http:
      paths:
      - path: /instance1(/|$)(.*)
        backend:
          serviceName: service
          servicePort: 80

这已成功重定向到应用程序的根目录,但是应用程序加载 css、图像和其他脚本时存在很多问题。重写规则似乎没有正确处理这个问题,但是在尝试了几种不同的路径配置、重写目标以及测试 app-root 注释之后,我不知所措。

这里要注意的另一件事是,可以观察到不同的behaviour,具体取决于是否使用尾部斜杠。例如,当您使用斜线但不是没有时,主页上的这张图片可以正常工作:

http://10.240.10.10/instance1/

作品 - http://10.240.10.10/instance1/b3c7ad64-a4e1-4c32-a616-6153ff535a83.adapter

http://10.240.10.10/instance1

不起作用 - http://10.240.10.10/b3c7ad64-a4e1-4c32-a616-6153ff535a83.adapter

我希望能提供一些线索来解决这里可能存在的问题,但经过一段时间的调查,我现在有点茫然

【问题讨论】:

  • 如果我理解得很好,您是否希望将http://my_ip/instance1 重定向到http://my_ip/ 但在instance1 应用程序中,instance2...等也是如此。我的意思是,你想重定向到正确的实例,但你想从 url 中省略 instance1,对吗?

标签: nginx iis kubernetes azure-aks


【解决方案1】:

您是说这不起作用 - http://10.240.10.10/b3c7ad64-a4e1-4c32-a616-6153ff535a83.adapter 因为您在 URL 中缺少 /instance1/。 重写目标不会重写 URL,因此您将需要此路径:/instance1/

您需要更新前端代码才能使此服务器端路由正常工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-23
    • 1970-01-01
    • 1970-01-01
    • 2011-03-18
    • 1970-01-01
    • 1970-01-01
    • 2021-11-08
    相关资源
    最近更新 更多