gpt4 book ai didi

r - Shiny Server - 托管附加应用程序的问题

转载 作者:行者123 更新时间:2023-12-02 00:57:45 24 4
gpt4 key购买 nike

我目前有一个实时网站,目前通过 Shiny 的服务器托管一个应用程序。一段时间以来,我一直试图弄清楚如何将附加应用程序托管为域的扩展。如果我的网站是托管主应用程序的“www.mywebsite.com”,我想在“www.mywebsite.com/SecondApp”托管另一个应用程序。我已经通读了我找到的所有文档,看来这应该可以通过更改 shiny-server.conf 来实现。/etc/shiny-server 目录中的文件。根据第 2.2.2 节在 Shiny Server Admin Guide 中的位置似乎更新配置文件应该可以实现这一点:

server {
...
location /SecondApp {
app_dir /srv/shiny-server/SecondApp
}
...
}

我已经将各自的 ui.R 和 server.R 脚本添加到/srv/shiny-server/SecondApp 目录中,并且我能够在我的浏览器浏览器中本地运行它
MYIP:3838/SecondApp/ 

但是当我更新 shiny-server.conf脚本并重新启动 Shiny 的服务器,“www.mywebsite.com/SecondApp”返回一个显示“未找到”的空白屏幕。我还没有尝试为这个应用程序设置一个新端口,但是从我在文档和各种 github 脚本中看到的所有内容来看,这个配置似乎应该有效。我错过了什么?我的完整配置文件如下所示:
# Instruct Shiny Server to run applications as the user "shiny"
run_as shiny;

# Define a server that listens on port 3838
server {
listen 3838;

log_dir /var/log/shiny-server;

# Add extension
location /SecondApp {
app_dir /srv/shiny-server/SecondApp;
}

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

这里的问题是端口吗?看起来 3838 是默认的 Shiny 服务器端口,从我看到的情况来看,其他人有时会更新它以通过自己的端口运行。但正如我所提到的,我运行的当前站点完全正常。我还尝试通过添加其他位置来更新/etc/nginx/sites-enabled 目录中的 nginx 配置文件,但这无济于事:
server {
...
location /SecondApp {
proxy_pass http://MYIP:3838/SecondApp/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
...
}

除非这与我的实际域有关,否则我不知所措。有任何想法吗?谢谢!

最佳答案

如果你在 /etc/nginx/sites-enabled/ 中配置了 nginx 配置将所有流量代理到端口 3838,如下所示:

location / {
proxy_pass http://127.0.0.1:3838/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}

然后,您可以使用 Shiny-server 配置来控制在什么扩展程序中提供哪些应用程序。下面的配置应该适合你。
# 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 your main app at the base URL
app_dir /srv/shiny-server/MainApp;

# Log all Shiny output to files in this directory
log_dir /var/log/shiny-server;

# define a location within the base location
# to serve your second app
location /SecondApp {
app_dir /srv/shiny-server/SecondApp;
}
}

}

请记住重新启动 nginx 和 Shiny-server 以使更改生效。
sudo systemctl restart nginx
sudo systemctl restart shiny-server

关于r - Shiny Server - 托管附加应用程序的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53150656/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com