Gradio免费部署完全指南:从本地share到Hugging Face Spaces、Docker与Nginx反向代理 Gradio免费部署完全指南从本地share到Hugging Face Spaces、Docker与Nginx反向代理【免费下载链接】gradioBuild and share delightful machine learning apps, all in Python. Star to support our work!项目地址: https://gitcode.com/GitHub_Trending/gr/gradioGradio 是一款纯 Python 的机器学习应用开发工具无需前端基础即可几分钟内搭出可交互的 Web 应用。本文带你掌握 4 种免费部署方式本地share隧道、Hugging Face Spaces 托管、Docker 容器化、以及 Nginx 反向代理接入自有域名覆盖从快速演示到生产环境的完整链路。一、30 秒上手写一个 Gradio 应用所有部署方式都从同一个极简应用出发参考项目里的 hello_world/run.pyimport gradio as gr def greet(name): return Hello name ! demo gr.Interface(fngreet, inputstextbox, outputstextbox) demo.launch()运行后终端会提示Running on local URL: http://127.0.0.1:7860。默认情况下只有本机可访问下面逐一介绍如何对外发布。二、本地 share一行参数生成公网隧道链接最快发布方法shareTruedemo.launch(shareTrue)Gradio 会在后台通过 FRP 隧道客户端首次会自动下载二进制到你的机器把本地 7860 端口打洞到官方分享服务器生成形如https://xxxxxx.gradio.live的公开链接。关键特性一览⚡ 无需注册、无需打包代码与模型仍跑在你自己的机器上 对方在浏览器直接可玩你的电脑需保持开机联网⏰ 官方分享链接会过期且链接对任何人可见不要暴露敏感信息 可叠加认证demo.launch(shareTrue, auth(admin, pass1234))该机制原理详见 understanding-gradio-share-links.md适合临时演示、课堂分享、远程协作调试。三、Hugging Face Spaces永久免费的云托管为什么要部署到 Spacesshare链接依赖你的电脑开机而 Hugging Face Spaces 提供永久免费的云端基础设施适合长期对外展示模型。两种免费部署方式命令行一键部署在应用目录下执行gradio deployCLI 会收集元数据、上传当前目录所有文件遵守.gitignore并在 Spaces 上启动应用更新时重新执行即可。浏览器拖拽上传把包含app.py和所有依赖文件的文件夹直接拖入 HF 的新建 Space页面适合不想碰命令行的新手。官方分享托管指南见 07_sharing-your-app.md其中还介绍了部署后的进阶能力嵌入到你的网站Spaces 页面的 Embed this Space 下拉框可直接复制gradio-app网页组件或 iframe 代码API 页面每个部署好的应用自动生成 REST API 文档页可被 Python/JS 客户端调用OAuth 登录Space 元数据设置hf_oauth: true后即可用gr.LoginButton实现 Hugging Face 账号登录四、Docker 容器化部署环境一致的私有部署适合场景公司内网/自有服务器部署数据不出域用 Kubernetes 等编排系统水平扩容保证开发、测试、生产三套环境行为完全一致三步完成容器化完整教程见 deploying-gradio-with-docker.md。以 Dockerfile 为例FROM python:3.10-slim WORKDIR /usr/src/app COPY . . RUN pip install --no-cache-dir gradio EXPOSE 7860 ENV GRADIO_SERVER_NAME0.0.0.0 CMD [python, app.py]然后构建并运行docker build -t gradio-app . docker run -p 7860:7860 gradio-app打开http://localhost:7860即可访问。两个必须知道的坑必须监听 0.0.0.0设置环境变量GRADIO_SERVER_NAME0.0.0.0或在launch()中传server_name否则容器外无法连入多副本要开会话粘滞Gradio 事件协议依赖前端与后端的多条持久连接多副本部署时负载均衡需开启ClientIP粘滞如 AWS ALB 的sessionAffinity否则事件会丢五、Nginx 反向代理挂到自有域名子路径适合场景你已经用 Nginx 托管https://www.example.com网站想把应用挂在子路径上例如https://www.example.com/gradio-demo。完整步骤见 running-gradio-on-your-web-server-with-nginx.md。配置要点在/etc/nginx/sites-available/新建站点文件核心配置server { listen 80; server_name example.com; location /gradio-demo/ { proxy_pass http://127.0.0.1:7860/; proxy_buffering off; proxy_redirect off; 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-Forwarded-Host $host; proxy_set_header X-Forwarded-Proto $scheme; } }⚠️Upgrade/Connection头是 WebSocket 所必需X-Forwarded-Host/X-Forwarded-Proto用于 Gradio 拼接静态资源地址漏配会导致页面加载残缺。启动应用时root_path必须与子路径一致源码定义见 blocks.py 的launch()参数demo.launch(root_path/gradio-demo)也可用环境变量GRADIO_ROOT_PATH统一配置所有可用环境变量汇总在 10_environment-variables.md。建议用tmux后台运行应用最后执行sudo systemctl restart nginx重启即可。六、4 种部署方式怎么选部署方式免费是否需要服务器链接生命周期最佳用途shareTrue✅否本机即可临时会过期临时演示、远程调试HF Spaces✅否云端托管永久公开作品、模型展示Docker视环境而定自有服务器永久内网部署、K8s 扩容Nginx 反代视环境而定自有服务器永久挂自有域名、生产环境部署安全小贴士公网应用建议加认证demo.launch(auth(user, pass))认证机制详见分享指南对外发布前确认回调函数里没有读写本机敏感文件、执行危险操作的代码生产环境可用gr.Request获取访客 IP实现限流与访问审计总结Gradio 的部署路径非常平滑本地开发 →shareTrue快速验证 → Spaces 免费托管 → Docker/Nginx 私有生产部署每一步都不需要额外费用门槛。新手建议从本地 share 开始体验确定要长期展示后再迁移到 Hugging Face Spaces 即可。更多部署与集成教程可参考 guides/11_other-tutorials/ 目录其中还包含 Disco 一键部署、FastAPI 挂载 Gradiomount_gradio_app等进阶玩法。【免费下载链接】gradioBuild and share delightful machine learning apps, all in Python. Star to support our work!项目地址: https://gitcode.com/GitHub_Trending/gr/gradio创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考