使用 uWSGI+ nginx 部署 Flask web 应用
1.flask安装
pip install flask
使用flask开发完成后,需要部署到生产环境,这时候就需要用到 nginx+uwsgi了
2.uwsgi安装
pip install uwsgi
3. 在项目根目录添加uwsgi.ini文件 uwsgi.ini配置文件编辑
[uwsgi] #http = 0.0.0.0:8083 //仅用uwsgi启动时配置 socket = 127.0.0.1:5000 //监听nginx转发 wsgi-file=/data/app/bak_handle/approval_flow/flaskr/app.py //项目目录下应用文件 callable=app //程序内启用的application变量名,可以是其他名称,根据app名称设置 processes=4 //进程数 threads=2 //每个进程下的线程数
- 配置好后,输入指令uwsgi uwsgi.ini启动
- 这里没配日志路径,是因为随后在supervisor中启动,可以查看supervisor的日志
- 可以配置到supervisor中守护运行,具体方式可以参照之前配置Django+gunicorn+supervisor的博客
- 如看看大 [uWSGI] getting INI configuration from hello_uwsgi.ini, 则正常
4.nginx配置文件修改
http {
include mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /data/logs/nginx/access_flow.log;
server { listen 8083; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location / { include uwsgi_params; uwsgi_pass 127.0.0.1:5000; uwsgi_param UWSGI_CHDIR /data/app/bak_handle/approval_flow/flaskr; #项目根目录 uwsgi_param UWSGI_SCRIPT run:app; #启动程序的主程序 #root html; #index index.html index.htm; }
上述代码中为nginx的nginx.conf中的一段配置
检查nginx配置文件语法:sudo /usr/local/nginx/sbin/nginx -t
重新载入nginx: sudo /usr/local/nginx/sbin/nginx -s reload
5.启动uwsgi,启动nginx
这时候访问,输入:IP:8083
就可以访问了