我有点困惑路径解析端点的方式,它是否在任何日志中显示它创建的最终端点。我现在被困在这里了。下面是我想要调用的端点:
https://hostname/api/orders/employees。要通过endpoint应用程序网关调用这个端点,我就是这样配置的,但它总是返回502坏网关错误。
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ordersapi
namespace: orders
annotations:
kubernetes.io/ingress.class: azure/application-gateway
appgw.ingress.kubernetes.io/appgw-ssl-certificate: "wildcard.apps.com"
appgw.ingress.kubernetes.io/ssl-redirect: "true"
spec:
rules:
- host: orders.apps.com
http:
paths:
- path: /api/orders/employees
backend:
serviceName: orderservice
servicePort: 80发布于 2020-06-30 10:07:36
最后,这个问题有两种解决办法:-
First
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ordersapi
namespace: orders
annotations:
kubernetes.io/ingress.class: azure/application-gateway
appgw.ingress.kubernetes.io/appgw-ssl-certificate: "wildcard.apps.com"
appgw.ingress.kubernetes.io/ssl-redirect: "true"
spec:
rules:
- host: orders.apps.com
http:
paths:
- path: /api/orders/employees
backend:
serviceName: orderservice
servicePort: 80
- path: /api/product/products
backend:
serviceName: orderservice
servicePort: 80h第二
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ordersapi
namespace: orders
annotations:
kubernetes.io/ingress.class: azure/application-gateway
appgw.ingress.kubernetes.io/backend-path-prefix: "/api/"
appgw.ingress.kubernetes.io/appgw-ssl-certificate: "wildcard.apps.com"
appgw.ingress.kubernetes.io/ssl-redirect: "true"
spec:
rules:
- host: orders.apps.com
http:
paths:
- path: /api/*
backend:
serviceName: orderservice
servicePort: 80发布于 2020-06-24 19:37:35
您似乎已经启用了SSL重定向,但是您的服务是在非ssl端口上服务的。
这可以解释坏的网关。
通常情况下,Azure AppGW会返回502坏网关,如果涉及到坏的Certs,后端服务的健康检查是错误的,还有其他原因
你应该看看这个:
还有这个
https://learn.microsoft.com/en-us/azure/application-gateway/application-gateway-troubleshooting-502
发布于 2020-12-11 08:46:05
我也有同样的问题。我的入口设置就像:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ingress-name
annotations:
kubernetes.io/ingress.class: azure/application-gateway
spec:
rules:
- host: <myhostname>
http:
paths:
- path: /api*
backend:
serviceName: backend-app
servicePort: 80
- path: /
backend:
serviceName: frontend-app
servicePort: 80如果我定义了像/api/todolist这样的路径,端点就能正常工作。另一方面,如果我使用/api*,我的请求将被重定向到前端应用程序。
问题是后端存在端点/api/todolist,返回状态为200,对于/api端点,我没有设置任何东西,因此获得了404状态。
在我的例子中,我需要在/api编辑点下添加healthcheck,返回正确的http状态:),返回字符串"Healthy“就足够了。
https://stackoverflow.com/questions/62558442
复制相似问题