Estoy tratando de redirigir una solicitud que non www a www . Revisé las anotaciones aquí https://kubernetes-sigs.github.io/aws-alb-ingress-controller/guide/ingress/annotation/ pero no pude encontrar una redirección específica que no sea de www a www.
Ya tengo configurado un redireccionamiento de http a https y funciona.
a continuación se muestra mi archivo de manifiesto de recursos de ingreso.
apiVersion: extensions/v1beta1 kind: Ingress metadata: name: eks-learning-ingress namespace: production annotations: kubernetes.io/ingress.class: alb alb.ingress.kubernetes.io/scheme: internet-facing alb.ingress.kubernetes.io/certificate-arn: ard878ef678df alb.ingress.kubernetes.io/listen-ports: '[{"HTTP": 80}, {"HTTPS":443}]' alb.ingress.kubernetes.io/actions.ssl-redirect: '{"Type": "redirect", "RedirectConfig": { "Protocol": "HTTPS", "Port": "443", "StatusCode": "HTTP_301"}}' labels: app: eks-learning-ingress spec: rules: - host: www.myhost.in http: paths: - path: /* backend: serviceName: ssl-redirect servicePort: use-annotation - path: /* backend: serviceName: eks-learning-service servicePort: 80Cualquier ayuda en esto sería genial. Gracias.
Hay 2 formas de hacer redirecciones que no sean de www a www, 1. usando alb.ingress.kubernetes.io/actions , 2. alb.ingress.kubernetes.io/conditions .
alb.ingress.kubernetes.io/actions.${action-name} Proporciona un método para configurar acciones personalizadas en un agente de escucha, como las acciones de redirección.
El nombre de la acción en la anotación debe coincidir con el nombre del servicio en las reglas de ingreso y el puerto del servicio debe ser una anotación de uso.
Necesitamos tener una anotación más, que le diga a ALB cómo configurar la redirección:
alb.ingress.kubernetes.io/actions.redirect-to-www: > {"Type":"redirect","RedirectConfig":{"Host":"www.myhost.in","Port":"443","Protocol":"HTTPS","StatusCode":"HTTP_302"}} Y una regla de host más para capturar su dominio de solicitud myhost.in y redirigir a www.myhost.in
- host: myhost.in http: paths: - path: /* backend: serviceName: redirect-to-www servicePort: use-annotationalb.ingress.kubernetes.io/conditions.${conditions-name} Proporciona un método para especificar condiciones de enrutamiento además de la condición de ruta/host original en la especificación de Ingress.
El nombre de las condiciones en la anotación debe coincidir con el nombre del servicio en las reglas de ingreso. Puede ser un nombre de servicio real o un nombre de acción basado en anotaciones cuando el puerto de servicio es "usar anotación".
Además de la anotación que agregamos anteriormente, continuamos agregando condiciones a las anotaciones para filtrar la solicitud, pero no es necesario tener la regla de host anterior.
alb.ingress.kubernetes.io/actions.redirect-to-www: > {"Type":"redirect","RedirectConfig":{"Host":"www.myhost.in","Port":"443","Protocol":"HTTPS","StatusCode":"HTTP_302"}} alb.ingress.kubernetes.io/conditions.redirect-to-www: > [{"Field":"host-header","HostHeaderConfig":{"Values":["myhost.in"]}}]Modificamos la regla de host existente que tiene actualmente para lograr la redirección.
- host: www.myhost.in http: paths: - path: /* backend: serviceName: redirect-to-www servicePort: use-annotation - path: /* backend: serviceName: ssl-redirect servicePort: use-annotation - path: /* backend: serviceName: eks-learning-service servicePort: 80