如何解决每个HTTPS入口请求上的404 NOT FOUND响应
我在GKE上部署了多个Spring Boot应用程序。每个Spring Boot都有启用和不受限制的执行器端点。我创建了一个HTTPS入口,但仅收到404 Not Found响应。
入口YAML:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
ingress.gcp.kubernetes.io/pre-shared-cert: mcrt-0c6bff90-d2fa-4a14-84b5-779c812a4c0b
ingress.kubernetes.io/backends: '{"k8s-be-30206--3e15e15e4f605a79":"HEALTHY","k8s-be-31081--3e15e15e4f605a79":"HEALTHY","k8s-be-31129--3e15e15e4f605a79":"HEALTHY","k8s-be-31673--3e15e15e4f605a79":"HEALTHY","k8s-be-32006--3e15e15e4f605a79":"HEALTHY"}'
ingress.kubernetes.io/https-forwarding-rule: k8s-fws-default-skitter-ingress--3e15e15e4f605a79
ingress.kubernetes.io/https-target-proxy: k8s-tps-default-skitter-ingress--3e15e15e4f605a79
ingress.kubernetes.io/ssl-cert: mcrt-0c6bff90-d2fa-4a14-84b5-779c812a4c0b
ingress.kubernetes.io/url-map: k8s-um-default-skitter-ingress--3e15e15e4f605a79
kubectl.kubernetes.io/last-applied-configuration: |
{"apiVersion":"extensions/v1beta1","kind":"Ingress","metadata":{"annotations":{"kubernetes.io/ingress.allow-http":"false","kubernetes.io/ingress.global-static-ip-name":"skitter-ip","networking.gke.io/managed-certificates":"skitterapp.com"},"name":"skitter-ingress","namespace":"default"},"spec":{"rules":[{"host":"skitterapp.com","http":{"paths":[{"backend":{"serviceName":"business-owner-service","servicePort":80},"path":"/business-owner-service/*"},{"backend":{"serviceName":"customer-service","path":"/customer-service/*"},{"backend":{"serviceName":"staff-service","path":"/staff-service/*"},{"backend":{"serviceName":"sms-service","path":"/sms-service/*"}]}}]}}
kubernetes.io/ingress.allow-http: "false"
kubernetes.io/ingress.global-static-ip-name: skitter-ip
networking.gke.io/managed-certificates: skitterapp.com
creationTimestamp: "2020-09-20T12:10:35Z"
finalizers:
- networking.gke.io/ingress-finalizer
generation: 3
name: skitter-ingress
namespace: default
resourceVersion: "11344191"
selfLink: /apis/extensions/v1beta1/namespaces/default/ingresses/skitter-ingress
uid: 6b92ff0d-01a2-449f-9cd7-afdd1452e73b
spec:
rules:
- host: skitterapp.com
http:
paths:
- backend:
serviceName: business-owner-service
servicePort: 80
path: /business-owner-service/*
- backend:
serviceName: customer-service
servicePort: 80
path: /customer-service/*
- backend:
serviceName: staff-service
servicePort: 80
path: /staff-service/*
- backend:
serviceName: sms-service
servicePort: 80
path: /sms-service/*
status:
loadBalancer:
ingress:
- ip: 35.241.60.223
负载均衡器详细信息(以突出显示证书处于活动状态,并且一切看起来井井有条):
测试请求:https://skitterapp.com/business-owner-service/actuator/health; https://skitterapp.com/customer-service/actuator/health
我在做什么错?我希望当我发送请求skitterapp.com/customer-service/actuator/health时,入口标识/ customer-service / **,并将GET请求/ actuator / health传递给客户服务。但是我没有看到这种行为,而且从日志中看到的是,客户服务没有收到运行状况请求
解决方法
你必须在入口中添加这个注解,
nginx.ingress.kubernetes.io/rewrite-target: /
也许这可以解决问题
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。