基于Python HTTP原生库部署深度学习模型API

这篇笔记是2021年3月份部署深度学习模型时记录的,因具有公网ip的云服务器配置极其有限,所以使用frp进行内网穿透,主要流程如下:

Python HTTP原生库部署服务 + systemd单元自启 + frp内网穿透 + nginx反向代理

1. 使用原生Python HTTP库部署服务

假设以dl_server_api.py文件为例,具体可参考:

A neural named entity recognition and multi-type normalization tool for biomedical text mining

深度学习模型最佳部署方式:用Python实现HTTP服务器作API接口

2. 创建systemd单元文件并设置开机自动启动

sudo vim /etc/systemd/system/dl_api.service

内容如下

[Unit]
Description=Deep Learning API 
After=network.target
Wants=network.target

[Service]
Type=simple
ExecStart=/path/python /path/dl_server_api.py
Restart=always
RestartSec=20s
User=ls
LimitNOFILE=infinity

[Install]
WantedBy=multi-user.target

使之生效

sudo systemctl daemon-reload
sudo systemctl start dl_api
sudo systemctl status dl_api
sudo systemctl enable dl_api

3. frp内网穿透

添加配置frpc.ini

[dl_api]
type = tcp
local_port = 20000
remote_port = 20000

重启frpc服务

sudo systemctl restrat frpc

4. nginx添加反向代理

编辑frp服务端所在服务器的nginx配置文件

location /dl_api/ {
     proxy_pass http://127.0.0.1:20000/; 
     proxy_set_header Host $proxy_host;
     proxy_set_header X-Real-IP $remote_addr;
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
     }

重载配置

sudo nginx -s reload