Las redirecciones automáticas del proxy inverso de Nginx van al puerto incorrecto

Las redirecciones automáticas del proxy inverso de Nginx van al puerto incorrecto

Estoy intentando configurar un proxy inverso para un contenedor acoplable usando nginx.

El contenedor acoplable está disponible y funciona en el puerto 8000.

Me gustaría poder acceder al contenedor a través de la dirección midominio.com:80/micontenedor.

El proxy inverso parece lograr comunicarse con el contenedor, pero cuando el contenedor solicita una redirección a su página de inicio de sesión, nginx intenta cargar la página de inicio de sesión en el puerto 80 en lugar de 8000, lo cual falla.

esta es mi configuración de nginx hasta ahora:

    upstream docker-container {
        server 127.0.0.1:8000;
    }

    server {
        listen 80;

        location /mycontainer {
            proxy_redirect     off;
            proxy_set_header   Host $http_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_set_header   Upgrade $http_upgrade;
            proxy_set_header   Connection "upgrade";
            proxy_pass         http://docker-container;

        }

    }

Esto es lo que obtengo cuando ejecuto wget -S 127.0.0.1/mycontainer:

wget -S 127.0.0.1/mycontainer
--2021-08-29 20:30:12--  http://127.0.0.1/mycontainer
Connecting to 127.0.0.1:80... connected.
HTTP request sent, awaiting response...
  HTTP/1.1 302 Found
  Server: nginx/1.18.0 (Ubuntu)
  Date: Sun, 29 Aug 2021 20:30:12 GMT
  Content-Type: text/plain; charset=utf-8
  Content-Length: 28
  Connection: keep-alive
  Content-Language: en
  X-Frame-Options: SAMEORIGIN
  X-Download-Options: noopen
  X-Content-Type-Options: nosniff
  Referrer-Policy: origin-when-cross-origin
  X-XSS-Protection: 1; mode=block
  Location: /login
  Vary: Accept
  Set-Cookie: some cookie
Location: /login [following]
--2021-08-29 20:30:12--  http://127.0.0.1/login   <--- HERE IS THE PROBLEM. Should be 127.0.0.1:8000/login
Reusing existing connection to 127.0.0.1:80.
HTTP request sent, awaiting response...
  HTTP/1.1 404 Not Found
  Server: nginx/1.18.0 (Ubuntu)
  Date: Sun, 29 Aug 2021 20:30:12 GMT
  Content-Type: text/html
  Content-Length: 162
  Connection: keep-alive
2021-08-29 20:30:12 ERROR 404: Not Found.

De ninguna manera soy un profesional en esto, así que estoy seguro de que hay muchos errores.

¿Cómo puedo hacer que las redirecciones automáticas apunten al puerto correcto (8000) y no al puerto 80?

información relacionada