如何解决在Kubernetes入口中,当use-regex为true时,为/定义路由的正确方法是什么
我需要在Kubernetes入口上定义以下路由:
-
Widget _buildEmailTextField() { return Container( height: 35,child: Theme( data: new ThemeData( primaryColor: Color(0xFF262C48),primaryColorDark: Color(0xFF262C48),),child: TextFormField( keyboardType: TextInputType.emailAddress,validator: (val){ bool emailValid = RegExp(r"^[a-zA-Z0-9.a-zA-Z0-9.!#$%&'*+-/=?^_`{|}~]+@[a-zA-Z0-9]+\.[a-zA-Z]+") .hasMatch(val); if(!emailValid){ return 'Invalid Email Address'; }else{ return null; } },controller: emailController,readOnly: isLoading?true:false,decoration: InputDecoration( fillColor: Color(0xFFd9d8d8),filled: true,border: new OutlineInputBorder( borderRadius: const BorderRadius.all( const Radius.circular(7.0),borderSide: BorderSide(color:Color(0xFF262C48),width: 2.0) ),contentPadding: EdgeInsets.only(left: 10),// prefixIcon: Icon( // Icons.email,// color: Color(0xFF008577),// ),hintText: 'Email',); }
=>网络客户端 -
my-website.com/*
=> graphql api
我尝试设置以下内容,但仅/ api路由有效:
my-website.com/api/*
kind: Ingress
metadata:
name: "my-ingress"
annotations:
"kubernetes.io/ingress.class": nginx
"nginx.ingress.kubernetes.io/affinity": cookie
"nginx.ingress.kubernetes.io/rewrite-target": "/$2"
"nginx.ingress.kubernetes.io/use-regex": "true"
spec:
rules:
- host: my-website.com
http:
paths:
- path: "/api(/|$)(.*)"
backend:
serviceName: web-client
servicePort: 80
- path: "/"
backend:
serviceName: graphql-server
servicePort: 80
路线有什么问题?
我尝试使用/
和/
路径,但是没有一个路径重定向到正确的服务。
解决方法
将"nginx.ingress.kubernetes.io/rewrite-target": "/$2"
替换为"nginx.ingress.kubernetes.io/rewrite-target: /"
还将路径从/api(/|$)(.*)
更改为/api/(.*)
我假设Web客户端和graphql服务器服务运行良好。
如果您仍然遇到问题,请共享您的入口控制器日志以获取更多详细信息
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。