centos7中使用flask+uwsgi+nginx部署项目完整配置

centos7中使用flask+uwsgi+nginx 部署项目完整配置

作者:lizhonglin
github: https://github.com/Leezhonglin/
blog: https://leezhonglin.github.io

1、需要准备的东西

1). 项目依赖requirements.txt.我这里简单列举几个.实际情况要根据自己的项目来定。

Flask==1.0.2
Flask-APScheduler==1.11.0
Flask-Cors==3.0.7
Flask-JWT==0.3.2
Flask-RESTful==0.3.7
...

2). 安装nginx

自行百度,查找相关教程,这里忽略

3).安装python3

自行百度,查找相关教程,这里忽略

4).安装virtualenv

pip install virtualenv

5).使用virtualenv创建一个属于自己项目的虚拟环境

virtualenv --no-site-packages testenv

注意:这个地方如果系统有python2python3 两个版本。需要做一个默认版本切换.一般系统默认的python2.如果没有做版本切换,使用上述命令创建出来的虚拟环境是python环境是python2. 我个人的经验是删除系统中python的软连接,建立一个python3到python的软连接。创建好虚拟环境后在吧默认的软连接恢复。这样创建出来的虚拟环境就是自己需要的了。

具体操作方法如下:

进入/usr/bin目录,使用命令ll python*.就能看见下面的软连接信息。

[root@ks-1 bin]# ll python*
lrwxrwxrwx. 2 root root    9 Sep 23 20:08 python -> python2.7
lrwxrwxrwx. 2 root root    9 Sep 23 20:08 python2 -> python2.7
-rwxr-xr-x. 1 root root 7216 Oct 31  2018 python2.7
-rwxr-xr-x. 1 root root 1835 Oct 31  2018 python2.7-config
lrwxrwxrwx. 1 root root   16 Sep 23 20:08 python2-config -> python2.7-config
lrwxrwxrwx. 1 root root   31 Sep 26 14:47 python3 -> /usr/local/python36/bin/python3
lrwxrwxrwx. 1 root root   14 Sep 23 20:08 python-config -> python2-config

使用rm -rf python 命令就能删除当前python的软连接。

创建python3python的软连接

ln -s python3 python

删除python3的软连接rm -rf python

还原以前的python的软链接到python2

ln -s python2 python

2、安装项目的依赖

安装项目依赖到虚拟环境中.首先的激活虚拟环境:

source /home/testenv/bin/activate

安装项目的依赖

pip install -r requirements.txt

3、撰写uwsgi配置

把配置文件命名为testuwsgi.ini

[uwsgi]
# chdir — 项目所在的目录
chdir=/home/test
# virtualenv — 项目虚拟环境的目录
virtualenv=/home/testenv
# 启动的model 
# start:app
module=start:app
# 启动文件
wsgi-file=start.py
callable=app
#启动一个master进程来管理其他进程,以上述配置为例,其中的4个uwsgi进程都是这个master进程的子进程,如果kill这个master进程,相当于重启所有的uwsgi进程
master=true
#进程数量
processes=4 
#线程数量
threads=2
###使进程在后台运行,并将日志打到指定的日志文件或者udp服务器,日志文件会自动创建
daemonize=/var/log/uwsgi/test.log
#其中socket是用来uwsgi与nginx之间通信的
socket=127.0.0.1:18888

使用uwsgi命令启动项目

uwsgi --ini testuwsgi.ini

4、nginx的配置

找到nginx的配置文件,添加如下配置

server {
    listen       5052;
    server_name  localhost;
	#将所有请求转发给demo_pool池的应用处理
	  location / {
        include uwsgi_params;
        uwsgi_pass 127.0.0.1:18888;
    }
		
}

listen — 表示监听的端口

server_name — 表示服务名称(有域名可以换成域名)

location :接收请求

include uwsgi_params :固定写法

uwsgi_pass: 服务的主机和端口

重启nginx

systemctl reload nginx

到此项目就部署成功了,就可以通过server_name配置的地址和端口进行访问了。

你可能感兴趣的:(flask,uwsgi部署)