首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >FastAPI项目部署--nginx+gunicorn部署

FastAPI项目部署--nginx+gunicorn部署

作者头像
雷子
发布2022-09-29 20:27:04
发布2022-09-29 20:27:04
5.8K0
举报

在之前的分享中,大概有90片的文章分享了Fastapi框架的入门和项目的实战,分享后,没有进行过部署,那么如何部署呢,今天带领大家去看下。

部署选择了通用的nginx 和gunicorn来进行部署。如何部署呢,本篇带着大家去看一看。

一、 环境安装

安装nginx

代码语言:javascript
复制
brew install nginx  #mac部署
apt install nginx #linux部署

在windows可以执行下载安装

下载地址

http://nginx.org/en/download.html

安装后,修改下配置

在/usr/local/etc/nginx修改下配置

代码语言:javascript
复制
server {
        listen       80;
        server_name  localhost;
        #charset koi8-r;
        #access_log  logs/host.access.log  main;
        location / {
            root   html;
            index  index.html index.htm;
        }

然后执行,nginx启动,启动后访问localhost

代表nginx安装成功。

安装gunicorn

直接使用pip 安装即可

代码语言:javascript
复制
pip install gunicorn

二、配置

创建一个新的nginx.conf,配置下

代码语言:javascript
复制
worker_processes  1;
events {
    worker_connections  1024;
}
http {
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
server {
        listen 81;
        server_name localhost;
        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;

        }
    }
}

配置后,指向了本地的8000端口,配置后。

在去创建一个gunicorn.py

代码如下如下

代码语言:javascript
复制
daemon=True #是否守护
bind='0.0.0.0:8000'#绑定
pidfile='gunicorn.pid'#pid文件地址
chdir='.' # 项目地址
worker_class='uvicorn.workers.UvicornWorker'
workers=1
threads=2
loglevel='debug' # 日志级别
access_log_format = '%(t)s %(p)s %(h)s "%(r)s" %(s)s %(L)s %(b)s %(f)s" "%(a)s"'
accesslog = "gunicorn_access.log"
errorlog = "gunicorn_error.log"

三、启动配置

启动gunicorn

代码语言:javascript
复制
gunicorn main:app -c gunicorn.py

可以查看gunicorn是否启动,

mac或者linx用

代码语言:javascript
复制
ps -ef | grep gunicorn

windows 可以在对应的进程查看。

启动nginx

代码语言:javascript
复制
nginx -c ./nginx.conf

-c 后面跟着的是配置的地址,启动后,访问 81 可以正常访问,

直接访问对应的接口文档地址

这样nginx+gunicorn+fastapi项目部署完成。

发现问题,解决问题。遇到问题,慢慢解决问题即可。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-08-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 雷子说测试开发 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档