如何将Whisper应用的localhost改为指定URL实现外部访问
如何通过自定义域名访问Ubuntu服务器上的Whisper WebUI
一、先让Gradio服务允许外部访问
你之前用--server_name参数没生效,是因为误解了它的作用:这个参数是指定服务监听的IP地址,不是绑定域名。要让外部能访问到服务器上的Whisper服务,需要把它设置为0.0.0.0,这样服务会监听服务器的所有网卡接口,而非仅限本地localhost。
启动命令修改为:
python app.py --server_name 0.0.0.0 --server_port 你的端口号
比如使用默认端口7860的话:
python app.py --server_name 0.0.0.0 --server_port 7860
执行完这一步后,先通过「服务器公网IP+端口」测试访问,确认服务能正常被外部访问(注意要开放服务器防火墙的对应端口,比如执行ufw allow 7860)。
二、配置反向代理绑定自定义域名
这一步是实现用户通过Whisper.test.com访问服务的核心,用Nginx做反向代理即可:
- 安装Nginx:
sudo apt update && sudo apt install nginx
- 创建Nginx配置文件:
sudo nano /etc/nginx/sites-available/whisper.conf
- 写入以下配置(替换
Whisper.test.com为你的实际域名,7860为Gradio使用的端口):
server { listen 80; server_name Whisper.test.com; location / { proxy_pass http://localhost: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; proxy_set_header X-Forwarded-Proto $scheme; } }
- 启用配置并重启Nginx:
sudo ln -s /etc/nginx/sites-available/whisper.conf /etc/nginx/sites-enabled/ sudo nginx -t # 检查配置是否合法 sudo systemctl restart nginx
- (可选但推荐)配置HTTPS:
用Certbot免费获取SSL证书,让域名通过HTTPS访问:
sudo apt install certbot python3-certbot-nginx sudo certbot --nginx -d Whisper.test.com
按照提示完成操作即可自动配置HTTPS。
关键说明
- 不需要修改Whisper WebUI的内部代码或配置文件,仅需通过启动参数调整Gradio的监听设置,再配合Nginx反向代理实现域名映射。
- 确保服务器防火墙开放80(HTTP)、443(HTTPS)端口,以及Gradio使用的端口(若需直接通过IP+端口访问)。
内容的提问来源于stack exchange,提问作者Ting Tong
相关产品推荐
相关产品推荐

