使用Nginx代理服务器设置Rstudio时出错

时间:2012-03-21 16:40:16

标签: apache r nginx rstudio

我在桌面上运行了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

我有两个问题:

  1. 如果我使用强密码,反向代理服务器有多必要?
  2. 如何解决这些错误?

1 个答案:

答案 0 :(得分:1)

看起来端口80已经在使用中。基于标题/问题中互换的“Apache”和“Nginx”,我猜你可能有两台网络服务器正在运行。

我假设您想要选择Nginx并使用那个,因为这就是您正在配置的内容。如果是这种情况,您将需要关闭Apache。 (sudo /etc/init.d/httpd stopsudo /etc/init.d/apache2 stop - 您必须查看/etc/init.d/以查看Apache在Ubuntu中运行的服务。)

然后尝试重新启动nginx以查看是否修复了错误#1。

关于您的第一个问题,出于安全目的使用反向代理当然是个好主意,它实际上与密码的强度无关。 RStudio不是设计成一个Web服务器,所以它中肯定存在各种漏洞,这些漏洞尚未被发现 - 部分原因是它是一个新项目,部分原因是因为它不是一个可靠的Web服务器。另一方面,Apache或nginx经过专门设计和强化,能够暴露给公共网络(如Internet),而不会危及系统的安全性。因此,您将使用相同的(在用户名和密码方面),但您将不那么容易受到来自外部网络的高级攻击。

请注意,使用反向代理的主要目的是使您的计算机上唯一公开的服务是Apache / Nginx - 因此请确保将防火墙配置为阻止端口8787;否则,配置反向代理没有意义。