#nginx #kubernetes #cname #webflow #ingress-nginx
Вопрос:
Я использую ingress-nginx
на кубернетесе. Мне нужно перенаправить входящие подключения на /
блог, размещенный в webflow, и выполнить маршрутизацию на основе путей.
Webflow предоставляет домен, подобный website123.webflow.com
. Я хотел бы обслуживать блог без перенаправления. Я хотел бы замаскировать домен webflow и вместо этого использовать домен по умолчанию.
Вот с чем я пришел до сих пор:
---
apiVersion: v1
kind: Service
metadata:
name: homepage
spec:
externalName: website123.webflow.io
type: ExternalName
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
external-dns.alpha.kubernetes.io/hostname: my.custom.domain.com
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/load-balance: ewma
nginx.ingress.kubernetes.io/proxy-body-size: 4G
nginx.ingress.kubernetes.io/upstream-vhost: website123.webflow.io
service.beta.kubernetes.io/do-loadbalancer-hostname: my.custom.domain.com
labels:
source: github
name: http
namespace: panattt1
spec:
rules:
- host: my.custom.domain.com
http:
paths:
- path: /api
backend:
serviceName: http
servicePort: 80
- path: /images
backend:
serviceName: http
servicePort: 80
- path: /app
backend:
serviceName: http
servicePort: 80
- path: /game
backend:
serviceName: http
servicePort: 80
- path: /mapmaker
backend:
serviceName: http
servicePort: 80
- path: /dashboard
backend:
serviceName: http
servicePort: 80
- path: /
backend:
serviceName: homepage
servicePort: 80
tls:
- hosts:
- my.custom.domain.com
Приведенное выше решение работает не так, как мне бы хотелось. URL-адрес в браузере меняется с my.custom.domain.com
на website123.webflow.io
, а это не то, что я хочу.
Я считаю, что заголовок хоста достигает путей, отличных /
от тех, которые не являются идеальными. Еще не проверено.
Если удалить nginx.ingress.kubernetes.io/upstream-vhost
, я получу сообщение об ошибке из CDN webflow, потому что в $host
заголовке используется домен, который недоступен. Добавление пользовательского домена приводит к той же ошибке.
Есть какие-нибудь идеи, смогу ли я изящно справиться с этой ситуацией, используя ingress-nginx
?
Комментарии:
1. Я считаю, что это webflow, который выполняет перенаправление, когда обнаруживает, что URL-адрес отличается от того, что он есть изначально.
Ответ №1:
Это работает для меня без аннотаций, таких как upstream-vhost и т. Д.
kind: Service
metadata:
name: blog-service
namespace: panattt1
spec:
externalName: website123.webflow.io
ports:
- port: 8001
protocol: TCP
targetPort: 443
type: ExternalName
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
ingress.kubernetes.io/force-ssl-redirect: "true"
ingress.kubernetes.io/ssl-redirect: "true"
kubernetes.io/ingress.class: nginx
kubernetes.io/tls-acme: "true"
name: blog-ingress
namespace: panattt1
spec:
rules:
- host: my.custom.domain.com
http:
paths:
- backend:
serviceName: blog-service
servicePort: 8001
path: /
tls:
- hosts:
- my.custom.domain.com