应用程序仍可通过反向代理端口访问

应用程序仍可通过反向代理端口访问

我在服务器上运行 RStudio Server 和 Jupyter。我使用的是 Apache。

我将 Jupyter 从端口 8888 反向代理到 jupyter.myserver.com,将 RStudio Server 从端口 8787 反向代理到 rstudio.myserver.com。我无法通过 myserver.com:8888 访问 jupyter。但是,我可以通过 myserver.com:8787 访问 RStudio Server。

我对两者使用相同的反向代理格式。

如果我listen 80在文件顶部添加.conf,我会收到错误:

无法在同一个 IP:port 上定义多个监听器

1) 原因是什么?
2) 如何阻止 Rstudio 的 url:port 访问?

<VirtualHost *:80>
        ServerAdmin [email protected]
        ServerName jupyter.myserver.com
        ServerAlias jupyter.myserver.com
        ProxyRequests Off

        <Location />
                ProxyPreserveHost On
                ProxyPass http://localhost:8787/
                ProxyPassReverse http://localhost:8787/
        </Location>

</VirtualHost>

答案1

文档,将 RStudio 配置为监听环回地址 127.0.0.1,而不是服务器的 IP 地址,因此它将只接受本地连接(例如来自同一服务器上的 Apache):

网络端口和地址 初始安装后,RStudio 接受端口 8787 上的连接。如果您希望更改为另一个端口,则应创建一个 /etc/rstudio/rserver.conf 文件(如果尚不存在)并添加与您希望 RStudio 监听的端口相对应的 www-port 条目。例如:

www-port=80

默认情况下,RStudio 绑定到地址 0.0.0.0(接受来自任何远程 IP 的连接)。您可以使用 www-address 条目修改此行为。例如:

www-address=127.0.0.1

请注意,编辑 /etc/rstudio/rserver.conf 文件后,您应该始终重新启动服务器以应用更改(并验证配置条目是否有效)。您可以通过输入以下命令来执行此操作:

$ sudo rstudio-server 重启

或者,打开服务器的防火墙并阻止除 22(SSH)和 80(Apache)之外的所有端口的传入连接。

相关内容