使用Nginx將大模型Web應用部署到公網

一蓑烟雨度平生發表於2024-03-15

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

相關文章