Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Rstudio and shiny server proxy setting

i have installed RStudio Server v0.98.507 and Shiny Server v1.1.0.10000 on my ubuntu14

my rstudio proxy setting on nginx default

location /rstudio/ {
     rewrite ^/rstudio/(.*)$ /$1 break;
     proxy_pass http://localhost:8787;
     proxy_redirect http://localhost:8787/ $scheme://$host/rstudio/;
}

that' my shiny server setting at /etc/shiny-server/shiny-server.conf

    # Define the user we should use when spawning R Shiny processes
        run_as shiny;

    # Define a top-level server which will listen on a port
        server {
      # Instruct this server to listen on port 3838
      listen 3838;

          # Define the location available at the base URL
      location / {


        # Run this location in 'site_dir' mode, which hosts the entire directory
        # tree at '/srv/shiny-server'
        site_dir /srv/shiny-server;

        # Define where we should put the log files for this location
        log_dir /var/log/shiny-server;

        # Should we list the contents of a (non-Shiny-App) directory when the user 
        # visits the corresponding URL?
        directory_index on;
      }
    }

i can run both rstudio and shiny-server, however, when i call a shiny example such as

library(shiny)
runExample("01_hello")

when RStudio complier prompt

Listening on http://'127.0.0.1':7146

the url return a invalid response and here the console on my chrome shown

WebSocket connection to 'ws://mydomain.com/rstudio/p/7146/websocket/' failed: Error during WebSocket handshake: Unexpected response code: 404 mydomaion.com/rstudio/p/7146/shared/shiny.js:507
WebSocket is already in CLOSING or CLOSED state. 

However, when i remove the proxy bypass of the RStudio in nginx default to

 #location /rstudio/ {
 #        rewrite ^/rstudio/(.*)$ /$1 break;
 #       proxy_pass http://localhost:8787;
 #      proxy_redirect http://localhost:8787/ $scheme://$host/rstudio/;
 # }

it can run the shiny application from RStudio.

My question is how could i config the RStudio and Shiny server so i could remove :8787 to run the rstudio and :3838 to run the shiny server.

like image 255
user2285201 Avatar asked Jun 05 '14 12:06

user2285201


1 Answers

RStudio complier prompt

Listening on http://'127.0.0.1':7146

Doesn't this mean that you should be passing the proxied request to 7146 rather than 8787?

The 404 error message indicates that the path isn't found.

To answer the question more directly, look here: http://table1.org/setting-up-an-ubuntu-server-with-nginx-up-to-run-shiny-applications.

That page gives the nginx siteconf file to read:

server {
    listen 80;
    server_name shinyapp.domain.name;

    location / {
            proxy_pass http://server-ip-address:3838/shinyapp/;
            proxy_redirect http://server-ip-address:3838/ $scheme:$host/;
    }
}

So, you should be able to run your shiny server without having to proxy it through RStudio. Since you want to run it in a sub directory, you might be able to use this code:

location /rstudio/ {
     rewrite ^/rstudio/(.*)$ /$1 break;
     proxy_pass http://localhost:3838;
     proxy_redirect http://localhost:3838/ $scheme://$host/rstudio/;
}

If that doesn't work, try changing out localhost for 127.0.0.1 or the actual ip address.

like image 184
Shawn Patrick Rice Avatar answered Nov 30 '22 06:11

Shawn Patrick Rice