Gunicorn是一个unix上被广泛使用的高性能的Python WSGI UNIX HTTP Server。
和大多数的web框架兼容,并具有实现简单,轻量级,高性能等特点
废话不多说,直接上干货!!!!
1.创建虚拟机--->自行百度,一大推
2.我这里用的centos7迷你版镜像,这个无所谓
3.干净的虚拟机无法使用wget,需要我们配置yum源!!!这个重点!!!!!
yum国内仓库环境的搭建
yum源的仓库路径在/etc/yum.repos.d/然后这个目录底下,只有 以 .repo结尾的文件,才会被识别为yum仓库
1.在/etc/yum.repos.d/目录底下,定制我们自己的repo仓库文件
2.我们自己没有yum仓库,我们就去拿阿里巴巴的yum仓库
3.https://opsx.alibaba.com/mirror 这就是阿里巴巴的镜像站
4.下载阿里巴巴的yum仓库文件
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget下载文件后,-O参数,指定放到某个目录,且改名
5.清除yum缓存
yum clean all
6.生成新的阿里云的yum软件缓存
yum makecache
View Code
4.yum源现在已经配置完成,开始下载python!
python环境的搭建
1.切换到我们的opt目录下,opt我们存放我们的第三方的软件
cd /opt
2.直接输入命令进行下载python源码
wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tgz
3.这里需要说一下记住!python3的依赖包,我们必须先下载好依赖包,否则后期会出现一些问题
yum install gcc patch libffi-devel python-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel -y
4.解压源码
tar -xvf Pthon3.6.2.tgz
5.切换源码包目录
cd Python-3.6.2.tgz
6.进行编译安装
释放编译的文件makefile:./configure --prefix=/opt/python36/
#--prefix 指定软件的安装路径
7。开始编译python3
make
8.编译和安装(这一步完成之后才会出现/opt/python36)
make install
9.配置环境的变量
echo $PATH(查看环境变量) #/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
10.变量的赋值
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/opt/python36/bin
11.linux有一个全局个人配置文件(/etc/profile)
vim /etc/profile
写入:PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/opt/python36/bin
12.读取文件让她生效
source /etc/profile
13.测试能否进行运行
13.1安装django
pip3 install django
13.2建django项目
django-admin startproject mysite
13.3建django应用
django-admin startapp app01
13.4编写视图函数
13.5注意修改setting.py的allow_hosts文件[]里加上"*"
14.启动django项目
python3 manage.py runserver 0.0.0.0:8000
15.需要说明一下的是当我们在网上访问的时候注意不要是0.0.0.0这个ip,应该是我们虚拟机的ip+8000端口号
,还有就是如果访问不了记得看一下防火墙是不是关闭
查看防火墙:iptables -L
关闭防火墙:systemctl stop firewalld
View Code
5.这里我使用的虚拟环境--->virtualenvwrapper,我就直接上我这个得环境安装了
virtualenvwrapper虚拟环境管理工具(就是管理虚拟环境的工具)
1.前提:必须是在物理解释器下(不是其中的一个虚拟环境)
pip3 install virtualenvwrapper
2.注意:path的配置,需要将物理解释器的python,放在path最前面(查找有顺序)
[root@localhost ~]# echo $PATH
vim /etc/profile/(总得环境配置文件)
#/opt/python36/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin
3.编辑用户家目录的.bashrc文件(用户登陆的时候就会读取这个文件)
3.1进入用户的家目录:vim ~/.bashrc
3.2添加字符串:
export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages'
#添加virtualenvwrapper的参数,生成干净隔绝的环境
export VIRTUALENVWRAPPER_PYTHON=/opt/python36/bin/python3
#指定python解释器
source /opt/python34/bin/virtualenvwrapper.sh
#执行virtualenvwrapper安装脚本,这个是virtualenvwrapper.sh的安装路径(查看安装路径:which virtualenvwrapper.sh)
3.3 :x (相当于:wx!)
3.4 退出:logout
3.5重新登录:ssh ...
4.如果正确则会使用virtualenvwrapper工具
5.mkvirtualenv li (创建li的虚拟环境且激活虚拟环境)
6.workon li (切换li的虚拟环境)
7.deactivate (退出虚拟环境)
9.cdvirttualenv(进入当前激活的虚拟环境所在的目录(这里建我们的项目app))
10.cdsitepackages (进入当前激活的虚拟环境的,python包的目录(下载第三方软件包))
8.rmvirtualenv li(删除li的虚拟环境)
View Code
PS:这里说一下使用ssl连接虚拟机的时候可能查不到虚拟机的ip,这个看我之前的随笔里边有记载
6.现在为止我们这个大的环境也就是算是安装完成了,现在开始启动Flask项目
6.1,创建虚拟环境
mkvirtualenv li
6.2 进入虚拟环境
workon li
6.3安装Gunicorn
pip3 install gunicorn
6.4查看centos防火墙的状态以及关闭防火墙
systemctl status firewalld #查看防火墙状态
systemctl stop firewalld #关闭防火墙
systemctl disable firewalld#关闭防火墙开机启动
systemctl is-enabled firewalld.service#检查防火墙是否启动
6.5 这里我直接用命令启动项目
gunicorn -w 3 -b 192.168.38.128:5000 app:app # w:工作进程的数量,为正整数 b:ADDRESS,ip加端口,绑定运行的主机 app:app.py文件 app:程序
6.6 这里说一下哈,centos只开放22端口,开放其他端口需要我们自己去设置,一下是命令
firewall-cmd --zone=public --add-port=80/tcp --permanent # --zone:作用域 –add-port=80/tcp #添加端口,格式为:端口/通讯协议 –permanent #永久生效,没有此参数重启后失效
6.7为了确保端口已开启,建议查看一下
firewall-cmd --list-ports
现在大功告成,有一些坑,这里归拢一下
1.yum源配置之后下载服务会报错,不管是update还是啥的都不管用,都是报这个错:No such file or directory: '/var/cache/yum/x86_64/7/_loca,经过我日思夜想深思熟虑抽完烟之后,我觉得这个错我看不懂,然后只要我看不懂的都rm -rf 就完事了,然后别忘记yum makecache 一下
2.Gunicorn启动项目的时候,可能在windows测试每一问题的代码在centos上会有问题,运行的时候回报错,但是Gunicorn这玩意报错太笼统,根本不知道错误地方在哪里,这个时候就需要在启动命令里加一个参数,打印具体错误:gunicorn -w 3 -b 192.168.38.128:5000 app:app -preload
3应该还会有一些人还是分不开启动项目命令中的app:app,不要着急,我这里直接给你图你就明白了