[英]How can I set up an RStudio server to run with SSL on AWS?
我对在AWS实例上运行RStudio服务器并通过SSL加密连接访问服务器感兴趣。
我该如何设置?
除了通过端口22进行的SSH连接外,还应启动一个以Ubuntu为操作系统和安全组的AWS实例,该安全组在端口443上具有HTTPS的入站连接。您的实例还必须具有一个公共DNS。
机器启动并运行后,使用SSH登录。
通过执行以下操作,按照此处提供的说明安装RStudio服务器:
sudo apt-get update
sudo apt-get install r-base
sudo apt-get install gdebi-core
wget https://download2.rstudio.org/rstudio-server-1.1.463-amd64.deb
sudo gdebi rstudio-server-1.1.463-amd64.deb
注意: .deb
文件的确切名称将随RStudio服务器的较新版本而改变。
我们将按照此处和此处提供的说明来配置nginx Web服务器,以将代理 RStudio服务器反向到Web浏览器并使用SSL。 要安装nginx,请执行:
sudo apt-get install nginx
创建SSL证书:
sudo mkdir /etc/nginx/ssl
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/ssl/nginx.key -out /etc/nginx/ssl/nginx.crt
后一个命令创建两个文件:密钥文件和SSL证书文件。
在/etc/nginx/conf.d/rstudio.conf
下创建一个文件并进行编辑(注意:您需要使用sudo nano /etc/nginx/conf.d/rstudio.conf
或类似文件进行编辑)以添加:
server {
listen 80;
listen [::]:80;
listen 443 ssl;
ssl_certificate /etc/nginx/ssl/nginx.crt;
ssl_certificate_key /etc/nginx/ssl/nginx.key;
server_name ec2-11-22-333-444.us-west-2.compute.amazonaws.com;
location / {
proxy_pass http://localhost:8787/;
proxy_redirect http://localhost:8787/ $scheme://$host/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_read_timeout 20d;
}
}
在其中将server_name
字段替换为AWS实例的公共DNS IP的位置。
另外,您将需要编辑/etc/nginx/nginx.conf
文件,以/etc/nginx/nginx.conf
添加到http
块中:
http {
# All you other settings up here...
server_names_hash_bucket_size 128;
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
}
由于此处说明的原因,将server_names_hash_bucket_size
设置为128很重要
最后,编辑/etc/rstudio/rserver.conf
配置文件以添加以下行:
www-address=127.0.0.1
接下来,为您的用户创建用户帐户。 例如:
sudo adduser arokem
现在,您应该能够重新启动nginx和rstudio-server了:
sudo rstudio-server restart
sudo systemctl restart nginx
并将您的浏览器定向到https://ec2-11-22-333-444.us-west-2.compute.amazonaws.com
。 您可能会从浏览器收到警告,提示它无法识别SSL证书。 可以安全地忽略此警告(在这种情况下),然后转到RStudio服务器登录窗口。 使用您刚创建的用户登录名访问RStudio。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.