angular - Ionic Web 应用程序页面未使用 Ingress Controller 打开
问题描述
我有由 Google K8s 集群运行的 Ionic 5.0 Web App。我正在使用 Nginx 入口控制器。为它配置了以下入口资源以使其可访问:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: gateway-ingress
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /$2
nginx.ingress.kubernetes.io/use-regex: true
spec:
rules:
- http:
paths:
- path: /webapp/(/|$)(.*)
backend:
serviceName: webapp-frontend
servicePort: 80
我可以使用以下 url 访问应用程序:
- http://1.2.3.4/webapp 工作正常,页面正在打开
- http://1.2.3.4/webapp/ 工作正常,页面正在打开
- http://1.2.3.4/webapp/login。不工作,得到“未找到。在此服务器上找不到请求的 URL。”
我没有得到这里的配置有什么问题。请帮忙。
####编辑####
我的 Web 应用程序部署在 pod 上并具有以下 URL,并且通过服务“webapp-frontend”公开:
我想要的是当用户点击浏览器上的 url 时应该发生以下情况:
- http://1.2.3.4/webapp --> 应该重写为http://1.2.3.4/webapp/login(正在发生)
- http://1.2.3.4/webapp/ --> 应该重写为http://1.2.3.4/webapp/login(正在发生)
- http://1.2.3.4/webapp/login --> 应该重写为http://1.2.3.4/webapp/login(这不会发生)
解决方案
有一些事情你应该看看:
extensions/v1beta1
Kubernetes 版本 1.16 不再提供 API 版本中的 NetworkPolicy 。你应该networking.k8s.io/v1beta1
改用。您正在使用rewrite 注释并根据您的配置它应该:
http://1.2.3.4/webapp
改写为http://1.2.3.4/
http://1.2.3.4/webapp/
改写为http://1.2.3.4/
http://1.2.3.4/webapp/login
改写为http://1.2.3.4/login
您需要确保您的 Ingress 访问的是正确的 URL。配置本身看起来不错。错误可能在您想要实现的重写背后的逻辑中。如果需要,请参阅链接的文档。如果它仍然没有按预期工作,请编辑您的问题并提供更多详细信息(应该在哪里重写等)。
这应该从 Kuberentes 方面解决您的问题。请让我知道这是否有帮助。
推荐阅读
- sling - 在部署之前更改 Apache sling 默认用户名/密码
- javascript - 拖放文件上传触发器两次
- angular - 多个可拖动的模态或角度弹出窗口
- javascript - 如何在纯JS中滚动动画rotateX?
- node.js - Amazon SP-API 不能扮演我自己的角色?
- wordpress - WordPress Elementor 形式的确认电子邮件
- angular - 角度输入绑定性能
- angular - 在测试中 - 如何识别同一子组件的不同实例?
- c++ - 如何在 c++ 的 URLDownloadToFile 函数中定义用户代理?
- javascript - 如何在jquery中使用循环删除数组元素