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

运行Streamlit时如何让浏览器地址栏显示自定义域名而非裸IP?

配置方案

你此前配置Nginx不生效并非Streamlit强制显示IP,核心原因是Streamlit依赖WebSocket协议实现页面实时交互,默认的Nginx反向代理配置未适配WebSocket规则,导致代理跳转异常,按以下步骤配置即可同时解决域名显示和不安全锁标问题:

1. 正确配置Nginx反向代理

新增Nginx站点配置文件(路径通常为/etc/nginx/conf.d/你的域名.conf),写入以下内容:

server {
    listen 80;
    server_name 替换为你的自定义域名;

    location / {
        proxy_pass http://127.0.0.1:8502; # 替换为你的Streamlit实际运行端口
        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;

        # 适配Streamlit的WebSocket连接,是此前配置不生效的核心配置
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_read_timeout 86400;
    }
}

配置完成后执行以下操作生效:

  • 测试配置语法是否正确:nginx -t
  • 重载Nginx配置:systemctl reload nginx
  • 云服务器安全组开放80端口,关闭原来对外暴露的Streamlit运行端口(如8502),避免直接通过IP+端口访问
    完成此步后访问你的自定义域名,地址栏就会正常显示域名而非IP+端口。

2. 配置SSL证书解决不安全锁标

不安全提示是因为使用HTTP协议,可通过certbot一键申请免费SSL证书开启HTTPS:

  • Debian/Ubuntu系系统安装依赖:apt install certbot python3-certbot-nginx -y
  • CentOS/RHEL系系统安装依赖:yum install certbot python3-certbot-nginx -y
  • 一键申请证书并自动配置HTTPS:certbot --nginx -d 替换为你的自定义域名
  • 按提示输入邮箱、同意服务协议即可,certbot会自动修改Nginx配置、开启443端口、设置证书自动续期,完成后访问域名就是HTTPS协议,不安全锁标会变为正常安全状态。

可选:Streamlit启动参数加固

可在启动Streamlit时增加参数,彻底禁止外部直接IP访问:
streamlit run 你的应用脚本.py --server.address 127.0.0.1
该参数强制Streamlit仅监听本地回环地址,所有外部请求只能通过Nginx代理访问,进一步避免IP暴露。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 19:06:04