javascript - Kubernetes Nginx Ingress 处理 JavaScript 重定向
问题描述
这就是我的入口定义的样子:
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: ingress
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /$2
ingress.kubernetes.io/ssl-redirect: "false"
kubernetes.io/ingress.class: "nginx"
spec:
rules:
- http:
paths:
- path: /myapp(/|$)(.*)
backend:
serviceName: myapp
servicePort: 8080
当我应用这个时,我得到了一个工作入口。我可以提出以下请求:
http://kubernetes.docker.internal/myapp
我的应用程序的响应是:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="refresh" content="0; url=/auth/" />
<meta name="robots" content="noindex, nofollow">
<script type="text/javascript">
window.location.href = "/auth/"
</script>
</head>
<body>
If you are not redirected automatically, follow this <a href='/auth'>link</a>.
</body>
</html>
猜猜看……用户被重定向到:
http://kubernetes.docker.internal/auth/
这会引发 404 错误。我实际上需要被重定向到:
http://kubernetes.docker.internal/myapp/auth/
换句话说,我需要代理myapp并在每个 URL 中都有/myapp前缀。
解决方案
推荐阅读
- python - 调用不同类型的html元素
- xcode - 开发人员文档使 Xcode 崩溃
- maven - 如何在 Maven 中排除 src 文件夹下的包?
- ios - 如何在 SwiftUI WidgetBundleBuilder 正文中返回小部件的动态列表
- java - 带有 firestoreRecyclerAdapter 的 Tablayout
- php - 为什么 WPBakery 导致 wordpress 网站停止?
- android - Android Espresso 测试匹配器 withId 在 ActionBarContextView 中返回 null
- android - React Native 和 Firebase:如何限制获取数据的次数
- python - 为什么 pygame 窗口动画仅在我移动光标时起作用
- swiftui - 更改 SwiftUI OutlineGroup 中的数据