要将你的Gradio聊天机器人集成到WordPress网站的”Chatbot”标签页中,你需要按照以下步骤操作:
方案二:更高级的集成(需要更多配置)
如果你需要更紧密的集成,可以考虑:
- 使用WordPress插件:
- 安装”Embed Code”或”Custom HTML”插件
- 将你的Gradio应用URL嵌入其中
- 配置Nginx反向代理(更专业的方法):
- 修改你的Nginx配置,将某个路径(如
/chatbot)代理到localhost:7860 - 这样你可以使用
https://你的网站.com/chatbot访问
- 修改你的Nginx配置,将某个路径(如
配置Nginx反向代理 怎么实现?
1. 确保Gradio应用正在运行
你的Gradio应用应该已经在后台运行(监听0.0.0.0:7860):
python your_app.py <em># 或使用 nohup/python -m gunicorn 等保持长期运行</em>
验证是否可访问:
curl http://localhost:7860
2. 修改Nginx配置
搬瓦工服务器通常预装Nginx。假设你的WordPress已通过Nginx运行(如使用LNMP环境):

步骤:
- 找到WordPress的Nginx配置文件,通常在:
/etc/nginx/sites-enabled/your_wordpress_site.conf或主配置文件:/etc/nginx/nginx.conf - 编辑配置文件,在
server { ... }块内添加反向代理规则:
server {
listen 80;
server_name yourdomain.com; # 你的域名
# WordPress原有配置(通常已存在)
root /var/www/html/wordpress;
index index.php;
location / {
try_files $uri $uri/ /index.php?$args;
}
# 新增Gradio反向代理配置
location /chatbot {
proxy_pass http://127.0.0.1:7860;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# 以下为WebSocket支持(如果Gradio需要)
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
# 其他原有配置(如PHP处理)
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.0-fpm.sock;
}
}
3. 测试并重载Nginx
- 测试配置是否正确:
sudo nginx -t如果显示successful,继续下一步。 - 重载Nginx使配置生效:
sudo systemctl reload nginx
4. 验证反向代理
访问 http://yourdomain.com/chatbot,应该能看到Gradio界面。
或者可以换一种方式
路径重写(去除/chatbot前缀)
如果希望Gradio直接响应根路径(而非/chatbot),修改location和Gradio的root_path:
location / {
proxy_pass http:<em>//127.0.0.1:7860;</em>
# 其他proxy_set_header...
}
同时在Gradio启动时指定路径:
demo.launch(server_name="0.0.0.0", server_port=7860, root_path="/chatbot")
长期运行各方案对比
| 方法 | 需要安装 | 断线恢复 | 日志管理 | 开机自启 | 适合场景 |
|---|---|---|---|---|---|
nohup |
否 | ❌ | 需手动 | ❌ | 临时测试 |
tmux |
是 | ✅ | 实时 | ❌ | 需要交互的长期运行 |
systemd |
否 | ✅ | 完善 | ✅ | 生产环境服务 |
screen |
是 | ✅ | 实时 | ❌ | 简单会话管理 |
pm2 |
是 | ✅ | 完善 | ✅ | Node/Python混合环境 |
方法 1:使用 nohup(最简单)
nohup python3 /opt/gradio_app/app.py > /var/log/app.log 2>&1 &
- 效果:程序会在后台运行,输出重定向到日志文件
- 管理命令:
<em># 查看进程</em> ps aux | grep app.py <em># 终止进程</em> kill -9 $(pgrep -f app.py)
方法 2:使用 tmux(推荐)
# 安装tmux(如未安装)
sudo apt install tmux -y
# 创建新会话
tmux new -s gradio_app
# 在tmux会话中运行程序
python3 /opt/gradio_app/app.py
# 按 Ctrl+B 然后按 D 退出会话(程序继续运行)
# 重新连接会话
tmux attach -t gradio_app
- 优势:可随时查看/交互程序输出
方法 3:系统服务(最稳定)
方法 4:使用 screen
<em># 安装screen</em>
sudo apt install screen -y
<em># 创建新会话</em>
screen -S gradio_app
<em># 运行程序</em>
python3 /opt/gradio_app/app.py
<em># 按 Ctrl+A 然后按 D 退出会话</em>
<em># 重新连接</em>
screen -r gradio_app
方法 5:进程管理工具(如 pm2)
<em># 安装Node.js和pm2</em>
sudo apt install nodejs npm -y
sudo npm install -g pm2
<em># 启动程序</em>
pm2 start /opt/gradio_app/app.py --interpreter python3
<em># 常用命令</em>
pm2 list <em># 查看进程</em>
pm2 logs <em># 查看日志</em>
pm2 save <em># 保存进程列表</em>
pm2 startup
一些问题排查问题手段:
检查端口冲突:
sudo netstat -tulnp | grep 7860
sudo nginx -t # 测试配置语法
sudo systemctl reload nginx
查找占用7860端口的进程 sudo lsof -i :7860
杀死占用进程(根据上一步输出的PID) sudo kill -9
nohup python your_script.py > gradio.log 2>&1 &
日志系统
参照readpdf大模型