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,不要着急,我這里直接給你圖你就明白了

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM