天天看点

Flask部署 nginx+supervisor+virtualenv

1.安装虚拟环境

sudo pip install virtualenv

然后到自己想要去的目录下创建虚拟环境

virtualenv  虚拟环境名字

激活虚拟环境

source 虚拟环境名字/bin/active

此时就已经进入到了自己创建 的python虚拟环境里面了

在虚拟环境里面安装当前项目需要的包,就可以做到简洁和与其他项目运行不冲突

我们把需要的环境添加到文本里面

vim requirement.txt

flask
flask-wtf
flask-script
flask-bootstrap
wtforms
pillow
pymssql
gunicorn
           

还需要些什么包按自己需求写入

我依赖的部署服务器是gunicorn

Gunicorn是一个unix上被广泛使用的高性能的Python WSGI UNIX HTTP Server。

和大多数的web框架兼容,并具有实现简单,轻量级,高性能等特点。

安装所需要的包

pip insatll -r  requirement.txt

2.nginx安装

sudo apt-get install nginx

查看nginx运行状态 sudo service nginx statu

2.1配置nginx

进入nginx目录下面

cd /etc/nginx/

可以ls看下有些什么文件

Flask部署 nginx+supervisor+virtualenv

 sites-available(放置可用的配置文件)和sites-enabled(放置生效的配置文件)

cd  sites-available/   进入创建配置文件

sudo vim 文件名

server{
        listen 80;   #监听80端口

        location /static {
                alias 路径/static;      #静态文件路径
        }

        location / {
                proxy_pass http://127.0.0.1:9000;    #处理所有的http请求
        }
}
           

sites-available就已经配置好了,下面创建他与sites-enabled的软连接

进入sites-enabled目录下面

cd ..

cd sites-enabled/

sudo ln -s ../sites-available/文件名

这就配置好了,我们就可以重新加载nginx

sudo service nginx reload 

2.2如果有Job for nginx.service failed because the control process exited with error code.错误

就进去错误日志看看

vim /var/log/nginx/error.log

如果没有显示任何错误,就看看nginx的进程

 ps -ef | grep  nginx

然后全杀死

pkill -9 nginx

解决完以后就可以重新启动nginx

sudo service nginx reload 

sudo service nginx restart

3.supervisor简介

进程管理工具

(1).管理应用程序进程的控制

(2).多应用进程的管理

(3).应用中断后的快速恢复

3.1supervisor安装与配置

sudo apt-get install supervisor

 进入这个目录下面

cd /etc/supervisor/conf.d/

sudo vim 项目名字.conf        进入文件编辑模式 没有 项目名字.conf 这个的时候回自动创建一个这个文件

[program:项目名字]
command =虚拟环境目录/bin/gunicorn -b 127.0.0.1:9000 运行文件(不用加.py):app
directory =/项目目录/       指定项目的url
           

sudo supervisorctl 进行后台的管理

>reload    重新加载配置文件

>status    查看运行状态 

Flask部署 nginx+supervisor+virtualenv

> stop 项目名字   停止运行

>start 项目名字   启动

这样我们的项目就已经跑起来了

下面是基本概念图

Flask部署 nginx+supervisor+virtualenv

继续阅读