NiceGUI项目本身就是web界面WebSocketFastAPI自带Uvicorn作为 ASGI 服务器。所以部署起来比Dango项目还要简单django部署还需要配置Uvicorn或Gunicorn一、把项目文件上传到指定目录二、菜单网站--Python项目--添加Python项目注意NiceGUI 的ui.run()参数将其监听地址从默认的127.0.0.1仅限本地改为0.0.0.0允许所有网络接口访问。# 关键配置 ui.run( host0.0.0.0, port8080, # 你可以指定任意未被占用的端口 titleMy Test App )云平台安全组如果你使用的是阿里云、腾讯云、AWS 等关键步骤Nginx 反向代理与 WebSocket 配置WebSocket 配置这是 NiceGUI 部署最容易踩坑的地方。如果 Nginx 没有配置Upgrade和Connection请求头你的 NiceGUI 页面会频繁掉线。NiceGUI 依赖 WebSocket 进行实时交互。项目添加成功后你需要映射域名并修改配置映射域名在项目列表点击“映射”输入你的域名或服务器 IP。修改 Nginx 配置映射成功后在“网站”菜单找到对应的站点点击“设置” - “反向代理” - “配置文件”。开启 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%完全不会拖慢你的服务器。
宝塔面板部署NiceGUI项目
NiceGUI项目本身就是web界面WebSocketFastAPI自带Uvicorn作为 ASGI 服务器。所以部署起来比Dango项目还要简单django部署还需要配置Uvicorn或Gunicorn一、把项目文件上传到指定目录二、菜单网站--Python项目--添加Python项目注意NiceGUI 的ui.run()参数将其监听地址从默认的127.0.0.1仅限本地改为0.0.0.0允许所有网络接口访问。# 关键配置 ui.run( host0.0.0.0, port8080, # 你可以指定任意未被占用的端口 titleMy Test App )云平台安全组如果你使用的是阿里云、腾讯云、AWS 等关键步骤Nginx 反向代理与 WebSocket 配置WebSocket 配置这是 NiceGUI 部署最容易踩坑的地方。如果 Nginx 没有配置Upgrade和Connection请求头你的 NiceGUI 页面会频繁掉线。NiceGUI 依赖 WebSocket 进行实时交互。项目添加成功后你需要映射域名并修改配置映射域名在项目列表点击“映射”输入你的域名或服务器 IP。修改 Nginx 配置映射成功后在“网站”菜单找到对应的站点点击“设置” - “反向代理” - “配置文件”。开启 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%完全不会拖慢你的服务器。