首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >nginx反向代理-语法dsm问题

nginx反向代理-语法dsm问题
EN

Stack Overflow用户
提问于 2015-04-21 04:30:34
回答 1查看 3K关注 0票数 2

目前,我在路由器上使用nginx作为反向代理,使用单个服务器块和多个位置映射到NAS上的特定端口。除了一个项目--合成DSM,一切看起来都很好。现在,在我的设置中有广域网访问DSM的唯一方法是使用以下配置:

代码语言:javascript
运行
复制
location / {
   proxy_pass http://127.0.0.1:5000;
}

我更喜欢这样的东西:

代码语言:javascript
运行
复制
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中有硬编码的绝对路径。

EN

回答 1

Stack Overflow用户

发布于 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,但我认为脚本可以在任何反向代理服务器上运行。

代码语言:javascript
运行
复制
<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>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29762940

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档