我在服务器上运行 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)之外的所有端口的传入连接。