У меня есть веб-приложение и соответствующая серверная служба, развернутые в k8s. Они представлены через службы следующим образом:
- Веб-приложение - ›http://1.2.3.4:8080/webapp/login
- Бэкэнд - ›http://5.6.7.8:8081/backend-service/login
Я настроил входящий ресурс для этой службы, но оказалось, что входной контроллер NGINX пропускает корневую часть контекста при переписывании URL-адреса, что делает мою службу недоступной, когда я развертываю ее через вход. Ниже мой входной ресурс:
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
namespace: default
name: gateway-ingress
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /$1
nginx.ingress.kubernetes.io/use-regex: true
spec:
rules:
- http:
paths:
- path: /webapp/*
backend:
serviceName: webapp-service
servicePort: 8080
- path: /backend-service/*
backend:
serviceName: backend-service
servicePort: 8081
**Output of : kubectl describe ingress gateway-ingress**
Name: gateway-ingress
Namespace: default
Address: test.elb.us-east-2.amazonaws.com
Default backend: default-http-backend:80 (<none>)
Rules:
Host Path Backends
---- ---- --------
*
/webapp/* webapp-service:8080 (1.2.3.4:8080)
/backend-service/* backend-service:8081 (5.6.7.8:8081)
Поэтому, когда я открываю свое приложение с помощью http://test.elb.us-east-2.amazonaws.com/webapp/login. Я получаю сообщение 404: не найдено. Как правильно настроить входящий ресурс?
rewrite-target
. - person Mafor   schedule 25.09.2020