У меня Shiny Server работает нормально по моему URL, но у меня проблемы с доступом к приложениям через безопасное соединение.
Я использовал Certbot для установки SSL-сертификата и следовал Шагу 3 в этого руководства для настройки обратного прокси-сервера.
После ввода моего URL-адреса в браузер я сразу попадаю на сайт https со значением по умолчанию «Welcome to Shiny Server!»страница (т.е. мой сервер ip на порт 3838).Весь текст там («Если вы видите эту страницу, это означает, что Shiny Server установлен ... и т. Д.»).
Проблема в том, что примеры приложений не отображаются - они оба возвращают '404Not Found '.
Файл моего сервера nginx (nginx / sites-available / блестящий-сервер) выглядит следующим образом:
server {
listen 80 ;
listen [::]:80 ;
root /var/www/html;
# Add index.php to the list if you are using PHP
index index.html index.htm index.nginx-debian.html;
server_name myURL.com; # managed by Certbot
listen [::]:443 ssl ipv6only=on; # managed by Certbot
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/myURL.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/myURL.com/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
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
proxy_pass http://server.ip.address:3838/;
proxy_redirect http://server.ip.address:3838/ https://$host/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_read_timeout 20d;
}
}
Я пытался изменить раздел location
различными способамиоснованный на других ответах о переполнении стека и в других местах (например, здесь ), но ничего не помогло решить проблему.
Я добавил нижнюю часть nginx.conf
:
# Map proxy settings for RStudio
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
и мой shiny-server.conf
выглядит следующим образом (по умолчанию):
# Instruct Shiny Server to run applications as the user "shiny"
run_as shiny;
# Define a server that listens on port 3838
server {
listen 3838;
# Define a location at the base URL
location / {
# Host the directory of Shiny Apps stored in this directory
site_dir /srv/shiny-server;
# Log all Shiny output to files in this directory
log_dir /var/log/shiny-server;
# When a user visits the base URL rather than a particular application,
# an index of the applications available in this directory will be shown.
directory_index on;
}
}
Приложения работают нормально, если я иду на http://my.server.ip:3838 или http://myURL.com:3838,, но не если я иду на https://myURL.com или http://myURL.com (страница Shiny Server загружается в обоих случаях, но примеры приложений - 404).