我在桌面上运行了Rstudio,我可以通过网络http://my.desktop:8787访问它。
从Rstudio documentation开始,设置反向代理似乎是一种谨慎的安全措施(如果我错了,请纠正我)。
我正在使用Ubuntu 11.04
按照该页面的说明,我安装了ngnix并将代码段添加到/etc/nginx/nginx.conf
:
http {
server {
listen 80;
location / {
proxy_pass http://localhost:8787;
proxy_redirect http://localhost:8787/ $scheme://$host/;
}
}
}
sudo nginx restart -v
返回以下错误:
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
此外,如果我包含以下代码段(以便链接指向/ rstudio而不是:8787):
location /rstudio/ {
rewrite ^/rstudio/(.*)$ /$1 break;
proxy_pass http://localhost:8787;
proxy_redirect http://localhost:8787/ $scheme://$host/rstudio/;
}
sudo nginx restart -v
返回以下错误:
Restarting nginx: nginx: [emerg] unknown directive "location" in
/etc/nginx/nginx.conf:93
我有两个问题:
答案 0 :(得分:1)
看起来端口80已经在使用中。基于标题/问题中互换的“Apache”和“Nginx”,我猜你可能有两台网络服务器正在运行。
我假设您想要选择Nginx并使用那个,因为这就是您正在配置的内容。如果是这种情况,您将需要关闭Apache。 (sudo /etc/init.d/httpd stop
或sudo /etc/init.d/apache2 stop
- 您必须查看/etc/init.d/以查看Apache在Ubuntu中运行的服务。)
然后尝试重新启动nginx以查看是否修复了错误#1。
关于您的第一个问题,出于安全目的使用反向代理当然是个好主意,它实际上与密码的强度无关。 RStudio不是设计成一个Web服务器,所以它中肯定存在各种漏洞,这些漏洞尚未被发现 - 部分原因是它是一个新项目,部分原因是因为它不是一个可靠的Web服务器。另一方面,Apache或nginx经过专门设计和强化,能够暴露给公共网络(如Internet),而不会危及系统的安全性。因此,您将使用相同的(在用户名和密码方面),但您将不那么容易受到来自外部网络的高级攻击。
请注意,使用反向代理的主要目的是使您的计算机上唯一公开的服务是Apache / Nginx - 因此请确保将防火墙配置为阻止端口8787;否则,配置反向代理没有意义。