项目部署

WEB工作原理

  • 客户端(chrom) <=> WEB服务器(nginx) <=> WSGI(uWSGI) <=> Python(Flask) <=> 数据库(MySQL)
  • Flask框架自带一个测试服务器,开发时直接运行即可;但是在生成环境中,必须进行完整部署。

nginx服务器

  • 安装:sudo apt-get install nginx

  • 添加虚拟主机:

    • /etc/nginx/sites-available目录下创建虚拟主机配置文件www.blog.com
    server {
    listen 80;
    server_name www.blog.com blog.com; location / {
    root /var/www/blog;
    index idnex.html;
    }
    }
    • 创建软链接
    sudo ln -s /etc/nginx/sites-available/www.blog.com /etc/nginx/sites-enabled
    • 重启nginx服务(若重启失败,可以关闭然后再打开)
    • 创建目录:/var/www/blog,然后在目录下创建index.html文件
    • 添加本地域名解析,修改配置文件/etc/hosts,在末尾添加如下内容:
    127.0.0.1    www.blog.com
    127.0.0.1 blog.com

移植博客项目

  • 将书写好的项目拷贝到/var/www/blog

uWSGI

  • 说明:是一个实现了WSGI协议的应用程序。

  • 安装:pip3 install uwsgi

  • 配置:

    http:            # 以HTTP协议启动
    socket: # 以socket方式启动
    chdir: # uwsgi启动项目的根目录
    wsgi-file: # 数据交给哪个模块处理
    callable: # 具体可调用的对象
    daemonize: # 后台运行(指定一个日志文件即可)
    processes: # 指定进程数
    threads: # 指定线程数
  • 启动演示(以HTTP协议启动)

    uwsgi --http 127.0.0.1:5000 --wsgi-file blog.py --callable app
  • 以socket形式启动

    • nginx转发请求
    server {
    listen 80;
    server_name www.blog.com blog.com; location / {
    #root /var/www/blog;
    #index idnex.html;
    # 包含请求参数
    include uwsgi_params;
    # 以socket形式转发请求数据
    uwsgi_pass 127.0.0.1:5000;
    }
    }

    提醒:一定不要忘记重启nginx。

    • 启动uwsgi
    uwsgi --socket 127.0.0.1:5000 --wsgi-file blog.py --callable app
    • 将启动参数写入配置文件uwsgi.ini
    [uwsgi]
    socket = 127.0.0.1:5000
    wsgi-file = blog.py
    callable = appp
    # 后台运行
    daemonize = /var/log/uwsgi.log

    启动:uwsgi uwsgi.ini

静态资源处理

  • 说明:静态资源nginx可以自行处理,没有必要转发到python中。因此需要添加路由转发规则。

  • 静态资源路由规则:

    location /static {
    root /var/www/blog;
    # 等价于
    alias /var/www/blog/static;
    }
  • 测试准备:在blog目录下创建static目录,并拷贝一张图片

  • 在浏览器地址栏输入:www.blog.com/static/gyy.jpg

Flask—10-项目部署(02)的更多相关文章

  1. nginx+uwsgi+flask+supervisor 项目部署

    环境 - Linux: Ubuntu 16.04 - uWSGI 2.0.18 - Flask 1.0.2 - supervisor 3.2.0 - nginx/1.8.1 首先区分几个概念 WSGI ...

  2. flask项目部署到阿里云 ubuntu16.04

    title: flask项目部署到阿里云 ubuntu16.04 date: 2018.3.6 项目地址: 我的博客 部署思路参考: Flask Web开发>的个人部署版本,包含学习笔记. 开始 ...

  3. 明火烟雾目标检测项目部署(YoloV5+Flask)

    明火烟雾目标检测项目部署 目录 明火烟雾目标检测项目部署 1. 拉取Docker PyToch镜像 2. 配置项目环境 2.1 更换软件源 2.2 下载vim 2.3 解决vim中文乱码问题 3. 运 ...

  4. Web项目部署(Flask Angular2 Nginx)

    独立弄了一个项目,也是锻炼自己的工程能力,使用了比较常用的框架,后端Flask,前端Angular2,采用前后端完全分离的方式,通过接口传输json,但是在具体部署过程中,查找资料较为零散,故整理如下 ...

  5. flask项目部署到云服务器+域名绑定

    一.效果演示 首页展示 播放页面 该项目部署只为学习,所以用的服务器是腾讯云服务器10元/月,域名也是在腾讯云买的.com 55元/年  因为本人比较穷 哈哈

  6. Eclipse学习总结(02)-动态项目部署到到本地Tomcat

    一.发现问题 在eclipse中新建Dynamic Web Project,配置好本地的tomcat并写好代码后选择Run on Server,但运行后发现在tomcat的安装目录下的webapps并 ...

  7. Linux(三)—— 项目部署环境搭建

    目录 项目部署环境搭建 一.linux上网 二.rpm包管理 1.光盘挂载 2.安装卸载rpm包 3.查询是否安装 4.查看软件包 5.互相依赖关系的软件包 三.yum包管理 1.使用aliyun的y ...

  8. Linux操作系统与项目部署

    Linux操作系统与项目部署 注意:本版块会涉及到操作系统相关知识. 现在,几乎所有智能设备都有一个自己的操作系统,比如我们的家用个人电脑,基本都是预装Windows操作系统,我们的手机也有Andro ...

  9. 详细的图文教程来实现 eclipse环境下如何配置tomcat,并且把项目部署到Tomcat服务器上

    很多初学,尤其自学JavaWeb的朋友首次在eclipse下配置tomcat时,总会有种难下手的感觉,在此,通过图文解说的方法,最直观的向大家演示一遍该配置过程. 第一部分:eclipse环境下如何配 ...

随机推荐

  1. 02_zookeeper配置

    [zoo.cfg] * tickTime:用于计算的时间单元.比如session超时:N*tickTime * initLimit:用于集群,允许从节点连接并且同步到master节点的初始化连接时间, ...

  2. SpringBoot框架下基于Junit的单元测试

    前言 Junit是一个Java语言的单元测试框架,被开发者用于实施对应用程序的单元测试,加快程序编制速度,同时提高编码的质量.是一个在发展,现在已经到junit5,在javaEE开发中与很多框架相集成 ...

  3. 微信小程序开发3-小程序的代码组成

    1.​小程序由配置代码JSON文件.模板代码 WXML 文件.样式代码 WXSS文件以及逻辑代码 JavaScript文件组成 2.JSON: (JavaScript Object Notation) ...

  4. JavaScript中的原型和原型链

    1.原型是什么?原型链是什么? 原型是一个prototype对象,用于表示类型之间的关系: 原型链指的是在JavaScript中对象之间的继承是通过prototype对象指向父类对象,直到指向Obje ...

  5. named 快速部署及主机记录普及

    实验环境centos7.2,仅供参考 yum -y install epel-release    --安装最新yum配置源 cd /etc/yum.repos.d/ # wget http://re ...

  6. ARC以及MRC中setter方法的差异

    ARC以及MRC中setter方法的差异 有时候,你会需要重写setter或者getter方法,你知道么,ARC与MRC的setter方法是有着差异的呢. 先看下MRC下的setter方法: 在看下A ...

  7. tree 向上查找(更新删除后页面的数据)

    需求 : 根据选择的id,需要找到一整条tree,id以及id数据的子集都已被删除(向下查找-----上一篇笔记),此时需要更新页面的数据(向上查找) //知道最底层的节点的id,查找满足id的整个t ...

  8. (名词 形容词 动词 副词)重读&(冠词 介词 连词 代词 辅助词(Be))弱读

    二,一些发音规则 除了上面的练习之外,这里还有几个注意点需要我们有足够的认识,那就是英语有重读.弱读.连读.爆破.语感(节奏和断句)等(其实当你跟读并背诵新概念之后,这一切都是神马,你不知觉地也会发现 ...

  9. 初窥IM通信协议

    即时通讯(Instant Messenger,简称IM)软件多是基于TCP/IP和UDP进行通讯的,TCP/IP和UDP都是建立在更低层的IP协议上的两种通讯传输协议. 前者是以数据流的形式,将传输数 ...

  10. MVVM的本质:视图逻辑处理、视图管理、视数中间层

    MVVM的核心是将原来Controller中的视图逻辑.视图管理.视数中间层的功能剥离出来,形成单独的模块: 大部分功能与视图相关.少部分与数据相关: 视图逻辑和业务逻辑不通: 解决的问题:UIVie ...