- 作者:
- 分类:知识&开发->Web->后端
- 阅读:2114
- 点赞:0
- 版权:CC BY-SA 4.0
- 创建:2019-10-13
- 更新:2019-10-19
Flask 部署
版权声明:本文为 neucrack 的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接(持续更新):https://neucrack.com/p/19
原文链接(持续更新):https://neucrack.com/p/19
一
pip3 install uwsgiuwsgi --version
如果找不到执行程序,可以搜索一下安装到哪里了,然后软链接一下就好了
sudo find / -name uwsgisudo ln -s /home/neucrack/.local/bin/uwsgi /usr/bin/uwsgi
工程目录创建一个文件deploy.py:
from file_server import create_appapp = create_app()
其中
app是一个flask.Flask对象
uwsgi -s 0.0.0.0:5000 --protocol=http -w deploy:app
然后即可访问
二
- 同样建立
deploy.py - 建立
uwsgi.ini
[uwsgi]module = deploy:appmaster = trueprocesses = 10threads = 2chdir = /root/software/file_serversocket = /root/software/file_server/instance/file_server.socksocket =127.0.0.1:5000logto = /root/software/file_server/instance/file_server.logchmod-socket = 660vacuum = truestats=%(chdir)/instance/uwsgi/uwsgi.statuspidfile=%(chdir)/instance/uwsgi/uwsgi.pid
- 启动
uwsgi
$ uwsgi --ini uwsgi.ini[uWSGI] getting INI configuration from uwsgi.ini
当然,这条命令需要在后台执行,比如
$ (uwsgi --ini uwsgi.ini &)
如果配置文件中没有写threads,nginx的连接可能被拒绝导致无法访问,
比如报
111: Connection refused
这报错信息来自nginx的log
$ uwsgi --ini uwsgi.ini --enable-threads
- 停止
uwsgi:
uwsgi --reload instance/uwsgi/uwsgi.piduwsgi --connect-and-read instance/uwsgi/uwsgi.status# 这个命令返回一个json串,显示进程和worker的详细状态uwsgi --stop instance/uwsgi/uwsgi.pid
- 编辑nginx配置文件
vim /etc/nginx/nginx.conf
server {listen 8000;server_name dl.sipeed.com;client_max_body_size 20m;# access_log /tmp/nginx.log;# error_log /tmp/nginx2.log;location / {include uwsgi_params;uwsgi_pass 127.0.0.1:5001;}}
uwsgi -s /tmp/file_server.sock --manage-script-name --mount /file_server=file_server:create_app
-s/--socket绑定一个socket到文件,而不是到ip和端口
session 使用注意
当给session赋值为list时不要直接对其操作,比如:
session["list1"] = [1]session["list1"].append(2)
看起来没问题,实际上对session的修改并没有生效,需要对session["list1"]再赋值一遍:
session["list1"] = [1]session["list1"].append(2)session["list1"] = session["list1"]
或者为了让代码看起来更好看使用中间变量
session["list1"] = [1]tmp = session["list1"]tmp .append(2)session["list1"] = tmp
- 开机启动需要注意
注意设置的用户,比如添加到rc.local时,如果不想是root, 则
/bin/su neucrack -c "cd /home/neucrack/soft/mklife && (uwsgi --ini instance/uwsgi.ini > instance/mklife.log 2>&1 &)"
这里用户名为
neucrack

