【Flask】线上部署

news/2024/10/23 19:46:30/文章来源:https://www.cnblogs.com/xwltest/p/18491574
  • 1.基本流程
1.本地开发项目
2.git将代码提交“仓库”
3.服务器获取代码
4.创建虚拟环境 + 激活 + 安装第3方模块
5.uwsgi -> 基于uwsgi启动Flask程序 9001
6.nginx + 配置
7.其他- 启动脚本- 关闭脚本
  • 2.第一步到第二步就不缀叙了,直接上代码仓库地址

    • https://gitee.com/xiao-wenliang/web_flash.git
  • 3.服务器获取代码

    • 3.1:连接服务器
    • 3.2:获取代码
      • 跟目录下新建data文件夹
      • 克隆代码到data中
  • 4.创建虚拟环境 + 激活 + 安装第3方模块

    • 4.1:创建虚拟环境
      • 安装虚拟环境模块:pip3.9 install virtualenv
      • virtualenv /envs/web_flask --python=python3.9
      • 注:安装过程中,提示安装成功,但是无法使用virtualenv,通过反复卸载安装,发现安装后有如下报错
      • 解决方法:
        • echo 'export PATH=/home/xxx/bin:$PATH' >>~/.bashrc ,/home/xxx/bin,安装后警告的路径
        • source ~/.bashrc
        • 再次卸载安装即可
    • 4.2:激活,source /envs/web_flask/bin/activate
    • 4.3:安装第三方模块,pip install -r requirements.txt
  • 5.ewsgi启动与配置

    • 5.1:安装uwsgi模块,pip3.9 install uwsgi
    • 5.2:通过uwsgi启动
      • 5.2.1:项目跟目录下创建ini配置文件
# nb_uwsgi.ini[uwsgi]
socket = 0.0.0.0:9001
chdir = /data/web_flask
wsgi-file = app.py
callable = app
processes = 1
virtualenv = /envs/web_flask/
  • 5.2.2:启动方式
    • 1.基于虚拟环境
source /envs/web_flask/bin/activate
uwsgi --ini  nb_uwsgi.ini
- 2.绝对路径
/envs/web_flask/bin/uwsgi --ini  nb_uwsgi.ini
- 3.启动之后,如果终端关闭就会停掉,怎么后台运行与手段关闭呢?
# 后台运行
/envs/s9_flask_deploy/bin/uwsgi --ini  nb_uwsgi.ini &# 手动杀掉
ps -ef|grep nb_uwsgi
kill -9 进程ID
- 4.配置文件,自动重启与关闭
# 重启
#!/usr/bin/env bashecho -e "\033[34m--------------------wsgi process--------------------\033[0m"
ps -ef|grep nb_uwsgi.ini | grep -v grep
sleep 0.5
echo -e '\n--------------------going to close--------------------'
ps -ef |grep nb_uwsgi.ini | grep -v grep | awk '{print $2}' | xargs kill -9
sleep 0.5
echo -e '\n----------check if the kill action is correct----------'
/envs/web_flask/bin/uwsgi  --ini nb_uwsgi.ini &  >/dev/null
echo -e '\n\033[42;1m----------------------started...----------------------\033[0m'
sleep 1
ps -ef |grep nb_uwsgi.ini | grep -v grep
- 5.服务器中运行- 5.1:赋予可执行权限- 5.2:执行

  • 6.nginx + 配置
    • 6.1:安装nginx,yum install nginx -y
    • 6.2.修改配置文件
      • 安装完之后,在/etc/nginx/下有个nginx.conf的配置文件

      • 修改,配置文件内容比较多,我们一般将原文件重命名,重新新建一个,内容参考项目根目录下的nginx.conf

      • 启动关闭nginx

# 启动
systemctl start nginx
systemctl stop nginx# 开机启动
systemctl enable nginx
  • 7.开放端口

  • 8.至此,flask部署完毕,运行过程中可能存在各种各样的问题,问度娘吧。。。。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/818745.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

24.10.19

A 数学题,不会。 随便取一数 \(v\),询问得到 \(t \equiv \log_g v \pmod p\)。 我们希望找到 \(x\) 使得 \(v^x \equiv g \pmod p\),即 \(g^{tx} \equiv g \pmod p \Leftrightarrow tx \equiv 1 \pmod {p-1}\)。那么只要 \(t\) 与 \(p - 1\) 互质即可求得逆元。 有原根相关知…

git安装-Tortoise git 安装汉化教程

git安装,Tortoise git安装汉化教程,代码版本管理工具1.首先下载 去官网下载 如果下载比较慢的,链接自取 https://pan.quark.cn/s/fcb9d0b39c7f 2. 安装git3. 安装git图形化工具Tortoise git4. 汉化

字符串json数组怎么转换成jsonobject类型

字符串数据[]怎么转换成jsonobject格式 String jsonString = "[{\"code\": \"200\", \"msg\": \"读取成功,返回数据条数\", \"data\": [{\"user_id\": \"1\", \"user_name\": \"小…

最新激活Navicat 15教程,附Keygen Patch

前言 大家好,我是小徐啊。navicat是一款常用的数据库连接工具,但是它本身是需要收费的,很不方便。那么,有没有免费的方式呢?今天小徐就介绍下如何激活navicat的方式,永久激活。文末附获取方式。 如何安装 首先,双击navicat的安装包,开始安装,旁边的就是激活工具,待会…

Python pickle

Python picklepickle在python中 实现对象结构的 序列化和反序列化 python序列化(Pickling)是一个将python对象层次结构转换为 可以本地储存 或者 网络传输的 字节流的过程 python反序列化(unpickling) 是将字节流还原为对象层次结构数据序列化:就是把不能直接储存的数据 储存…

ELK04 ELK综合案例, logstash写入mysql, kibana访问验证 ubuntu使用

6 ELK 综合实战案例6.1 Filebeat 收集Nginx日志利用 Redis 缓存发送至 Elasticsearch 图上ip地址仅供参考 6.1.2.2 修改 Filebeat 配置#安装redis(访问0.0.0.0和密码123456),nginx(访问日志json格式)[root@ubuntu ~]#vim /etc/filebeat/filebeat.yml filebeat.inputs: - type…

第01章_数据库概述

第01章_数据库概述 1. 为什么要使用数据库持久化(persistence):把数据保存到可掉电式存储设备中以供之后使用。大多数情况下,特别是企业级应用,数据持久化意味着将内存中的数据保存到硬盘上加以”固化”,而持久化的实现过程大多通过各种关系数据库来完成。 持久化的主要作用…

Cyclic GCDs - 神圣的数学题

Cyclic GCDs 题面 【题目描述】 给定一个长为 \(N\) 的序列 \(a_1,a_2,\dots,a_N\)。 设一个置换 \(p\) 的价值 \(f(p)\) 为每个轮换中最小的 \(a_i\) 的乘积。 设 \(b_i\) 为有 \(i\) 个轮换的所有置换 \(p\) 的 \(f(p)\) 之和。 求 \(\gcd(b_1,b_2,\dots,b_N) \bmod{99824435…

『模拟赛』多校A层冲刺NOIP2024模拟赛10

『模拟赛记录』多校A层冲刺NOIP2024模拟赛10Rank 原来不止我一个人在赤石 Upd:T2 数据多次更改,Rank 变化 4→2→4A. 岛屿 唐氏题。 赛时找规律+分讨+递推出了正解,时间不够没测直接交了,然后 long double 用了 %lf 直接寄掉。赛时思路很复杂啊,讨论了一大堆,发现其实合并…

单射,满射和双射区分

单射: 定义:函数F称为一对一的,当且仅当对于F定义域中的所有x和y,f(x)=f(y)蕴含着x=y。一对一函数也称单射函数或入射函数1.x一定都要连接,不连接则不是函数 2.y只能有一个连接,可以为空但是不能有多个 错误情况:满射 定义:给定函数F:x→y,当且仅当对∀y∈Y,都有x∈X…