在子路径上使用Kubernetes NGINX Ingress Controller公开应用程序,但不控制应用程序的基本路径
我自己仍然无法解决这个问题,所以我甚至不确定这是否可能。我无法更改我的域,因此我只能通过Ingres在子路径上部署我的应用程序,而不能在子域上部署,并且我能够通过使用在子路径上使用Kubernetes NGINX Ingress Controller公开应用程序,但不控制应用程序的基本路径,kubernetes,nginx-ingress,kubernetes-dashboard,Kubernetes,Nginx Ingress,Kubernetes Dashboard,我自己仍然无法解决这个问题,所以我甚至不确定这是否可能。我无法更改我的域,因此我只能通过Ingres在子路径上部署我的应用程序,而不能在子域上部署,并且我能够通过使用nginx.ingres.kubernetes.io/rewrite-target://和nginx.ingres.kubernetes.io/configuration-snippet:rewrite/(.*)/$1用于基本路径 但是,有些应用程序,如Kubernetes Dashboard、k8dash或Kibana,没有提供在
nginx.ingres.kubernetes.io/rewrite-target://
和nginx.ingres.kubernetes.io/configuration-snippet:rewrite/(.*)/$1当我能够控制应用程序的基本路径时(例如pgAdmin4 Docker容器(提供一个ENV var)或我自己编写的应用程序就是这种情况),代码>用于基本路径
但是,有些应用程序,如Kubernetes Dashboard、k8dash或Kibana,没有提供在k8s部署
对象中指定基本路径的方便选项,因此我无法让它们工作
主要问题似乎是路径,如/assets/
,/js/
,/css/
等
我尝试了不同版本的重写路径,但我认为这不会重写HTML的内容,特别是如果它是由js框架(如Angular)动态生成的
是否有可靠的方法公开子路径上的Kubernetes仪表板或Kibana,从而使站点上的延迟调用不会导致404
PS:很抱歉,如果我不能清楚地表达我的问题,使回答问题变得容易,那么如果对任何人来说仍然存在一些不一致或未知的地方,我想立即将其纳入这个问题。事先非常感谢
PPS:我已经尝试了100个google搜索结果和stackoverflow解决方案,但仍然无法管理,所以要么我的搜索技能很差,没有解决方案,要么很难实现。其中一个虽然解决了一个与nginx本身相关的类似问题,但也没有帮助我也遇到了这个问题,我没有找到解决办法。例如,如果应用程序的网页从/assets/*导入您提到的资产,并且没有配置前缀以使其成为/app_prefix/assets/*,我不认为这是可能的。您需要该前缀才能确定请求应该路由到哪个应用程序。我也遇到了这个问题,我找不到解决方法。例如,如果应用程序的网页从/assets/*导入您提到的资产,并且没有配置前缀以使其成为/app_prefix/assets/*,我不认为这是可能的。您需要该前缀才能确定请求应路由到哪个应用程序。我也这么认为,但希望在某种程度上我是错的,因为这不完全是我的专业知识,我只是在深入研究它,虽然我可能忽略了一些事情,但我也这么认为,但希望在某种程度上我是错的,因为这不完全是我的专长,我只是在潜入其中,我想我可能忽略了一些东西