Rstudio and shiny server proxy setting

余生长醉 提交于 2019-12-12 09:37:49

问题


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.


回答1:


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.



来源:https://stackoverflow.com/questions/24060239/rstudio-and-shiny-server-proxy-setting

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!