我们有基于角的web应用程序托管在Kubernetes集群上。此应用程序的入口被配置为添加基本URL:
{
"kind": "Ingress",
"apiVersion": "extensions/v1beta1",
"metadata": {
"name": "test-app",
"namespace": "acceptance-testing",
...
"annotations": {
"kubernetes.io/ingress.class": "nginx",
"nginx.ingress.kubernetes.io/add-base-url": "true",
"nginx.ingress.kubernetes.io/rewrite-target": "/",
"nginx.ingress.kubernetes.io/ssl-redirect": "true"
}
},
"spec": {
"rules": [
{
"http": {
"paths": [
{
"path": "/at/test-app",
"backend": {
"serviceName": "test-app",
"servicePort": 80
}
}
]
}
}
]
},
...
}当我们在浏览器中输入URL,包括客户端路由部分时,入口将整个URL作为基础添加,这在我们的场景中是不正确的。
例如,对于https://server/at/test-app/some-page,基本URL应该是https://server/at/test-app/,但是我们接收到了https://server/at/test-app/some-page/
我们已经切换到角散列路由位置策略,现在它工作正常,但是我们想知道是否有什么方法使位置路由策略与nginx入口一起工作?
提前谢谢你的帮助。
诚挚的问候
发布于 2019-02-23 13:41:47
以下是一些概念:
/at/test-app/some-page/必须路由到/at/test-app,这将有一个角应用程序,然后角将处理/some-page/"nginx.ingress.kubernetes.io/rewrite-target": "/at/test-app"在我的环境中看起来不工作(GKE1.11.6-gke.2,ingress:"nginx.ingress.kubernetes.io/rewrite-target": "/at/test-app"){
...
"annotations": {
"kubernetes.io/ingress.class": "nginx",
"nginx.ingress.kubernetes.io/add-base-url": "true",
"nginx.ingress.kubernetes.io/configuration-snippet": | <-- change to this
rewrite /at/test-app/([^.]+)$ /at/test-app break; <-- rewrite path if no .
"nginx.ingress.kubernetes.io/ssl-redirect": "true"
}
....
}https://stackoverflow.com/questions/49672002
复制相似问题