NGINX 背后的 Synology DSM:如何 proxy_pass 共享文件的 url?

问题描述 投票:0回答:1

我可以使用以下配置访问 Synology DSM,不会出现任何问题(这不是 Synology NGINX!):

server {
    listen 443 ssl http2;
    server_name dsm.mydomain.de;
    ssl_certificate
    /etc/nginx/ssl/live/dsm.mydomain.de/fullchain.pem;
    ssl_certificate_key /etc/nginx/ssl/live/dsm.mydomain.de/privkey.pem;

     location / {
        return 301 https://dsm.mydomain.de/dsm;
    }

    location /dsm/ {
        client_max_body_size 0;
        proxy_pass http://192.168.0.92:5000/;
        proxy_redirect off;
        proxy_http_version 1.1;
        proxy_buffering on;
        proxy_read_timeout 120;
        proxy_max_temp_file_size 0m;
        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-Proto $scheme;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header X-NginX-Proxy true;
        proxy_set_header Connection "";
        proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
    }

当我通过 Synology FileStation 共享文件时,我会收到一个共享链接,看起来像

https://dsm.mydomain.de/sharing/a4fJsmUYK

所以我认为将位置/共享/添加到服务器块就可以完成这项工作。 但是当访问共享网址时,它永远显示“正在加载...”。

(我可以使用

http://192.168.0.92:5000/sharing/a4fJsmUYK
访问共享文件)

有人知道解决办法吗?

nginx-reverse-proxy synology
1个回答
0
投票

我遇到了同样的问题,并通过更改域绕过了它。 当您在本地访问 Synology Drive 时,您会转到 http(s)://localip:port。但当你分享它时,它是http(s)://localip/stringchart。 假设您的drive的反向代理是drive.domain.com,DSM的反向代理是dsm.domain.com,您的共享链接将为http(s)://drive.domain.com/stringchart,并且它无法工作:您将尝试访问不存在的http(s)://localip:port/stringchart。 我刚刚将网址从 http(s)://drive.domain.com/stringchart 更改为 http(s)://dsm.domain.com/stringchart 并且它有效。 这不是一个真正的解决方案,但它确实有效。

© www.soinside.com 2019 - 2024. All rights reserved.