【问题标题】:nginx reverse proxy - synology dsm issuenginx 反向代理 - synology dsm 问题
【发布时间】:2018-10-15 19:01:23
【问题描述】:

我目前在我的路由器上使用 nginx 作为反向代理,其中一个服务器块和多个位置映射到我的 NAS 上的特定端口。除了一项——Synology DSM 外,一切似乎都运行良好。现在,在我的设置中,我可以通过 WAN 访问 DSM 的唯一方法是使用以下配置:

location / {
   proxy_pass http://127.0.0.1:5000;
}

我更喜欢这样的:

location /dsm {
   proxy_pass http://127.0.0.1:5000;
}

但是,我似乎无法让它工作。我尝试了带/不带斜杠的 location 和 proxy_pass 并尝试了不同的重写选项,但没有任何效果。我要么得到“找不到页面”错误,要么页面加载,我可以查看源代码但没有显示任何内容。

应该注意的是,DSM 是基于 CGI 的(加载为 http://127.0.0.1:5000/webman/index.cgi),并且看起来在 css 和 js 中硬编码了绝对路径。

【问题讨论】:

    标签: nginx reverse-proxy proxypass synology


    【解决方案1】:

    3 年前问过,但这个月(2018 年 10 月)我遇到了同样的问题。是的,硬编码路径一团糟。简单的 PassProxy/ProxyPassReverse 不起作用。我不是计算机专家,一点也不。我在互联网上的某个地方找到了这个配置,在许多其他的命题中,作为一个奇迹,它是唯一一个有效的......(Debian 9,Apache2)。斜线必须完全以这种方式。您必须将 dsm 称为 http://your.local.server.name/dsm/http://your.internet.name/dsm/。 我几乎不知道每条配置行到底是做什么的,我也不敢删除任何东西。让大师们弄清楚...

    在我的机器上,我编辑了 /etc/apache2/sites-enabled/000-default.conf 但我想该脚本可以在任何反向代理服务器上运行。

    <VirtualHost *:80>
    ServerName your.local.server.name
    ServerAlias your.internet.name
    
    <Location /dsm/>
    ProxyPass http://your.synology.dsm:5000/
    ProxyPassReverse /
    ProxyHTMLEnable On
    ProxyHTMLURLMap /       /dsm/
    RequestHeader unset  Accept-Encoding
    
    Order allow,deny
    Allow from all
    
    </Location>
    </VirtualHost>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-05-20
      • 1970-01-01
      • 2014-10-27
      • 2016-02-12
      • 2015-08-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多