Как настроить сервер RStudio для работы с SSL на AWS? - PullRequest
0 голосов
/ 01 ноября 2018

Меня интересует запуск сервера RStudio на экземпляре AWS и доступ к серверу через зашифрованное соединение SSL.

Как мне это настроить?

1 Ответ

0 голосов
/ 01 ноября 2018

Запустите экземпляр AWS с Ubuntu в качестве операционной системы и группой безопасности, которая имеет входящее соединение для HTTPS через порт 443, в дополнение к соединению SSH через порт 22. У вашего экземпляра также должен быть общедоступный 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 на обратный прокси-сервер RStudio для веб-браузера и использования 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 общедоступным IP-адресом DNS вашего экземпляра AWS.

Кроме того, вам нужно отредактировать файл /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-сервер:

sudo rstudio-server restart
sudo systemctl restart nginx

И направьте свой браузер на https://ec2-11-22-333-444.us-west-2.compute.amazonaws.com. Вы, вероятно, получите предупреждение от своего браузера, что он не распознает ваш SSL-сертификат. Можно игнорировать это предупреждение (в данном случае) и перейти к окну входа на сервер RStudio. Используйте логин пользователя, который вы только что создали, для доступа к RStudio.

...