美文网首页
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