nginx反向代理 - synology dsm问题

时间:2015-04-21 04:30:34

标签: nginx reverse-proxy proxypass synology

我目前在我的路由器上使用nginx作为反向代理,只有一个服务器块和多个位置映射到我的NAS上的特定端口。除了一个项目 - Synology DSM之外,一切似乎都运行正常。现在,在我的设置中,我只能通过以下配置访问DSM:

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

我更喜欢这样的事情:

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

然而,我似乎无法让它发挥作用。我已尝试使用/不使用结束斜杠的位置和proxy_pass,并尝试了不同的重写选项,但没有任何效果。我要么得到"找不到页面"错误或页面加载,我可以查看源,但没有显示任何内容。

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

1 个答案:

答案 0 :(得分:0)

问了3年前,但是这个月(2018年10月)我遇到了同样的问题。是的,它与硬编码的路径混在一起。简单的PassProxy / ProxyPassReverse无法正常工作。我不是计算机专家,一点也不。我在互联网上的许多其他地方找到了这种配置,而且奇迹般的是,它是唯一可行的配置……(Debian 9,Apache2)。斜线必须完全采用这种方式。您必须以http://your.local.server.name/dsm / http://your.internet.name/dsm / 呼叫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>