使用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應用。