目前,我在路由器上使用nginx作为反向代理,使用单个服务器块和多个位置映射到NAS上的特定端口。除了一个项目--合成DSM,一切看起来都很好。现在,在我的设置中有广域网访问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中有硬编码的绝对路径。
发布于 2018-10-15 11:01:23
三年前被问及,但我这个月(2018年10月)也遇到了同样的问题。是的,这是一个混乱的硬编码路径。简单的PassProxy/ProxyPassReverse无法工作。我不是电脑专家,一点也不是。我在互联网上找到了这个配置,在许多其他的主张中,作为奇迹,它是唯一起作用的.(Debian 9,Apache2)。斜杠肯定就是这样的。您必须将dsm称为http://your.local.server.name/dsm/或http://your.internet.name/dsm/.我几乎不知道每个配置行到底做了什么,我也不敢删除任何东西。让古鲁弄清楚..。
在我的机器上,我编辑了/etc/apache2/sites启用/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>https://stackoverflow.com/questions/29762940
复制相似问题