部署杂记

本文最后更新于:2023年2月28日 下午

gunicorn+nginx部署Flask接口

1. gunicorn

Python安装gunicorn库,在服务器终端使用gunicorn命令行可以使Flask app运行至指定端口。

1
2
3
4
5
6
7
// 命令行示例
gunicorn -w 2 -b :10011 service_app:app

/* -w <处理请求的进程数>
-b 绑定本机IP
:<指定绑定的端口>
service_app:<指定启动文件> */

2.nginx

将服务器端口映射至https域名。

  1. 申请免费SSL证书

    阿里云可申请20个时限一年的免费SSL证书,申请后签发至对应域名下(若域名已解析至相应服务器,自动模式一劳永逸),下载nginx版证书文件。

  2. nginx导入证书文件

    1
    2
    3
    4
    5
    6
    7
    /* nginx目录下(/usr/local/nginx)创建cert文件夹,导入证书文件.pem/.key
    1. 确认nginx已安装ssl模块
    2. 注意新建目录的权限问题 */

    cd /usr/local/nginx
    mkdir cert
    chmod 777 cert
  3. 配置虚拟主机

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    # 配置server: 新建一个虚拟主机

    server
    {
    listen 80 default_server reuseport; #设为默认虚拟主机
    listen 443 ssl; # 配置https
    server_name show1024.top; #解析至域名

    # ssl证书地址
    ssl_certificate /usr/local/nginx/cert/<>.pem; # pem文件的路径
    ssl_certificate_key /usr/local/nginx/cert/<>.key; # key文件的路径

    location / {
    proxy_pass http://0.0.0.0:<>; #代理端口
    proxy_redirect off;
    proxy_set_header Host $host:80;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
    }

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!