2026/4/6 14:48:45
网站建设
项目流程
中国做趋势的网站,免费推广网,外链工厂,深圳企业注销流程如何实现FFT NPainting LaMa远程访问#xff1f;Nginx反向代理配置
1. 为什么需要远程访问WebUI#xff1f;
本地运行 http://127.0.0.1:7860 很方便#xff0c;但实际使用中常遇到这些情况#xff1a;
你用手机或平板临时查看修复效果#xff0c;却无法直连本地地址团…如何实现FFT NPainting LaMa远程访问Nginx反向代理配置1. 为什么需要远程访问WebUI本地运行http://127.0.0.1:7860很方便但实际使用中常遇到这些情况你用手机或平板临时查看修复效果却无法直连本地地址团队成员想协作测试但每人单独部署太费时间客户需要在线体验图像修复能力不能要求对方装环境你在公司外想继续处理昨天没修完的图片这些问题的本质是WebUI默认只监听本地回环地址0.0.0.0:7860虽显示但未开放公网访问权限。而Nginx反向代理正是安全、稳定、零依赖的解决方案——它不修改原程序不重写代码只需几行配置就能把http://your-domain.com映射到后端的http://127.0.0.1:7860。更重要的是科哥二次开发的这个FFT NPainting LaMa WebUI界面友好、操作直观但它的服务本质仍是Flask/FastAPI类轻量Web应用天然适配反向代理。我们接下来就一步步把它“搬”到公网可访问的位置。2. 前置准备确认服务已就绪且可本地访问在配置Nginx前请务必验证以下三点避免后续排查绕路2.1 确认WebUI服务正在运行打开终端执行cd /root/cv_fft_inpainting_lama bash start_app.sh看到如下输出即为成功启动 ✓ WebUI已启动 访问地址: http://0.0.0.0:7860 本地访问: http://127.0.0.1:7860 按 CtrlC 停止服务 验证点0.0.0.0:7860表示服务监听所有网卡而非仅限localhost这是反向代理的前提。2.2 本地浏览器验证可用性在服务器本机或SSH连接后用curl测试curl -I http://127.0.0.1:7860返回HTTP/1.1 200 OK即通。再用本地电脑浏览器访问http://服务器IP:7860—— 如果能打开完整界面含画笔工具、上传区等说明端口未被防火墙拦截。2.3 检查系统基础组件确保服务器已安装Nginx并开机自启以Ubuntu/Debian为例# 安装如未安装 sudo apt update sudo apt install -y nginx # 启动并设为开机自启 sudo systemctl enable nginx sudo systemctl start nginx # 验证Nginx运行状态 sudo systemctl status nginx | grep active (running)若使用CentOS/RHEL替换为sudo yum install -y nginx或sudo dnf install -y nginx。3. Nginx反向代理核心配置详解Nginx配置不是“复制粘贴就完事”关键在于理解每行作用。我们为你拆解最精简、最稳妥的配置方案。3.1 创建专属站点配置文件不修改默认的/etc/nginx/sites-enabled/default而是新建一个独立配置便于管理与回滚sudo nano /etc/nginx/conf.d/fft-lama.conf粘贴以下内容请逐行阅读注释# fft-lama.conf —— FFT NPainting LaMa 反向代理配置 upstream lama_backend { # 指向本地WebUI服务注意必须用127.0.0.1不可用localhost server 127.0.0.1:7860; } server { listen 80; server_name your-domain.com; # ← 替换为你的域名如 imagefix.example.com # 强制HTTPS推荐如暂无SSL证书可先注释此行 # return 301 https://$server_name$request_uri; # 根路径代理全部请求 location / { proxy_pass http://lama_backend; 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; # 关键支持WebSocketWebUI中部分实时交互依赖此 proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection upgrade; # 超时设置大图修复可能耗时较长 proxy_connect_timeout 60s; proxy_send_timeout 300s; proxy_read_timeout 300s; # 防止大文件上传被截断修复图常达5MB client_max_body_size 50M; } # 静态资源缓存优化提升UI加载速度 location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2|ttf|eot)$ { expires 1y; add_header Cache-Control public, immutable; } }3.2 配置说明为什么这样写配置项作用不这样写的后果upstream lama_backend定义后端服务池解耦地址变更直接写proxy_pass http://127.0.0.1:7860也可但扩展性差proxy_set_header X-Real-IP等传递真实客户端IP日志和限流才准确所有访问日志IP都显示为127.0.0.1proxy_http_version 1.1Upgrade启用WebSocket支持画笔实时绘制、进度条更新等功能失效proxy_read_timeout 300s允许最长5分钟响应大图修复需时间修复中途报504 Gateway Timeoutclient_max_body_size 50M支持上传高清图如4K截图上传稍大图片直接报413 Request Entity Too Large注意server_name必须填你实际拥有的域名。若暂无域名可先用服务器IP如server_name 123.45.67.89;但浏览器会提示“不安全”且部分功能如Service Worker受限。3.3 启用配置并重启Nginx# 测试配置语法是否正确关键避免重启失败 sudo nginx -t # 若输出Syntax OK则重载配置比restart更安全 sudo systemctl reload nginx此时在浏览器访问http://your-domain.com或http://服务器IP应看到与http://服务器IP:7860完全一致的WebUI界面。4. 进阶加固启用HTTPS与基础安全防护HTTP明文传输存在风险上传的图片、标注数据可能被中间人窃取。启用HTTPS是生产环境的底线要求。4.1 使用Certbot一键获取免费SSL证书以Let’s Encrypt为例Ubuntu/Debian# 安装Certbot sudo apt install -y certbot python3-certbot-nginx # 自动获取并配置证书自动修改Nginx配置 sudo certbot --nginx -d your-domain.com # 按提示选择1. Redirect to HTTPS强烈推荐执行后Certbot会自动申请your-domain.com的SSL证书修改/etc/nginx/conf.d/fft-lama.conf添加443端口HTTPS配置设置自动续期systemd timer验证浏览器访问https://your-domain.com地址栏显示锁图标且无证书警告。4.2 添加基础访问控制可选但推荐防止恶意扫描或暴力尝试可在location /块内加入简单IP白名单如仅允许公司IP访问# 在 location / { ... } 内添加替换为你的可信IP段 allow 203.0.113.0/24; allow 192.0.2.10; deny all;或添加基础认证输入账号密码才能访问# 生成密码文件首次运行会提示输入密码 sudo htpasswd -c /etc/nginx/.htpasswd admin # 在 location / { ... } 内添加 auth_basic FFT LaMa Admin Access; auth_basic_user_file /etc/nginx/.htpasswd;5. 故障排查5个高频问题与解决方法当访问https://your-domain.com出现异常时按此顺序排查5.1 问题页面空白控制台报错Failed to load resource: net::ERR_CONNECTION_REFUSED原因WebUI服务未运行或Nginx未正确代理到7860端口检查# 确认WebUI进程存在 ps aux | grep app.py | grep -v grep # 确认7860端口被监听 ss -tuln | grep :7860 # 查看Nginx错误日志 sudo tail -20 /var/log/nginx/error.log5.2 问题样式错乱、JS加载失败F12看到404原因WebUI生成的静态资源URL仍指向http://127.0.0.1:7860/static/...解决在启动脚本start_app.sh中强制指定根URL常见于Gradio/Streamlit类框架修改启动命令为python app.py --server-name 0.0.0.0 --server-port 7860 --root-path / # 或若为Gradio加 --root-path 参数 # gradio app.py --server-name 0.0.0.0 --server-port 7860 --root-path /科哥版本已内置--root-path /支持确保start_app.sh中调用时包含该参数。5.3 问题上传图片后卡在“执行推理...”无响应原因Nginx超时设置过短或后端内存不足解决检查Nginx配置中proxy_read_timeout是否 ≥300查看服务器内存free -h若剩余1G考虑关闭其他进程或升级配置在app.py中降低模型精度如将fp16True改为fp16False5.4 问题画笔无法绘制或绘制后无反应原因WebSocket未启用或浏览器拦截了非安全上下文的WebSocket解决确认Nginx配置中包含proxy_http_version 1.1和Upgrade头必须使用HTTPSHTTP下现代浏览器禁用WebSocket清除浏览器缓存或换Chrome无痕窗口测试5.5 问题修复结果图片下载路径错误显示为http://127.0.0.1:7860/file...原因WebUI生成的下载链接未适配反向代理后的域名解决在app.py或前端JS中将所有window.location.origin替换为https://your-domain.com或更稳妥方式在Nginx中重写响应头需编译Nginx withsubstitutions4nginx模块较复杂建议优先改代码6. 生产环境最佳实践建议完成基础配置后让系统更健壮、更易维护6.1 使用Systemd守护WebUI进程避免SSH断开导致服务终止。创建服务文件sudo nano /etc/systemd/system/fft-lama.service[Unit] DescriptionFFT NPainting LaMa WebUI Afternetwork.target [Service] Typesimple Userroot WorkingDirectory/root/cv_fft_inpainting_lama ExecStart/bin/bash /root/cv_fft_inpainting_lama/start_app.sh Restartalways RestartSec10 StandardOutputjournal StandardErrorjournal [Install] WantedBymulti-user.target启用并启动sudo systemctl daemon-reload sudo systemctl enable fft-lama sudo systemctl start fft-lama6.2 日志集中管理将WebUI日志接入系统日志便于统一监控# 修改 start_app.sh将输出重定向到 journal # 原python app.py ... # 改为 python app.py --server-name 0.0.0.0 --server-port 7860 21 | systemd-cat -t fft-lama查看日志sudo journalctl -u fft-lama -f6.3 定期备份与版本管理输出目录/root/cv_fft_inpainting_lama/outputs/建议每日rsync到NAS或对象存储代码仓库打Taggit tag v1.2.0-nginx-ready git push origin v1.2.0-nginx-ready记录配置变更sudo cp /etc/nginx/conf.d/fft-lama.conf /etc/nginx/conf.d/fft-lama.conf.bak.$(date %Y%m%d)7. 总结从本地到远程只需三步回顾整个过程你真正需要动手的只有三件事确认服务健康bash start_app.sh→curl http://127.0.0.1:7860→ 界面可访问配置Nginx代理新建conf文件 → 填写域名 →nginx -t→systemctl reload nginx启用HTTPSsudo certbot --nginx -d your-domain.com→ 选重定向没有复杂的编译不改动一行Python代码不安装额外Python包。科哥的二次开发版本本就为工程落地而生而Nginx反向代理正是连接“开发完成”与“用户可用”之间最平滑的桥梁。现在你可以把https://your-domain.com发给同事、客户或自己手机随时开启专业级图像修复——移除水印、擦除路人、修复老照片一切都在指尖完成。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。