You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置Shiny Server实现生产与开发版本应用同时部署

问题原因

你当前配置出现404的核心原因是:Shiny Server处理location匹配时,会默认把请求路径中的匹配部分拼接到你配置的app_dir路径后查找资源。你访问baseurl.com/dev时,服务端实际会尝试读取/srv/shiny-server/dev/dev目录下的应用,该目录不存在就返回了404。

修复后的配置

你只需要在/dev的location块中添加rewrite规则,去掉请求路径的/dev前缀即可,修改后完整配置如下:

# 配置Shiny Server以shiny用户身份运行应用
run_as shiny;

# 定义监听3838端口的服务
server {
  listen 3838;

  # 根路径对应生产环境应用,配置保持不变
  location / {
    app_dir /srv/shiny-server/prod;
    log_dir /var/log/shiny-server;
  }
  
  # /dev路径对应开发环境应用
  location ^~ /dev {
    # 去掉请求路径中的/dev前缀,再匹配app_dir下的资源
    rewrite ^/dev(/.*)$ $1 break;
    app_dir /srv/shiny-server/dev;
    # 建议单独配置开发环境日志目录,避免和生产日志混淆
    log_dir /var/log/shiny-server-dev;
  }
}

生效与校验

  1. 配置修改完成后执行重启命令生效:sudo systemctl restart shiny-server
  2. 重启后访问baseurl.com/dev即可正常打开开发环境应用,根路径baseurl.com的生产环境应用不受影响
  3. 如果仍有访问异常,可检查/srv/shiny-server/dev目录的权限,确保shiny用户对该目录拥有读和执行权限

内容的提问来源于stack exchange,提问作者Dylan Russell

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 06:45:03