我在本地网络上的一台机器上运行不安全的 ScreenConnect Web 界面。我想使用 nginx 的反向代理通过端口 443 为其提供服务,并通过以下方式访问它:
https://<WAN.IP.ADDRESS>/screenconnect
我的 nginx.conf 位置块:
location / {
root /www/var/nginx/html
}
location /screenconnect/ {
proxy_pass http://local.screenconnect.server:8040/;
proxy_buffering off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
我成功进入 Screen Connect Web 界面,网址如下
https://<WAN.IP.ADDRESS>/screenconnect/
但是,我访问的任何其他子目录(例如)https://<WAN.IP.ADDRESS>/screenconnect/login.php?
都会删除/screenconnect/
子目录并尝试访问,https://<WAN.IP.ADDRESS>/login.php?
这会引发 404 错误。
我尝试过的事情
- 我插入了
/screenconnect/
并https://<WAN.IP.ADDRESS>/login.php?/
得到了https://<WAN.IP.ADDRESS>/screenconnect/login.php?
,这给了我所需的站点。 - 我已经调整了 screenconnect 服务器上的 web.config 文件并附加了正确的目录:
<add key="WebServerAddressableUri" value="https://WAN.IP.ADDRESS:443/screenconnect/" />
- 我尝试删除
/
末尾proxy_pass http://local.screenconnect.server:8040/;
的location /screenconnect/
- 我还尝试了许多不同的简单指令,这些指令都是由遇到相关问题的人提供的
- 我已经将 screenconnect 服务器的 IP 替换为在端口 80 上运行的 apache 服务器,该服务器有一个简单的 html 页面,可重定向到子文件夹。重定向时,/screenconnect/ 目录会正确添加到前面。