首页 > 解决方案 > 带有 nginx/Ubuntu 20.04.1 和自定义域的闪亮应用程序/闪亮服务器

问题描述

我希望通过 Google 域(比如说:dataiscool.net)在具有自定义域的 Digital Ocean 液滴上托管一些闪亮的应用程序。我已按照此处的说明设置液滴并安装闪亮的服务器:https ://deanattali.com/2015/05/09/setup-rstudio-shiny-server-digital-ocean/

设置了 Shiny Server 服务器并清理了服务器块,以便将端口:3838 替换为 /shiny/。这很好用。

我已将注册商设置为指向 Digital Ocean 名称服务器,如下所示:https ://www.digitalocean.com/community/tutorials/how-to-point-to-digitalocean-nameservers-from-common-domain-registrars

并在 Digital Ocean 上设置 DNS 方面,如下所述:https ://www.digitalocean.com/docs/networking/dns/how-to/add-domains/

我可以通过 IP(例如,64.238.119.95/shiny/app)访问我的 Shiny 应用程序,但我无法在自定义域(例如,dataiscool.net/shiny/app)访问它(404 错误)

我是 nginx、网络服务器等方面的新手,但我无法开始排除我可能出错的地方——无论是 Shiny 服务器、nginx、DNS 方面。

标签: rnginxshinydigital-ocean

解决方案


我想通了,并认为我会与可能有同样问题的其他人分享。这是 nginx 的所有配置问题。当您安装和加载 nginx 时,您会在 /etc/nginx/sites-enabled/default 中获得一个默认配置文件 - 您需要取消链接或删除它!这样,许多教程都可以使用 proxypass 模式:

location /shiny/ {
  proxy_pass http://127.0.0.1:3838/;
  proxy_http_version 1.1;
  proxy_set_header Upgrade $http_upgrade;
  proxy_set_header Connection "upgrade"; 
  rewrite ^(/shiny/[^/]+)$ $1/ permanent;
}

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

推荐阅读