如何在团队私有Linux服务器部署Streamlit应用并隐藏8501端口
Streamlit 私有Linux服务器部署落地指南
1. 合规进程托管(替代nohup方案)
推荐使用Linux系统自带的systemd服务管理进程,可实现崩溃自动重启、开机自启,符合企业服务器运维规范,操作步骤如下:
- 新建systemd服务配置文件,路径为
/etc/systemd/system/streamlit-dashboard.service,写入以下内容:
[Unit] Description=企业内部Streamlit数据看板 After=network.target [Service] User=替换为你的服务器登录用户名 WorkingDirectory=替换为app.py所在目录的绝对路径,例如 /opt/apps/streamlit ExecStart=streamlit run app.py --server.port 8501 --server.headless true Restart=always RestartSec=5 [Install] WantedBy=multi-user.target
- 重载systemd配置使其识别新服务:
sudo systemctl daemon-reload - 启动服务:
sudo systemctl start streamlit-dashboard - 配置开机自动启动:
sudo systemctl enable streamlit-dashboard - 可随时用
systemctl status streamlit-dashboard查看服务运行状态,出现问题可以用journalctl -u streamlit-dashboard查看运行日志
2. 隐藏端口实现常规访问
使用Nginx做反向代理,将默认80端口的请求转发到本地8501端口,用户访问时无需加端口后缀,操作步骤如下:
- 安装Nginx:
- Debian/Ubuntu系统执行:
sudo apt update && sudo apt install -y nginx - CentOS/RHEL系统执行:
sudo yum install -y nginx
- Debian/Ubuntu系统执行:
- 新建Nginx站点配置文件,路径为
/etc/nginx/conf.d/streamlit-dashboard.conf(CentOS)或/etc/nginx/sites-available/streamlit-dashboard(Debian/Ubuntu),写入以下内容:
server { listen 80; server_name 替换为你的服务器内网IP或绑定的内网域名; location / { proxy_pass http://127.0.0.1:8501; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $host; # 以下配置适配Streamlit的WebSocket通信 proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_http_version 1.1; proxy_cache_bypass $http_upgrade; } }
- (Debian/Ubuntu系统额外执行)启用站点配置:
sudo ln -s /etc/nginx/sites-available/streamlit-dashboard /etc/nginx/sites-enabled/ - 验证Nginx配置语法是否正确:
sudo nginx -t,返回success则执行下一步 - 重启Nginx生效配置:
sudo systemctl restart nginx
配置完成后,内网用户直接访问配置里的server_name对应的IP/域名即可打开应用,无需加8501端口。如果需要配置HTTPS访问,直接在上述Nginx配置中补充SSL证书相关配置即可。
内容的提问来源于stack exchange,提问作者invi
相关产品推荐
相关产品推荐

