Agradecería consejos sobre cómo realizar un proxy o una regla de reescritura en el siguiente escenario. La siguiente URL pública envía la solicitud al servidor backend (intserver) en el puerto 443.
URL pública = https://wc029.domain.com
El servidor interno luego redirige internamente a varias otras URL internas en el puerto 40000 - https://intserver:40000/sld/saml2/idp/sso (siendo uno) - pero lo envía de regreso al navegador que obviamente no puede llegar al público DNS del nombre de host interno. Necesito el bloque/regla para permitir que cualquier respuesta se cambie a la URL externa.
He usado el proxy inverso en IIS antes y esto lo maneja la regla de salida correspondiente, pero no puedo entender cómo lograr esto en Nginx.
Sospecho que esto es bastante fácil y requiere algo en el bloque del servidor, pero teniendo en cuenta que este es un servidor de producción con muchos otros bloques de servidor, prefiero pedir consejo aquí antes de pagar con la configuración y parece que no puedo encontrar algo que entiendo en otros escenarios.
¿Puede alguien mostrarme el error de mis caminos? ;)
server { listen 443 ssl; listen [::]:443 ssl; add_header Strict-Transport-Security "max-age=63072000; includeSubdomains;"; add_header X-Frame-Options SAMEORIGIN; add_header X-Content-Type-Options nosniff; add_header X-XSS-Protection "1; mode=block"; #add_header Content-Security-Policy "default-src 'self'; script-src 'self'; img-src 'self' data:; style-src 'self' 'unsafe-inline'; font-src 'self' data:; frame-src 'self'; connect-src 'self' https://apis.google.com; object-src 'none'"; # The below allow and deny rules can be set to allow access.The Deny rule MUST be uncommented and then add multiple allow lines for the IP range required. #allow; #deny all; server_name wc029.domain.com; ssl_certificate /etc/pki/cert.crt; ssl_certificate_key /etc/pki/priv.key; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384; access_log /var/log/nginx/reverse-access.log; error_log /var/log/nginx/reverse-error.log; location / { limit_except GET POST {deny all;} proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header Host $host; proxy_pass https://intserver/; proxy_set_header X-Forwarded-Proto https; } }