nginx反向代理- synology dsm问题

dgtucam1  于 2023-04-29  发布在  Nginx
关注(0)|答案(1)|浏览(173)

我目前有nginx作为我的路由器上的反向代理,有一个服务器块和多个位置Map到我的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中硬编码的绝对路径。

wlp8pajw

wlp8pajw1#

3年前问过,但我这个月(2018年10月)遇到了同样的问题。是的,硬编码路径是一团糟。Simple PassProxy/ProxyPassReverse不工作。我不是电脑Maven,一点也不是。我在互联网上的某个地方找到了这个配置,在许多许多其他的主张中,作为一个奇迹,它是唯一一个起作用的。..(Debian 9,Apache2).斜线必须正好是这样。您必须将dsm调用为http://your.local.server.name/dsm/http://your.internet.name/dsm/。我几乎不知道每一个配置行到底是做什么的,我也不敢删除任何东西。让大师们自己想办法吧。..
在我的机器上,我编辑了/etc/apache 2/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>

相关问题