腾讯云+flask+uwsgi+nginx部署入门

2020-04-08  本文已影响0人  钉某人

此篇是在腾讯云上部署flask项目的入门文章(nginx后面有时间添加)。
腾讯云配置:

1.Ubuntu创建新用户

sudo useradd -r -m -s /bin/bash dingmouren
-r:建立系统账号
-m:自动建立用户登入目录
-s:指定用户登录后使用的shell
sudo passwd dingmouren
image.png
sudo chmod +w /etc/sudoers
sudo vim /etc/sudoers
# 添加下图的配置语句
sudo chmod -w /etc/sudoers
image.png

到这里新用户创建成功


image.png

切换到新用户命令

su - dingmouren
image.png

附:删除用户
①.执行命令

sudo userdel dingmouren

②.删除用户目录

sudo rm -rf /home/dingmouren

③.删除用户权限的配置:就是删除掉 /etc/sudoers中关于dingmouren的语句,否则不能创建同名用户

2.Ubuntu上配置python开发环境以及创建flask测试项目

①更新软件列表

sudo apt update
image.png

②安装相关软件包

sudo apt install python3-pip python3-dev build-essential libssl-dev libffi-dev python3-setuptools

③安装python虚拟环境以及使用

1.安装virtualenv
sudo apt install virtualenv

2.创建项目目录
mkdir flaskweb
cd flaskweb
3.创建独立运行的虚拟环境并命名
virtualenv --python=python3 venv

4.进入虚拟环境
source venv/bin/activate

5.退出虚拟环境命令
deactivate
image.png

④安装wheel uwsgi flask

pip3 install wheel
pip3 install flask
pip3 install uwsgi
image.png

⑤创建flask项目程序

touch api.py
sudo vim api.py
image.png

⑥放开5000端口


image.png image.png

⑦启动flask程序测试,使用flask自带的服务器

img.png

3.使用uwsgi启动flask项目

[uwsgi]
master = true
http=:5000
chdir = /home/dingmouren/flaskweb
wsgi-file=/home/dingmouren/flaskweb/api.py
callable=app
processes=4
threads=2
buffer-size = 65536
vacuum=true
pidfile =/home/dingmouren/flaskweb/uwsgi.pid

启动uwsgi
uwsgi uwsgi.ini

停止uwsgi
pkill -f -9 uwsgi

sudo nano /etc/systemd/system/flaskweb.service
image.png
[Unit]  
Description=uWSGI instance to serve flaskweb
After=network.target

[Service]
User=dingmouren
Group=www-data
WorkingDirectory=/home/dingmouren/flaskweb
Environment="PATH=/home/dingmouren/flaskweb/venv/bin"
ExecStart=/home/dingmouren/flaskweb/venv/bin/uwsgi --ini uwsgi.ini

[Install]
WantedBy=multi-user.target

# 属性解释
[Unit]部分用于指定元数据和依赖项
Description是对服务的描述
After=network.target指启动服务的条件为达到网络目标
[Service]部分指定我们要在其中运行进程的用户和组
User=dingmouren表示设置用户组,ubuntu是腾讯云Ubuntu系统默认的用户,如果你的用户名为其他,需要改为你自己的用户名
Group=www-data是将组所有权授予该www-data组,以便Nginx可以快捷地与uWSGI进程进行通信
WorkingDirectory是flask程序所在的路径
Environment是虚拟环境bin文件夹的地址
ExecStart设置后可以快捷地调用uWSGI可执行文件myproject.ini并将其传递给我们的配置文件
WantedBy=multi-user.target表示我们设置该服务在常规多用户系统启动并运行时启动

复制粘贴后,按control+o,进入下一步,然后按回车进行保存,最后按control+x回到命令行界面。
完成以上执行启动服务命令

sudo systemctl start flaskweb
sudo systemctl enable flaskweb

查看服务状态命令

sudo systemctl status flaskweb
image.png

执行完,按control+c,回到正常命令界面,退出ssh客户端,访问地址仍然可以是访问的哦,
如果修改了service中的配置,需要执行重新加载命令:sudo systemctl daemon-reload,再启动服务:sudo systemctl start flaskweb,可以再查看下服务状态:sudo systemctl status flaskweb

image.png

附加:

1.查看uwsgi相关进程

ps aux|grep uwsgi
image.png

2.停止服务命令

sudo systemctl stop flaskweb
上一篇下一篇

猜你喜欢

热点阅读