NGINX Reescribir la ruta al subdominio con Cloudflare da como resultado demasiadas redirecciones

NGINX Reescribir la ruta al subdominio con Cloudflare da como resultado demasiadas redirecciones

Quiero lograr la reescritura de la URL como tal: a
https://documentation.domain.com/login, cualquier sudominio con la URL {cualquier cosa}.dominio.com/login ahttps://app.domain.com/login
https://api.domain.com/loginhttps://app.domain.com/login
https://app.domain.com/login

https://app.domain.com/sdksa https://documentation.domain.com/sdks(con todos los parámetros de consulta conservados)
https://api.domain.com/sdksa https://documentation.domain.com/sdks(con todos los parámetros de consulta conservados)
, cualquier sudominio con la URL {cualquier cosa}.domain.com/sdks ahttps://documentation.domain.com/sdks

https://app.domain.com/restApia https://documentation.domain.com/restApi(con todos los parámetros de consulta conservados)
https://api.domain.com/restApia https://documentation.domain.com/restApi(con todos los parámetros de consulta conservados)
, cualquier sudominio con la URL {cualquier cosa}.domain.com/restApi ahttps://documentation.domain.com/restApi

Esto es lo que tengo actualmente:

server {
        listen 443 ssl http2 default_server;
        listen [::]:443 ssl http2 default_server;

        ssl_certificate     /home/company/server/ssl/domain_cloudflare.pem;
        ssl_certificate_key /home/company/server/ssl/domain_cloudflare_privatekey.key;

        server_name www.*.domain.com *.domain.com;

        client_body_buffer_size     32k;
        client_header_buffer_size   8k;
        large_client_header_buffers 4 16k;

        location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                proxy_pass        https://localhost:8443;
                proxy_set_header  X-Real-IP $remote_addr;
                proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header  Host $http_host;
        }

        location /login {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                proxy_pass        https://localhost:8443/login;
                proxy_set_header  X-Real-IP $remote_addr;
                proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header  Host $http_host;
                return 302 https://app.domain.com/login;
        }

        location /restApi {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                proxy_pass        https://localhost:8443/restApi;
                proxy_set_header  X-Real-IP $remote_addr;
                proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header  Host $http_host;
                return 302 https://app.domain.com/restApi;   
        }


        location /sdks {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                proxy_pass        https://localhost:8443/sdks;
                proxy_set_header  X-Real-IP $remote_addr;
                proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header  Host $http_host;
                return 302 https://app.domain.com/sdks;
        }


        location /api {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                proxy_pass        https://localhost:8443/api;
                proxy_set_header  X-Real-IP $remote_addr;
                proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header  Host $http_host;
                return 302 https://api.domain.com/api;
        }
}

El SSL de Cloudflare lo configuré en Totalmente estricto. Cambiar a Completo/Flexible no cambia nada. Esta configuración funciona en su mayor parte. Esto funciona pero da como resultado ERR_TOO_MANY_REDIRECTS ¿Cómo puedo corregir esto? Que esta mal aquí ? Por favor, ayúdame con esto

EDITAR:

server {
        listen 443 ssl http2;
        listen [::]:443 ssl http2;


        ssl_certificate     /home/company/domain/ssl/domain_cloudflare.pem;
        ssl_certificate_key /home/company/domain/ssl/domain_cloudflare_privatekey.key;


        server_name app.domain.com;

        client_body_buffer_size     32k;
        client_header_buffer_size   8k;
        large_client_header_buffers 4 16k;

        location / {
               proxy_pass        https://localhost:8443/login;
                proxy_set_header  X-Real-IP $remote_addr;
                proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
               proxy_set_header  X-Forwarded-Host $http_host;
               proxy_set_header  X-Forwarded-Server $host;
               proxy_set_header  Host $http_host;
               proxy_set_header  X-Forwarded-Proto https;
#               return 302 https://app.domain.com/login;
        }

}

server {
        listen 443 ssl http2;
        listen [::]:443 ssl http2;


        ssl_certificate     /home/company/domain/ssl/domain_cloudflare.pem;
        ssl_certificate_key /home/company/domain/ssl/domain_cloudflare_privatekey.key;


        server_name documentation.domain.com;

        client_body_buffer_size     32k;
        client_header_buffer_size   8k;
        large_client_header_buffers 4 16k;

        location /sdks {
               proxy_pass        https://localhost:8443/sdks;
                proxy_set_header  X-Real-IP $remote_addr;
                proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
               proxy_set_header  X-Forwarded-Host $http_host;
               proxy_set_header  X-Forwarded-Server $host;
               proxy_set_header  Host $http_host;
               proxy_set_header  X-Forwarded-Proto https;
#              return 302 https://documentation.domain.com/sdks;
        }

        location /restApi {
               proxy_pass        https://localhost:8443/restApi;
                proxy_set_header  X-Real-IP $remote_addr;
                proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
               proxy_set_header  X-Forwarded-Host $http_host;
               proxy_set_header  X-Forwarded-Server $host;
               proxy_set_header  Host $http_host;
               proxy_set_header  X-Forwarded-Proto https;
#               return 302 https://documentation.domain.com/restApi;
        }

}

server {
        listen 443 ssl http2;
        listen [::]:443 ssl http2;


        ssl_certificate     /home/company/domain/ssl/domain_cloudflare.pem;
        ssl_certificate_key /home/company/domain/ssl/domain_cloudflare_privatekey.key;


        server_name api.domain.com;

        client_body_buffer_size     32k;
        client_header_buffer_size   8k;
        large_client_header_buffers 4 16k;

        location /api {
               proxy_pass        https://localhost:8443/;
                proxy_set_header  X-Real-IP $remote_addr;
                proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
               proxy_set_header  X-Forwarded-Host $http_host;
               proxy_set_header  X-Forwarded-Server $host;
               proxy_set_header  Host $http_host;
               proxy_set_header  X-Forwarded-Proto https;
#               return 302 https://api.domain.com/;
        }

}

información relacionada