环境使用的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说明成功了
说下踩过的坑
- 注意python版本
- 注意uwsgi一定要带对应python版本的插件