利用Nginx+Uwsgi+Flask部署python webapi

环境使用的aliyunos,是基于centos版本的linux

先看了下python版本,默认安装了2.7和3.6

先安装flask

pip3 install flask

安装完成后,先写个test.py

from flask import Flask

app = Flask(__name__)
 
@app.route('/')
def hello_world():
    return 'Hello World!'

if __name__ == '__main__':
    app.run()

具体代码就不多解释了,懂python都能看懂,看不懂看下flask的文档也能看懂,然后运行看看效果

python3 test.py 

注意使用python3,然后打开浏览器访问http://127.0.0.1:5000 能看到hello world就表示成功了

由于flask运行不是很稳定,而且我们是需要服务器在后台运行webapi的,就需要nginx和uwsgi

 先安装下uwsgi,注意带上参数要加上python36插件

yum install -y uwsgi-plugin-python36

安装完毕后,写个conf.ini文件,如下

[uwsgi]

socket = 127.0.0.1:3031

chdir = /root/server/

plugins = python36

wsgi-file = /root/server/test.py

callable = app

processes = 4

ithreads = 2

daemonize = /root/server/log/server.log

stats = 127.0.0.1:9191

具体参数不多解释了,应该能都看懂,看不懂可以参考uwsgi文档

然后运行 uwsgi conf.ini,可以看看server.log文件,有没有什么报错

再安装下nginx

yum install nginx

修改下配置文件,默认一般在/etc/nginx/nginx.conf,加入uwsgi的配置内容

location / {

                include uwsgi_params;

                uwsgi_pass 127.0.0.1:3031;    # 转发端口,需要和uwsgi配置当中的监听端口一致

                # uwsgi_param UWSGI_PYTHON /home/自己创建的目录/venv;       # Python解释器所在的路径(这里为虚拟环境)

                uwsgi_param UWSGI_CHDIR /root/server;             # 项目根目录

                uwsgi_param UWSGI_SCRIPT manage:app; #(比如你测试用test.py文件,文件中app = Flask(__name__),那么这里就填  test:app

        }

我没用虚拟环境,所以把虚拟环境的配置注释掉了

保存后启动nginx,访问  http://127.0.0.1 ,能够看到hello world说明成功了

说下踩过的坑

  1. 注意python版本
  2. 注意uwsgi一定要带对应python版本的插件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值