Что я хочу сделать -
У меня запущен сервер 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
Что я сделал -
Я создал rstudio_shiny. блок conf и поместил его в это место, "etc / nginx / conf.d / rstudio_shiny.conf"
Добавил эти строки в "/etc/nginx/nginx.conf" http {map $ http_upgrade $ connection_upgrade {обновление по умолчанию; '' close;}
Что происходит -
- Просмотр "https://code.example.blog" переводит меня на страницу приветствия nginx и без изменений отображается адрес
- Просмотр" 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;
}
}