1

我的桌面上运行着 Rstudio,我可以通过http://my.desktop:8787从 Web 访问它。

Rstudio 文档看来,设置反向代理是一种谨慎的安全措施(如果我错了,请纠正我)。

我正在使用 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. 我怎样才能克服这些错误?
4

1 回答 1

1

看起来端口 80 已在使用中。根据您的标题/问题中互换的“Apache”和“Nginx”,我猜您可能有两个 Web 服务器正在运行。

我假设你想选择 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;否则,配置反向代理毫无意义。

于 2012-03-21T19:27:37.327 回答