Ubuntu部署FastApi项目

环境介绍

系统: Ubuntu 22.04
Pyhton版本:3.8.10
Fastapi版本:0.95.0
Gunicorn版本:20.1.0

准备工作

1. ssh 连接工具(本例使用基于Windows的Linux子系统中的ssh工具)
2. 配置nginx代理服务器
3. 配置Gunicorn WSGI HTTP服务器

一、SSH连接Ubuntu服务器

ssh username@host

username 是Ubuntu的登录密码

host 是Ubuntu的公网IP地址

image

二、nginx安装和配置

nginx安装

    apt install nginx

具体实施步骤:

  1. apt install nginx
  2. 进入目录/etc/nginx 找到 nginx.conf 文件
  3. 修改nginx.conf文件,添加以下配置

        server {
                listen 80;
                server_name domain_name;# 这里的domain_name是域名地址。
                location / {
                        proxy_pass http://127.0.0.1:8000; # 注意这里的端口跟配置脚本的端口一致。
                        proxy_set_header Host $host;
                        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                }
        }

三、Gunicorn的安装和配置

安装

pip install Gunicorn

创建文件 gunicorn_conf.py (可以使用Vim)

sudo vim gunicon_conf.py

按 “i” 键进入编辑模式,将下面的代码Copy到编辑器

    from multiprocessing import cpu_count

    # 是否守护
    daemon = True

    # 绑定
    bind = '0.0.0.0:8000'

    # pid 文件地址
    pidfile = 'gunicorn.pid'

    # 项目地址
    chdir = '.'

    # Worker Options
    workers = cpu_count() + 1
    worker_class="uvicorn.workers.UvicornWorker"
    threads = 2

    # Logging Options
    loglevel="debug"
    accesslog = 'access_log.log'
    errorlog =  'error_log.log'

按 “ESC” 输入 “:wq!”保存。

将该文件Copy到项目目录(本例中项目目录在~/testapi/tracker)

cp gunicorn_conf.py ~/testapi/tracker

启动gunicorn

gunicorn main:app -c gunicorn_conf.py

最后的结果应该是可以看到 接口文档了
image

写在最后

  1. 一般本地服务器需要换源之后才能快速安装,本例使用的是线上服务器,已经换过源了,若是自己的服务器,建议先换apt源再换pip源。

  2. nginx配置没提交完整配置文件,新版本的nginx需要注释掉第一行

        user www-data;
  1. 如果需要停止服务,可以直接使用
        # 结束进程
        killall gunicorn 

再使用

    gunicorn main:app -c gunicorn_conf.py

开启服务。

  1. Linux基本操作 和 数据库的部署不在本例的范围内
posted @ 2023-04-20 13:16  莫问哥哥  阅读(1076)  评论(0编辑  收藏  举报