Tengo una aplicación Spring Boot que aloja servicios tranquilos que se encuentra detrás de un proxy inverso Nginx. La configuración de Nginx permite aceptar solicitudes en http://mynginx/proxy/ y enviarlas de forma transparente a http://host/service/ . El servicio de destino está protegido y requiere el token de Oauth en el encabezado de Autorización. Sin embargo, cuando llamo al servicio directamente usando GET http://host/service , funciona como se esperaba. Lo mismo con destino diferente GET http://mynginx/proxy da una respuesta HTTP 401 no autorizada. En última instancia, quiero bloquear mi aplicación para que no sea de acceso público, por lo que no quiero exponer el servicio de destino directamente. ¿Qué debo hacer para que la autorización funcione a través de Nginx?
Aquí está mi configuración de Nginx para esta llamada de servicio
location /proxy/ { proxy_pass http://host/service/; proxy_redirect off; proxy_set_header Host $host; 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 $server_name; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Authorization $http_authorization; proxy_pass_header Authorization; }