Angular AKS URL重写
AKS URL rewrite生成404,因为它忽略了URL命名约定 当我访问dev.dev.com/merchant时,它会显示一个空白页面。检查控制台,它显示 GET net::ERR_中止404 我期待着: dev.dev.com/merchant/runtime.js,整个应用程序在url中使用/merchant可以正常运行Angular AKS URL重写,angular,azure,azure-aks,Angular,Azure,Azure Aks,AKS URL rewrite生成404,因为它忽略了URL命名约定 当我访问dev.dev.com/merchant时,它会显示一个空白页面。检查控制台,它显示 GET net::ERR_中止404 我期待着: dev.dev.com/merchant/runtime.js,整个应用程序在url中使用/merchant可以正常运行 直接通过IP地址访问服务是可以的。现在确定我遗漏了什么。对于您的问题,当您使用自定义域时,您不仅需要使用nginx入口控制器,还需要HTTP路由。如果不是,则显示错
直接通过IP地址访问服务是可以的。现在确定我遗漏了什么。对于您的问题,当您使用自定义域时,您不仅需要使用nginx入口控制器,还需要HTTP路由。如果不是,则显示错误404
如果您只是想对域名进行测试,则可以使用Azure提供的HTTP应用程序路由,步骤如中所示。您还可以使用公共IP为Azure DNS创建子域,并且可以按照中的步骤操作。对于您的问题,当您使用自定义域时,您不仅需要使用nginx入口控制器,还需要HTTP路由。如果不是,则显示错误404
如果您只是想对域名进行测试,则可以使用Azure提供的HTTP应用程序路由,步骤如中所示。您还可以使用公共IP为Azure DNS创建子域,并且可以按照中的步骤操作。如何将应用程序路由和入口控制器结合起来?可通过dev.dev.com访问该应用程序/merchant@user2172398实际上,应用程序路由只是针对Azure DNS的,您可以添加一个子域。不幸的是,它没有。我还联系了kubernetes nginx团队,但他们告诉我这是不可能的:@user2172398“nginx只能重写传入流量,将URL更改为后端,它不会更改应用程序的响应”这句话是正确的。因此,如果您有自己的DNS,Azure将帮助您重写从自己的DNS到后端服务的访问。但是,如果您想更改后端服务的响应,这是不可能的。如何将应用程序路由和入口控制器结合起来?可通过dev.dev.com访问该应用程序/merchant@user2172398实际上,应用程序路由只是针对Azure DNS的,您可以添加一个子域。不幸的是,它没有。我还联系了kubernetes nginx团队,但他们告诉我这是不可能的:@user2172398“nginx只能重写传入流量,将URL更改为后端,它不会更改应用程序的响应”这句话是正确的。因此,如果您有自己的DNS,Azure将帮助您重写从自己的DNS到后端服务的访问。但是如果您想更改后端服务的响应,这是不可能的。
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: dev-ingress
namespace: dev
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/rewrite-target: /$1
spec:
tls:
- hosts:
- dev.dev.com
secretName: ssl
rules:
- host: dev.dev.com
http:
paths:
- backend:
serviceName: dashboard
servicePort: 80
path: /merchant(/|$)(.*)