nginx-ingress: Too many redirects when force-ssl is enabled
That is a known issue with the annotation
for SSL-redirection in combination with proxy-protocol and termination of SSL connections on ELB.
Question about it was published on GitHub and here is a fix from that thread:
You should create a custom ConfigMap for an Nginx-Ingress instead of using
force-ssl-redirect
annotation like the following:apiVersion: v1 kind: ConfigMap metadata: labels: app: ingress-nginx name: nginx-ingress-configuration namespace: <ingress-namespace> data: ssl-redirect: "false" hsts: "true" server-tokens: "false" http-snippet: | server { listen 8080 proxy_protocol; server_tokens off; return 301 https://$host$request_uri; }
That configuration will create an additional listener with a simple redirection to https.
- Then, apply that ConfigMap to your ingress-controller, add
NodePort
8080 to its container definition and to the Service. - Now, you can point the port 80 of your ELB to port 8080 of the Service.
With that additional listener, it will work.