proxy reverso nginx não carrega conteúdo

proxy reverso nginx não carrega conteúdo

Estou tentando configurar um proxy reverso com nginx no docker para poder acessar dispositivos "backend" (página de login nas, página de login do roteador) por meio de diferentes locationdiretivas, proxy_passmas não consigo descobrir. meu *.conf real (usando um apps.conf específico)

server {
listen 80;
server_name DDNS_NAME LOCAL_DOCKER_HOST;
location / {
    return 301 https://$host$request_uri;
}
server {
    listen 443 ssl;
    access_log /var/log/nginx/access_log.txt;
    error_log /var/log/nginx/error_log.txt;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
    ssl_ciphers "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS +RC4 RC4";
    server_name DDNS_NAME LOCAL_DOCKER_HOST;
    ssl_certificate xxx;
    ssl_certificate_key xxx;
    location / {
        proxy_pass http://LOCAL_DOCKER_HOST:9000/; #portainer
    }
    location /NAS {
        proxy_pass http://NAS_LOCAL; #nas webUI
        proxy_set_header HOST $host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

funciona location /95%, porque na verdade carrega a interface do Portainer, mas não consigo estabelecer a conexão do console dentro dele, parece que o Portainer usa uma porta/socket/qualquer coisa diferente ao conectar ao console do contêiner... de qualquer forma, posso sobreviver sem ele.

a maldita parte é location /NAS... isso é umcurl -L DDNS_NAME/NAS -vvvv

> GET /NAS HTTP/1.1
> Host: DDNS_NAME
> User-Agent: curl/7.68.0
> Accept: */*
>
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* old SSL session ID is stale, removing
* Mark bundle as not supporting multiuse
< HTTP/1.1 302 Found
< Server: nginx/1.19.5
< Date: Tue, 01 Dec 2020 16:23:02 GMT
< Content-Type: text/html; charset=iso-8859-1
< Content-Length: 212
< Connection: keep-alive
< Location: /r51201,/desktop,/login.html
<
* Ignoring the response-body

* Connected to DDNS_NAME (PUBLIC_IP) port 443 (#1)
> GET /r51201,/desktop,/login.html HTTP/1.1
> Host: DDNS_NAME
> User-Agent: curl/7.68.0
> Accept: */*
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 404 Not Found
< Server: nginx/1.19.5
< Date: Tue, 01 Dec 2020 16:23:02 GMT
< Content-Type: text/plain; charset=utf-8
< Content-Length: 19
< Connection: keep-alive
< Cache-Control: max-age=31536000
< X-Content-Type-Options: nosniff
< X-Xss-Protection: 1; mode=block
<
404 page not found

ele obtém resposta do dispositivo certo (então o proxy inicial funciona) porque é redirecionado, */r51201,/desktop,/login.htmlmas o navegador (ou curl -L) tenta carregar recursos de DDNS_NAME/r51201,/desktop,/login.htmle, claro, recebo um 404. Estou lutando com isso há semanas , tentando combinações infinitas de proxy_set_header, mas talvez não consiga encontrar a certa.

é claro que ajustei as saídas para ocultar informações pessoais e tenho mais de uma locationque gostaria de acessar, mas todas fazem o mesmo, então relatei apenas uma

desde já, obrigado

informação relacionada