美文网首页
Python Flask项目部署到服务器(Uwsgi+Nginx

Python Flask项目部署到服务器(Uwsgi+Nginx

作者: 彩虹丶直至黑白 | 来源:发表于2023-03-15 15:17 被阅读0次

    1、Python环境部署

    Python3.7.8 https://www.python.org/ftp/python/3.7.8/Python-3.7.8.tgz

    ···在服务器/usr/local目录下,新建python3.7文件夹
    
    ···在/usr/local/python3.7目录下执行   
            tar -zxvf Python -3.7.8.tgz
    
    ···解压完毕后, 进入到/usr/local/python3.7/Python-3.7.8目录,执行./configure命令:
            ./configure
    
    ···成功后,执行安装命令:
            make && make install
            成功后会提示pip 安装成功!
            
    ···安装完毕后,使用python -V命令还是显示出默认的python编译器,需要修改alias
            ~/.bashrc
            添加一条 alias python='/usr/local/python3.7/Python-3.7.8/python'
            如下文
            保存完了记得source ~/.bashrc
            然后执行python -V命令
             python -V
             Python 3.7.8
            
    ···在接下来安装python库的时候,可能会报一些pip、pip版本、或者setuptools的错,可以按照提示执行命令,大致的命令有以下几个:
            python -m pip install
            /usr/local/bin/python3.7 -m pip install --upgrade pip
            pip3 install --upgrade setuptools
    

    下为.bashrc文件内容

    # .bashrc
    
    # User specific aliases and functions
    
    alias rm='rm -i'
    alias cp='cp -i'
    alias mv='mv -i'
    alias python='/usr/local/python3.7/Python-3.7.8/python'
    # Source global definitions
    if [ -f /etc/bashrc ]; then
            . /etc/bashrc
    fi
    

    2、安装uwsgi

    pip3 install uwsgi
    

    3、在Flask项目根目录下边创建uwsgi.ini文件

    截屏2023-03-14 上午11.54.44.png

    文件内容如下:

    [uwsgi]
    http=0.0.0.0:8086
    chdir=/home/www/py/flaskProject1
    wsgi-file=/home/www/py/flaskProject1/app.py
    callable=app
    master=true
    processes=1
    threads=10
    daemonize=uwsgi.log
    disable-logging=true
    pidfile=uwsgi.pid
    buffer-size=65536
    harakiri=60
    vacuum=True
    

    参数说明:

    http参数是设置ip+端口号,主要是端口号,这里设置的和后续Nginx设置的项目端口号一致。
    chdir参数是项目在服务器中存放的路径。
    wsgi-file是启动文件在服务器中存放的路径。
    daemonize是日志记录,会在同目录下生成uwsgi.log文件
    其他参数根据自己项目情况需求调整,一般这样写就可以。
    

    4、把Flask项目放入文件夹

    3步骤已经编辑好了uwsgi.ini文件,chdir参数设置的是文件目录/home/www/py/flaskProject1。
    把flask项目整个文件夹放入/home/www/py路径下,环境文件夹venv如果太大可以不放入,然后通过pip3 install -r requires.txt 来安装相应的库。
    

    5、配置Nginx

    server {
            listen 8086;    #和uwsgi.ini文件中设置的端口号一致
            server_name 127.0.0.1; #访问ip
            
            location / {
              include uwsgi_params;
              uwsgi_pass 127.0.0.1:5000;  #代理到uwsgi.ini里兼容的ip和端口
            }
        }
    

    6、启动uwsgi和Nginx

    #启动uwsgi
    在项目目录执行 uwsgi --ini uwsgi.ini
    
    可以通过ps -ef |grep uwsgi指令查看运行状态
    ps -ef |grep uwsgi
    root     14850     1  0 16:47 ?        00:00:00 uwsgi --ini uwsgi.ini
    root     14865 14850 67 16:47 ?        00:09:58 uwsgi --ini uwsgi.ini
    root     14866 14850  0 16:47 ?        00:00:00 uwsgi --ini uwsgi.ini
    root     32721 16976  0 17:02 pts/0    00:00:00 grep --color=auto uwsgi
    
    #其他指令-关闭
    uwsgi --stop uwsgi.pid  #14850,如果uwsgi.pid不是上边查到的14850,就会报错(signal_pidfile()/kill(): No such process [core/uwsgi.c line 1695]),这时候需要打开当前文件夹中uwsgi.pid文件,手动修改数值,之后再执行关闭指令。
    
    #启动Nginx
    nginx -s reload
    

    完成!

    接下来就可以通过服务器ip+8086端口访问到Flask项目了!

    相关文章

      网友评论

          本文标题:Python Flask项目部署到服务器(Uwsgi+Nginx

          本文链接:https://www.haomeiwen.com/subject/ibtgnrtx.html