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

如何将Shapash Web应用发布至公网或AWS平台?

将Shapash仪表盘部署到公网或AWS的方案

一、临时暴露到公网(快速测试)

如果只是短期让外部访问,不用长期部署,可通过端口转发工具实现:

  • 使用ngrok工具:
    1. 下载对应系统的ngrok包并解压(无需安装)
    2. 修改本地启动代码,将host设为0.0.0.0允许外部访问:
      app = xpl.run_app(host="0.0.0.0", port=8050)
      
    3. 启动Shapash应用后,在终端运行ngrok转发端口:
      ngrok http 8050
      
    4. 终端会生成一个公网URL(如https://xxxx-xx-xx-xx-xx.ngrok.io),复制该链接即可让他人访问仪表盘。

注意:此方式为临时方案,ngrok会话关闭后链接失效,仅适合测试场景。

二、AWS长期部署(以EC2实例为例)

步骤1:创建EC2实例

  • 登录AWS控制台进入EC2服务,启动新实例:
    • 选择Ubuntu Server或Amazon Linux 2镜像(推荐Ubuntu)
    • 实例类型选t2.medium(满足基础运行需求,流量大时可升级)
    • 配置安全组:开放8050端口(或80/443端口),允许所有IP(0.0.0.0/0)访问
    • 下载密钥对,用于后续远程连接实例

步骤2:连接实例并配置环境

  • 通过SSH连接EC2实例(Ubuntu为例):
    ssh -i "你的密钥对文件.pem" ubuntu@<EC2公网IP>
    
  • 更新系统并安装Python、pip:
    sudo apt update && sudo apt install python3-pip -y
    
  • 创建requirements.txt文件,写入依赖包:
    pandas
    category-encoders
    shapash
    scikit-learn
    
    执行安装命令:
    pip3 install -r requirements.txt
    

步骤3:上传代码并启动应用

  • 用scp命令将本地代码上传到EC2实例:
    scp -i "你的密钥对文件.pem" 本地代码路径/app.py ubuntu@<EC2公网IP>:~/
    
  • 修改代码中的启动参数,将host设为0.0.0.0:
    app = xpl.run_app(host="0.0.0.0", port=8050)
    
  • 用nohup让应用在后台运行:
    nohup python3 app.py &
    
  • 此时通过http://<EC2公网IP>:8050即可访问仪表盘。

进阶:Nginx反向代理(可选)

若要使用默认HTTP端口(无需输入端口号),可配置Nginx反向代理:

  • 安装Nginx:
    sudo apt install nginx -y
    
  • 创建Nginx配置文件/etc/nginx/sites-available/shapash:
    server {
        listen 80;
        server_name <EC2公网IP>;
    
        location / {
            proxy_pass http://localhost:8050;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
        }
    }
    
  • 启用配置并重启Nginx:
    sudo ln -s /etc/nginx/sites-available/shapash /etc/nginx/sites-enabled/
    sudo nginx -t
    sudo systemctl restart nginx
    
    现在直接访问EC2公网IP即可打开仪表盘。

可选:Docker打包部署

为简化环境管理,可将应用打包为Docker镜像:

  1. 创建Dockerfile:
    FROM python:3.9-slim
    
    WORKDIR /app
    
    COPY requirements.txt .
    RUN pip install --no-cache-dir -r requirements.txt
    
    COPY app.py .
    
    EXPOSE 8050
    
    CMD ["python", "app.py"]
    
  2. 构建镜像后,在EC2上运行容器:
    docker run -d -p 8050:8050 --name shapash-dashboard 你的镜像名称
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 23:13:30