宝塔面板部署NiceGUI项目

NiceGUI项目本身就是web界面+WebSocket+FastAPI,自带Uvicorn 作为 ASGI 服务器。

所以部署起来比Dango项目还要简单(django部署还需要配置Uvicorn或Gunicorn)

一、把项目文件上传到指定目录

二、菜单:网站-->Python项目-->添加Python项目

注意:NiceGUI 的 ui.run() 参数,将其监听地址从默认的 127.0.0.1(仅限本地)改为 0.0.0.0(允许所有网络接口访问)。

# 关键配置
ui.run(
    host='0.0.0.0', 
    port=8080,      # 你可以指定任意未被占用的端口
    title='My Test App'
)

云平台安全组(如果你使用的是阿里云、腾讯云、AWS 等)

关键步骤:Nginx 反向代理与 WebSocket 配置

WebSocket 配置:这是 NiceGUI 部署最容易踩坑的地方。如果 Nginx 没有配置 UpgradeConnection 请求头,你的 NiceGUI 页面会频繁掉线。

NiceGUI 依赖 WebSocket 进行实时交互。项目添加成功后,你需要映射域名并修改配置:

  1. 映射域名:在项目列表点击“映射”,输入你的域名或服务器 IP。

  2. 修改 Nginx 配置:映射成功后,在“网站”菜单找到对应的站点,点击“设置” -> “反向代理” -> “配置文件”。

  3. 开启 WebSocket 支持:确保配置中包含以下内容(宝塔默认可能没开启,不加这个 NiceGUI 会无法运行):

疑问:

1、通过宝塔面板 网站-python项目-添加python项目 的这个方式来部署,创建的虚拟环境会自动安装一些web服务器相关的第三方库,但实际上在nicegui项目中用不上这些库的,有必要删掉这些用不上的库吗?

简单的结论是:完全没必要删掉,也不建议花精力去阻止它们安装。

1. 为什么“没必要”删除?

  • 静止状态不占用资源:这些库仅仅是存在于硬盘上的 .py 文件或二进制文件。除非你在启动命令里明确调用了它们(比如 gunicorn main:app),否则它们不会运行,也不会占用 CPU 或内存。

2、或者干脆不通过[网站-python项目-添加python项目]来部署,直接在终端创建虚拟环境来运行?

强烈推荐通过【网站-python项目-添加python项目】来部署,因为稳定性强。

稳定性:确保在宝塔里开启了“自动重启”或“守护进程”,防止 Python 进程意外挂掉。

3、我的 NiceGUI 项目界面很少,静态文件很少,访问量也不大,有必要使用Nginx代理吗?

强烈建议使用 Nginx 代理

NiceGUI 的核心是靠 WebSocket 实现前后端实时交互的。

  • 直接把 Python 暴露在公网上,面对网络波动或恶意的扫描工具时,内置的 Uvicorn 可能会因为处理异常连接而卡死。

  • Nginx 对 WebSocket 缓冲和长连接有着极强的优化和保护能力,能当好一个“盾牌”。

4. 资源消耗几乎为零

你可能会担心 Nginx 占用服务器资源。实际上,对于访问量小的内部项目,Nginx 运行起来只需要 十几 MB 的内存,CPU 占用基本为 0%,完全不会拖慢你的服务器。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值