http { server { listen 4443 ssl; server_name {{hostname}}; port_in_redirect off; ssl_certificate /etc/nginx/ssl/server.crt; ssl_certificate_key /etc/nginx/ssl/server.key; location / { # https://stackoverflow.com/questions/32845674/setup-nginx-not-to-crash-if-host-in-upstream-is-not-found/32846603#32846603 resolver 127.0.0.1 valid=30s; proxy_pass http://app1:8080; } } server { listen 4444 ssl; server_name X.{{hostname}}; port_in_redirect off; ssl_certificate /etc/nginx/ssl/server.crt; ssl_certificate_key /etc/nginx/ssl/server.key; location / { resolver 127.0.0.1 valid=30s; proxy_pass http://app1:8080/my/path/; } } } # http://nginx.org/en/docs/stream/ngx_stream_ssl_preread_module.html # https://stackoverflow.com/questions/34741571/nginx-tcp-forwarding-based-on-hostname/40135151#40135151 stream { upstream app1 { server 127.0.0.1:4443; } server { listen 0.0.0.0:443; proxy_connect_timeout 10s; proxy_timeout 5m; proxy_pass $target; ssl_preread on; } access_log /var/log/nginx/access.log basic; error_log /var/log/nginx/error.log error; }Esta es mi configuración de nginx. Esto es parte de una configuración de docker-compose. Envié solicitudes de proxy enviadas a https://hostname al contenedor app1 con éxito.
Ahora mi objetivo es enviar solicitudes enviadas a https://X.hostname al contenedor app1, sin embargo, a una ruta diferente.
Por ejemplo:
El cliente envía una solicitud a https://A.hostname Nginx la reenvía a https://app1/my/path/
Sin embargo, la ruta no se conserva, solo se reenvía a https://app1 Probé muchas soluciones diferentes disponibles en línea y ninguna funcionó.