Tengo un servidor brillante que funciona bien en mi URL, pero tengo problemas para acceder a las aplicaciones de una conexión segura.

Usé Certkot para instalar el certificado SSL y seguí el paso 3 en esta guía para configurar el proxy inverso.

¡Ingresando mi URL en un navegador ahora me lleva directamente al sitio HTTPS con el valor predeterminado "¡Bienvenido al servidor brillante!" Página (es decir, mi servidor IP en el puerto 3838). Todo el texto está ahí ("Si está viendo esta página, eso significa que el servidor brillante está instalado ... etc").

El problema es que las aplicaciones de muestra no se muestran: ambos regresan "404 no encontrados".

My NGINX Server File (NGINX / SITIOS-ACTUALIZADA / SHINY-Server) se ve así:

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;
    }
}

He intentado modificar la sección location numerosas formas basadas en otras respuestas en el desbordamiento de la pila y en otros lugares (por ejemplo, aquí) Pero nada resolvió el problema.

Añadí la siguiente parte inferior de nginx.conf:

# Map proxy settings for RStudio
    map $http_upgrade $connection_upgrade {
        default upgrade;
        '' close;
    }

Y mi shiny-server.conf se ve así (predeterminado):

# 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;
  }
}

Las aplicaciones funcionan bien si voy a http: //my.server.ip: 3838 o http://myurl.com:3838, pero no si voy a https://myurl.com o http://myurl.com (la página de servidor brillante se carga en ambos casos, pero las aplicaciones de muestra son 404).

0
Adrian 28 jun. 2019 a las 23:50

1 respuesta

La mejor respuesta

Está bien, resulta que la línea try_files $uri $uri/ =404; estaba causando el problema. Comentó eso y todo está bien.

0
Adrian 28 jun. 2019 a las 22:54