Flask—10-项目部署(02)
项目部署
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)的更多相关文章
- 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 ...
- flask项目部署到阿里云 ubuntu16.04
title: flask项目部署到阿里云 ubuntu16.04 date: 2018.3.6 项目地址: 我的博客 部署思路参考: Flask Web开发>的个人部署版本,包含学习笔记. 开始 ...
- 明火烟雾目标检测项目部署(YoloV5+Flask)
明火烟雾目标检测项目部署 目录 明火烟雾目标检测项目部署 1. 拉取Docker PyToch镜像 2. 配置项目环境 2.1 更换软件源 2.2 下载vim 2.3 解决vim中文乱码问题 3. 运 ...
- Web项目部署(Flask Angular2 Nginx)
独立弄了一个项目,也是锻炼自己的工程能力,使用了比较常用的框架,后端Flask,前端Angular2,采用前后端完全分离的方式,通过接口传输json,但是在具体部署过程中,查找资料较为零散,故整理如下 ...
- flask项目部署到云服务器+域名绑定
一.效果演示 首页展示 播放页面 该项目部署只为学习,所以用的服务器是腾讯云服务器10元/月,域名也是在腾讯云买的.com 55元/年 因为本人比较穷 哈哈
- Eclipse学习总结(02)-动态项目部署到到本地Tomcat
一.发现问题 在eclipse中新建Dynamic Web Project,配置好本地的tomcat并写好代码后选择Run on Server,但运行后发现在tomcat的安装目录下的webapps并 ...
- Linux(三)—— 项目部署环境搭建
目录 项目部署环境搭建 一.linux上网 二.rpm包管理 1.光盘挂载 2.安装卸载rpm包 3.查询是否安装 4.查看软件包 5.互相依赖关系的软件包 三.yum包管理 1.使用aliyun的y ...
- Linux操作系统与项目部署
Linux操作系统与项目部署 注意:本版块会涉及到操作系统相关知识. 现在,几乎所有智能设备都有一个自己的操作系统,比如我们的家用个人电脑,基本都是预装Windows操作系统,我们的手机也有Andro ...
- 详细的图文教程来实现 eclipse环境下如何配置tomcat,并且把项目部署到Tomcat服务器上
很多初学,尤其自学JavaWeb的朋友首次在eclipse下配置tomcat时,总会有种难下手的感觉,在此,通过图文解说的方法,最直观的向大家演示一遍该配置过程. 第一部分:eclipse环境下如何配 ...
随机推荐
- JavaScript里面的居民们2-字符串
基于HTML,实现需求 按照HTML中按钮的描述以此实现功能 计算结果显示在 id 为 result 的 P 标签中 <!DOCTYPE html> <html> <he ...
- Strapi 安装易错位置
Strapi官网(https://strapi.io)介绍:最先进的开源内容管理框架,可以毫不费力地构建功能强大的API,建立在Node.js平台之上,为您的API提供高速惊人的表现. 简单点说,(对 ...
- 06_zookeeper原生Java API使用
[Zookeeper构造方法概述] /** * 客户端和zk服务端的连接是一个异步的过程 * 当连接成功后,客户端会收到一个watch通知 * * ZooKeeper(String connectSt ...
- mianxiangduixiang
package com.hanqi; public class mianxiang { public static void main(String[]args) { Cat c1 =new Cat( ...
- Android学习——Service(一)
这篇博文来介绍Android另一个十分重要的组件,Service.Service和Activity很类似,区别在于它运行在后台,不可见且没有界面.Service的优先级高于Activity,当系统负载 ...
- oracle大量数据删除
oracle有个数据表现在已经有2500万条数据了,软件用到这个表的数据时就变的特别慢,所以准备把一个月以前的数据全部清除. 我的步骤是(下边操作都是在plsql中运行的) 1.首先 将这个月的数据导 ...
- Linux ->> UBuntu 14.04 LTE下安装Hadoop 1.2.1(集群分布式模式)
安装步骤: 1) JDK -- Hadoop是用Java写的,不安装Java虚拟机怎么运行Hadoop的程序: 2)创建专门用于运行和执行hadoop任务(比如map和reduce任务)的linux用 ...
- SQL Server ->> 数据一致性检查命令 -- DBCC CHECKDB
Comming soon!!! 参考文献: CHECKDB From Every Angle: Complete description of all CHECKDB stages
- UnicodeDecodeError: 'utf8' codec can't decode byte in position invalid start byte
在scrapy项目中,由于编码问题,下载的网页中中文都是utf-8编码,在Pipeline.py中方法process_item将结果保存到数据库中时,提示UnicodeDecodeError: 'ut ...
- nginx 开启gzip压缩--字符串压缩比率很牛叉
刚刚给博客加了一个500px相册插件,lightbox引入了很多js文件和css文件,页面一下子看起来非常臃肿,所以还是把Gzip打开了. 环境:Debian 6 1.Vim打开Nginx配置文件 v ...