反向代理nginx不載入內容

反向代理nginx不載入內容

我正在嘗試在 docker 下使用 nginx 設定反向代理,以便能夠透過不同的location指令存取「後端」裝置(nas 登入頁面、路由器登入頁面),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;
    }
}

工作location /效率為95%,因為它實際上加載了Portainer 介面,但後來我無法在其中建立控制台連接,似乎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但瀏覽器(或curl -L)嘗試從 加載資源DDNS_NAME/r51201,/desktop,/login.html,當然我得到了404。週,嘗試 proxy_set_header 的無限組合,但也許我找不到正確的組合。

當然,我調整了輸出以隱藏個人訊息,並且我想要聯繫多個輸出location,但所有人都這樣做,所以我只報告了一個

先致謝

相關內容