역방향 프록시 nginx가 콘텐츠를 로드하지 않음

역방향 프록시 nginx가 콘텐츠를 로드하지 않음

location다른 지시어를 통해 "백엔드" 장치(NAS 로그인 페이지, 라우터 로그인 페이지)에 액세스할 수 있도록 docker에서 nginx를 사용하여 역방향 프록시를 설정하려고 하는데 proxy_pass알 수 없습니다. 내 실제 *.conf(특정 apps.conf 사용)

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;
    }
}

실제로 Portainer 인터페이스를 로드하기 때문에 95% 작동 location /하지만 그 내부에서 콘솔 연결을 설정할 수 없습니다. Portainer가 컨테이너 콘솔에 연결할 때 다른 포트/소켓/무엇이든 사용하는 것 같습니다... 어쨌든, 할 수 있습니다 그것 없이도 살아남으세요.

빌어먹을 부분은 location /NAS...그건curl -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

올바른 장치에서 응답을 얻습니다(초기 프록시가 작동함). 로 리디렉션되기 때문에 */r51201,/desktop,/login.html브라우저(또는 컬 -L)가 에서 리소스를 로드하려고 시도하고 DDNS_NAME/r51201,/desktop,/login.html물론 404가 표시됩니다. 몇 주 동안 이 문제로 어려움을 겪고 있습니다. , Proxy_set_header의 무한한 조합을 시도했지만 아마도 올바른 것을 찾지 못할 수도 있습니다.

물론 개인 정보를 숨기기 위해 출력을 조정했고 location연락하고 싶은 것이 두 개 이상 있지만 모두 동일하므로 하나만 보고했습니다.

미리 감사드립니다

관련 정보