Блестящий сервер с nginx и https: 404 для приложений - PullRequest
0 голосов
/ 28 июня 2019

У меня 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).

1 Ответ

0 голосов
/ 29 июня 2019

Хорошо, получается, что строка try_files $uri $uri/ =404; вызывала проблему.Прокомментировал это и все хорошо.

...