簡體   English   中英

如何設置RStudio服務器以在AWS上運行SSL?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM