1.云服务器部署需求:python环境,QQLinux版本,git,7z压缩
2.将Flask文件传至云服务器
方一:QQ传送文件,支持.7z类型的文件传送
方二:git新建项目,利用git进行文件传送
建议以下步骤均在root下进行
3.使用虚拟环境(建议,若不使用,跳过(2)(3))
(1)cd到项目目录下(跟主程序app.py同一目录),运行 python3 -m virtualenv
(2)运行virtualenv venv
(3)激活虚拟环境:source venv/bin/activate
前面出现(venv),激活成功
(4)pip3 install uwsgi
(5)pip3 install -r requirements.txt
安装项目所需包
(6)python app.py runserver
检测是否可以运行
运行成功
4.配置 uwsgi
(1)touch config.ini
在app.py同级目录下创建config.ini的空白文件
(2)gedit config.ini
打开config.ini文件
写入
[uwsgi]
socket= 000.000.000.000:5002 #建议用私有IP
chdir = /Home/www/NumberWeb #项目路径
wsgi-file=/Home/www/NumberWeb/app.py #项目启动文件路径
callable=app #即flask中app = Flask(__name__)的app
processes=4
threads=2
pidfile=./uwsgi.pid
socket建议用华为云提供的网络私有ip
保存文件
(3)uwsgi config.ini
查看是否配置成功
出现starts server enabled on…表示成功
5.配置nginx
(1)apt-get install nginx
(2)打开nginx服务器的配置文件nginx.conf。一般是在/etc/nginx/nginx.conf
路径下。如果不是的话,可以使用whereis nginx命令来找到nginx所在的所有目录,然后一个个看目录下是否有nginx.conf这个文件。
(3)gedit nginx.conf
打开nginx.conf文件
server {
listen 80;
server_name 000.000.000.000; #云服务器提供的公网ip
location / {
include uwsgi_params;
uwsgi_pass 000.000.000.000:5002; #同uwsgi congfig.ini的私有ip
uwsgi_param UWSGI_PYHOME /home/wasiri/www/NumberWeb/venv; #虚拟环境位置
uwsgi_param UWSGI_CHDIR /home/wasiri/www/NumberWeb;
uwsgi_param UWSGI_SCRIPT app:app;
}
保存文件
6.回到uwsgi congfig.ini下目录,运行uwsgi config.ini &
(&表示后台运行)
7.浏览器输入服务器的ip地址(公网ip),不出意外,搞定~~
8.写在后面
注1:若需要直接在根目录下输入nginx直接启动,还需要配置/etc/nginx/sites-available/default,使其内容与nginx.conf相同
注2:
重启uwsgi :nohup uwsgi --reload uwsgi.pid > uwsgi.log 2>&1 &
停止uwsgi :nohup uwsgi --stop uwsgi.pid > uwsgi.log 2>&1 &
开启uwsgi :nohup uwsgi config.ini > uwsgi.log 2>&1 &