使用Nginx将大模型Web应用部署到公网
使用Nginx将大模型Web应用部署到公网
大模型训练完毕后,我们可以用SWIFT快速构建一个Web Demo大模型Web应用,本文将介绍如何使用Nginx将大模型Web应用部署到公网。
在进行后续步骤之前,先按照搭建一个大模型API服务中的方法安装好SWIFT框架,并激活到你的conda环境。
启动大模型Web应用
使用SWIFT提供的Web-UI启动大模型Web应用:
CUDA_VISIBLE_DEVICES=0 swift app-ui --model_type qwen1half-14b-chat --model_id_or_path /yldm0226/models/Qwen1.5-14B-Chat
运行成功后,可以看到以下输出:
Running on local URL: http://127.0.0.1:7860
To create a public link, set `share=True` in `launch()`.
此时,我们就可以通过http://127.0.0.1:7860访问该Web应用了。
如果我们想让其他人也能访问到这个网址,需要将Web应用部署到公网。
配置Nginx服务器
这里我们使用Nginx来实现需求,Nginx是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。
以Ubuntu系统为例,使用以下命令安装Nginx:
sudo apt update
sudo apt install nginx
找到Nginx的配置文件。通常情况下,在Ubuntu中,配置文件位于/etc/nginx/nginx.conf
。使用文本编辑器打开配置文件。
在配置文件中找到http
块,然后在其中添加一个新的server
块。示例如下:
server {
listen 80;
server_name 你的服务器ip地址;
location / {
proxy_pass http://localhost:7860;
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-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
保存并关闭配置文件。
运行以下命令检查Nginx配置是否有语法错误:
sudo nginx -t
如果没有错误,可以看到以下输出:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
如果有错误,请仔细检查并纠正错误。
运行以下命令启动nginx服务:
service nginx start
如果服务器上启用了防火墙(如iptables),需要确保将Nginx监听的80端口放行。
检查当前的iptables规则:
iptables -L
如果没有现有的规则允许80端口的流量通过,可以使用以下命令添加规则:
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
这将允许TCP流量通过80端口。
如果服务器上运行着防火墙软件(如UFW),还需要确保它允许80端口的流量通过。可以使用以下命令启用UFW的80端口:
ufw allow 80
如果权限不足,需要在命令前加上sudo
以获取管理员权限。
成功之后,就可以在本地浏览器中通过http://ip来访问服务器上的大模型Web应用了:
请注意,如果你的服务器网络是内网,本地需要额外的代理才能正常访问Web应用。