前言
- 最近在学习CentOs服务器环境,刚好做腾讯小程序设计大赛,项目需要用到flask和爬虫写后端。本文记录了如何部署flask项目
- 若是在Ubuntu上用nginx+uwsgi部署flask项目,可以参考我之前写过的一篇笔记。
- 版本:python3.5.0,CentOs7.6
一.环境准备
- python3.5.0
- setuptools
- pip3
- uwsgi
- flask
-
安装python3.5.0
- 下载python的包
[root@VM_0_15_centos local]# wget --no-check-certificate https://www.python.org/ftp/python/3.5.0/Python-3.5.0.tgz
[root@VM_0_15_centos local]# tar -zxvf python3.5.0
[root@VM_0_15_centos local]# cd Python3.5.0
[root@VM_0_15_centos local]# ./configure
[root@VM_0_15_centos local]# make &&make install
- 现在python3.5.0已经安装好了,但是很可能你输入
python3 --version
会发现找不到python - 解决办法:看第二步
- 下载python的包
-
uwsgi(/nginx/python/pip3等)安装好后,command not found的解决办法
find / -name uwsgi
- 假设找到的地址为
/usr/local/bin/uwsgi
- 建立软连接
sudo ln -s /usr/local/bin/uwsgi /usr/bin/uwsgi
- 注意:建立软链接时最好sudo,不然很可能还是command not found
-
安装setuptools
- 同样下载setuptools的包
wget --no-check-certificate https://pypi.python.org/packages/source/s/setuptools/setuptools-19.6.tar.gz#md5=c607dd118eae682c44ed146367a17e26
- 解压
tar -zxvf setuptools-19.6.tar.gz
cd setuptools-19.6
- 分别执行
python3 setup.py build
,python3 setup.py install
-
顺利的话:
Processing dependencies for setuptools==19.6 Finished processing dependencies for setuptools==19.6
- 同样下载setuptools的包
-
安装pip
- 同样下载pip的包
wget --no-check-certificate https://pypi.python.org/packages/source/p/pip/pip-8.0.2.tar.gz#md5=3a73c4188f8dbad6a1e6f6d44d117eeb
- 解压
tar -zxvf pip-8.0.2.tar.gz
cd pip-8.0.2
- 分别执行
python3 setup.py build
,python3 setup.py install
-
顺利的话:
Processing dependencies for pip==8.0.2 Finished processing dependencies for pip==8.0.2
- 同样下载pip的包
-
安装pip需要的openssl和openssl-devel
执行yum install openssl
和yum install openssl-devel
注意很可能还需
yum -y install python3-devel
- 安装uwsgi
pip3 install uwsgi
-
安装flask和项目需要的一些包(只是本项目需要的包)
首先进入到项目目录里pip3 install flask
pip3 install virtualenv
pip3 install flask_sqlalchemy
pip3 install sqlalchemy
pip3 install flasgger
pip3 install flask_cors
pip3 install pymysql
二.代理服务器配置
-
配置文件uwsgi.ini
sudo vim uwsgi.ini
基本内容:[uwsgi] chdir=/home/dbc/gameEvent callable=app wsgi-file=app.py processes = 5 #挂载uwsgi到内网(要保证nginx能访问此内网) #也可以通过.sock文件与nginx通信 socket=127.0.0.1:5000 #http=0.0.0.0:8001#不用nginx的方式 chmod-socket=666 max-requests=1000
-
nginx配置
进入nginx的conf目录下(目录结构不一样哟!)cd /www/server/nginx/conf
sudo vim flask.conf
server{ listen 8001; server_name 0.0.0.0; #访问ip location / { include uwsgi_params; uwsgi_pass 127.0.0.1:5000; #代理到uwsgi.ini里部署的ip+端口 #uwsgi_pass unix:uwsgi.sock;#通过.sock文件通信的写法 } }
- 生成uwsgi日志目录
mkdir /var/log/uwsgi
- 跑起来
uwsgi uwsgi.ini -d /var/log/uwsgi.log
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。