zoukankan      html  css  js  c++  java
  • Gunicorn启动flask项目

    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,不要着急,我这里直接给你图你就明白了

  • 相关阅读:
    Lesson_6 作业_1 封装学生类
    Lesson_6_1 上课笔记 张三和法拉利
    Lesson_3 作业_3 输出字母金字塔
    Java简介
    Lesson_7 上课笔记_1 static关键字和导包
    软件设计师考试大纲
    <<设计模式可复用面向对象软件的基础>>组合模式(Composite)
    CS1595:已在多处定义
    <<设计模式可复用面向对象软件的基础>>读书笔记(第一章)引言
    <<设计模式可复用面向对象软件的基础>>设计模式怎样解决设计问题
  • 原文地址:https://www.cnblogs.com/lzqrkn/p/11765108.html
Copyright © 2011-2022 走看看