淘先锋技术网

首页 1 2 3 4 5 6 7

第一次部署记录一下:有错欢迎大哥大姐批评指正留言!我是小白,很小的那种。

用xshell连接服务器

用xftp进行文件传输

购买的服务器配置是阿里云ubuntu16.04

Python3

1.先更新apt

sudo apt-get update
sudo apt-get upgrade

2.  安装 virtualenv 虚拟环境

pip install virtualenv
pip3 install virtualenvwrapper

 配置环境变量文件。首先修改(文件不存在就创建)文件~/.bashrc,然后添加如下语句:

export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/workspace
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
source /usr/local/bin/virtualenvwrapper.sh

运行:source ~/.bashrc

source ~/.bashrc

 创建文件夹myflask方便管理

mkdir myflask

或者直接在xftp中创建更直接方便

进入该目录

cd myflask

 创建虚拟环境:这里选择Python3   虚拟环境名称取T

mkvirtualenv -p python3 T

直接输入以下命令就可以进入虚拟环境 

source T/bin/activate

命令行前面就出现了T的字样,此时已经处于虚拟环境中。

创建或复制hello.py文件

from flask import Flask

app = Flask(__name__)

@app.route("/")

def hello():

	return( "Hello World!")

if __name__ == "__main__":

	app.run(host='0.0.0.0', port=8080)

 运行命令:

python hello.py

退出虚拟环境命令:

deactivate

这里会提示很多包没有,需要在虚拟化环境中安装
安装的包括但不限于flask

确认安装包安装完毕,访问你的服务器ip+端口号()访问,看看能不能行

eg:233.123.234.12:5000

可以的话(访问时,出现“Hello World!”字样),Ctrl+C退出调试就行了

因为后面的操作不用在虚拟环境中进行,需要先退出虚拟环境
deactivate命令退出虚拟环境

安装 uWSGI

这个是flask的生产运行环境之一,flask自带的wsgi性能太差了

pip install uwsgi

创建uWSGI的配置文件

cd /home/myflask

vim uwsgi.ini

# 配置文件'/home/myflask/uwsgi.ini'
[uwsgi]
#application's base folder
base = /home/myflask
#python module to import
app = hello
module = %(app)
home = %(base)/venv
pythonpath = %(base)
#socket file's location
socket = %(base)/%n.sock
#permissions for the socket file
chmod-socket = 666
callable = app
#location of log files
logto = /var/log/uwsgi/%n.log

参数讲解

base:项目文件所在目录

app:python 程序内用以启动的 application 变量名的文件名(最好的辨认方法是看哪个文件中app.run()这行代码),在本例中,hello.py中有app.run(),所以填入该py文件名—hello

logto:日志文件的位置,自定义

socket:用于存放uwsgi启动后生成的sock文件,用来和Nginx 通信

只需要修改上述加粗参数,如果是按照以上步骤来的,就不需要更改

保存并退出

读取配置文件

uwsgi uwsgi.ini

安装Supervisor

上面命令运行uwsgi的方式,如果进程异常退出后,服务就无法访问,使用supervisor来管理进程,对异常终端的服务进行自动重启

apt-get install supervisor

cd /etc/supervisor/conf.d

创建项目的配置文件

vim uwsgi.conf

[program:uwsgi]
command=uwsgi --ini /home/myflask/uwsgi.ini                               
stopsignal=QUIT
autostart=true                                                                        
autorestart=true                                                                       
stdout_logfile=/var/log/supervisor/myflaskLogs/flask_supervisor.log                 
stderr_logfile=/var/log/supervisor/myflaskLogs/flask_supervisor_err.log

所有的参数其中可以修改的有:command、stdout_logfile、stderr_logfile

后面两个是日志输出地址,自定义

配置后即可启动服务项目

service supervisor start

安装Nginx

apt-get install nginx

创建项目Nginx的配置文件

cd /etc/nginx/conf.d

vim myflask.conf
server {
    listen  80;
    server_name localhost;
    charset  utf-8;
    client_max_body_size 75M;
    location / { try_files $uri @yourapplication; }
    location @yourapplication {
        include uwsgi_params;
        uwsgi_pass unix:/home/myflask/myflask_uwsgi.sock;
    }
}

uwsgi_pass unix是socket的文件地址

启动!!!

service nginx restart

其实到这,基本已经完成,后期只需要直接修改代码,网页会自行更新。
后面需要通过Supervisor进行管理,可以直接理解为一个控制台,在这上面可以直接控制flask项目的启动和停止
请熟悉以下命令

查看当前运行的项目

supervisorctl status

运行uwsgi项目,开始由Supervisor接手运行,就是之前Supervisor配置文件中方括号内的名字
[program:uwsgi]

supervisorctl start uwsgi

当需要停止时,输入

supervisorctl stop uwsgi

全文参考:

 如何将Flask项目部署在Ubuntu系统的阿里云主机中(详细完整版:下)_ubuntu 22 高并发部署flask_i-kernel的博客-CSDN博客

阿里云服务器 ubuntu16.04 flask部署(uwsgi+nginx+supervisor)_Morning_17的博客-CSDN博客