Как настроить HTTPS rstudio-сервер и блестящий сервер на обратном прокси-сервере nginx на Raspberry Pi - PullRequest
0 голосов
/ 09 октября 2019

Что я хочу сделать -

У меня запущен сервер Rstudio и Shiny на моем Raspberry Pi, доступный через http://"my.public.ip":8787 и порт 3838. Я хочу связать оба сервера через Nginx с моим доменом, например, "https://code.example.blog/rstudio" и аналогично для сервера с изменением блеска ... / spark-admin. Домен code.example.blog приобретен у Wordpress и указывает на мойобщедоступный IP.

Мои ссылки -

Я новичок, я просмотрел информацию, доступную в Google, и использовал эти два сайта в качестве справочных. - https://ttdtrang.tk/2019/04/configure-nginx-as-a-reverse-proxy-for-rstudio-server/ - https://gist.github.com/magic-lanter/1b5e11c3cf5964b69e8e7824df015c5d

Что я сделал -

  1. Я создал rstudio_shiny. блок conf и поместил его в это место, "etc / nginx / conf.d / rstudio_shiny.conf"

  2. Добавил эти строки в "/etc/nginx/nginx.conf" http {map $ http_upgrade $ connection_upgrade {обновление по умолчанию; '' close;}

Что происходит -

  1. Просмотр "https://code.example.blog" переводит меня на страницу приветствия nginx и без изменений отображается адрес
  2. Просмотр" https://code.example.blog/rstudio" перенаправляет на http: //"my.public.ip": 8787

Это поведение должно измениться на -

  • необходимо использовать https вместо http
  • адрес должен оставаться как "https://code.example.blog/rstudio" вместо отображения моего публичного IP-адреса (низкий приоритет)

Не могли бы вы взглянуть на блок ниже и предложитьРешение также не могли бы вы посоветовать мне, если этот конфиг позволит мне разместить блестящее приложение?

Моя сеть -

Статический IP с 80,443,22,87873838 как открытый порт

**

и т.д. / nginx / conf.d / rstudio_shiny.conf **

server {     

if ($host = code.example.blog) {     
  return 301 https://$host$request_uri;  
   } # managed by Certbot    
listen 80 ;   
listen [::]:80 ;     
server_name code.example.blog;   

}    



server {     
   access_log /var/log/nginx/code.example.blog;  
   root /var/www/html;   
   index index.html index.htm index.nginx-debian.html;   
   listen 443 ssl default_server;    
   listen [::]:443 ssl default_server;  

 ssl_certificate /etc/letsencrypt/live/code.example.blog/fullchain.pem; # managed by Certbot     
 ssl_certificate_key /etc/letsencrypt/live/code.example.blog/privkey.pem; # managed by Certbot   
 include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot   
 ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot     
 server_name code.example.blog;  

location /rstudio/ {     
 rewrite ^/rstudio/(.*)$ /$1 break;  
 proxy_pass http://MY.PUB.IP:8787;   
 proxy_redirect http://MY.PUB.IP:8787/ $scheme://$host/rstudio/;      
 proxy_http_version 1.1;     
 proxy_set_header Upgrade $http_upgrade;     
 proxy_set_header Connection $connection_upgrade;    
 proxy_read_timeout 20d;     
}    

location /shiny-admin/ {      
 rewrite ^/shiny-admin/(.*)$ /$1 break;  
 proxy_pass http://MY.PUB.IP:3838;   
 proxy_redirect http://MY.PUB.IP:8787/ $scheme://$http_host/shiny-admin/;    
 proxy_http_version 1.1;     
 proxy_set_header Upgrade $http_upgrade;     
 proxy_set_header Connection $connection_upgrade;    
 proxy_read_timeout 20d;     
 proxy_buffering off;    

}    
}
...