nginx - Nginx 入口控制器不会通过重定向保留 url
问题描述
我正在尝试设置一个 nginx 入口控制器;这是入口的yaml:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ingress-rules
namespace: default
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/rewrite-target: /
nginx.ingress.kubernetes.io/ssl-redirect: "false"
nginx.ingress.kubernetes.io/force-ssl-redirect: "false"
spec:
rules:
- host:
http:
paths:
- path: /discover-service
backend:
serviceName: discover-service
servicePort: discover-port
当我点击http://IP/discover-service时,它会显示一个没有 CSS 和 JS 的 HTML。如我所见,它们在http://IP/eureka/css/file.css而不是http://IP/discover-service/css/file.css下查看。
在这种情况下如何保留原始网址?
更新#1
现在我可以通过创建两个入口来提供静态文件,例如:
ingress-rules-discover-root.yaml
[..]
metadata:
name: ingress-rules-discover-root
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
[...]
spec:
rules:
- host:
http:
paths:
- path: /discover-service
backend:
serviceName: discover-service
servicePort: discover-port
还有一个
[...]
metadata:
name: ingress-rules-discover-path
namespace: default
annotations:
kubernetes.io/ingress.class: nginx
[...]
spec:
rules:
- host:
http:
paths:
- path: /eureka
backend:
serviceName: discover-service
servicePort: discover-port
解决方案
我相信在这种情况下,您需要删除注释:
nginx.ingress.kubernetes.io/rewrite-target: /
此注释使入口重写http://IP/discover-service/css/file.css
为http://IP/eureka/css/file.css
推荐阅读
- android - 我们如何模拟从主机到 Android 模拟器的虚拟 CAN 设备?
- ruby - 使用文本变量填充文本字段,如何?
- ios - Xcode 11:画布不显示
- java - 如何将字符串转换为文件以便在 Android 中共享?
- visual-studio - 什么是 2019 年的现代 SSRS 开发环境?
- python - 如何通过 css 选择器为 Python selenium 中的日期字段查找元素?
- swift - 如何检测用户何时更改 macOS 上的空间?
- sharepoint - 在 SharePoint 2016 中使用 CSR 修改默认列表表单
- apache-flink - 是否可以配置 Flink 飞行前类型的序列化扫描?
- vue.js - 为什么 Gridsome 在 dist 构建中使用 Vue?