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

Streamlit应用经Nginx反向代理域名访问卡在Please wait如何解决?

问题原因

你当前使用的Nginx基础反向代理配置未适配Streamlit核心依赖的WebSocket长连接通信机制,导致前端与后端的WebSocket握手请求失败,因此页面加载到"Please wait..."阶段就会中断。

可行解决方案

步骤1:修改Nginx反向代理配置

编辑/etc/nginx/nginx.conf文件,替换原有location /块的内容,完整的server块参考如下:

server {
        listen       80;
        listen       [::]:80;
        server_name MY_DOMAIN_NAME;
        root         /usr/share/nginx/html;

        location / {
            proxy_pass http://127.0.0.1:8501; # 优先用本地回环地址,避免公网IP路由问题
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_read_timeout 86400; # 避免长连接被主动断开
        }
}

配置修改完成后执行以下命令验证配置合法性,重载Nginx生效:

sudo nginx -t
sudo systemctl reload nginx

步骤2:调整Streamlit启动参数

你之前试过的两个参数建议同时启用,不需要分开测试,启动命令如下:

streamlit run main.py --server.enableCORS=false --server.enableWebsocketCompression=false

如果想省去每次启动加参数的步骤,可以在项目根目录创建.streamlit/config.toml文件,写入以下固定配置:

[server]
enableCORS = false
enableWebsocketCompression = false
address = "0.0.0.0"
port = 8501

后续直接执行streamlit run main.py即可生效。

可选排查项

如果修改后仍无法正常访问,优先检查以下配置:

  • EC2实例关联的安全组入站规则是否开放了80端口的公网访问权限
  • 确认域名解析的IP地址和你EC2实例的公网IP完全一致
  • 打开浏览器控制台查看报错信息,如果出现404/403错误,优先检查Nginx日志定位问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 03:24:04