python 部署 flask---搭建 flask+gunicorn+nginx后台服务

前言

解决flask部署服务后台不稳定,容易down的问题。在Linux 平台下直接nohub启动flask服务虽然可以在后台运行,但极其不稳定,容易挂掉。如何保持后台的服务进程稳定运行是一件非常重要的事情。而本文的一个解决方法是flask+gunicorn+nginx。flask和gunicorn都是python下的轻量级的web开发服务。flask实现了web路由方法,gunicorn负责启动监听flask服务,而nginx是做一个反向代理。若您有更好的解决方案望告知!!!

Webpaltform WSGI Nginx Web_client 4.后台返回 3.到达后台 5.返回给Nginx 2.分发 6.客户端接收 1 .请求 Webpaltform WSGI Nginx Web_client

1.部署平台

1.1. 系统:Centos 7.7
1.2. 开发语言:python3.6
1.3. 相关工具:falsk, gunicorn, nginx

2.各功能简介

2.1 flask 介绍

  • 简介

flask是一个基于python 的Web 微框架
Python的著名Web框架有Django、Pyramid、Tornado、webpy、Zope等

Flask由两个主要依赖组成(提供路由、调试和Web服务器网关接口的Werkzeug和提供模板的Jinja2)

  • 安装
  • pip install flask

  • 例子

创建文件demo.py, 代码如下
from flask import Flask
app = Flask(__name__)
 
@app.route('/')
def test():
    return 'Falsk demo!'
 
if __name__ == '__main__':
    app.run(host="0.0.0.0", port=8080, debug=True)

python 部署 flask---搭建 flask+gunicorn+nginx后台服务_第1张图片

2.2 gunicorn介绍

  • 简介

gunicorn 是一个WSGI容器

Web框架致力于如何生成HTML代码,而Web服务器用于处理和响应HTTP请求。Web框架和Web服务器之间的通信,需要一套双方都遵守的接口协议。WSGI协议就是用来统一这两者的接口的。

  • 安装

pip install gunicorn
  • 例子

$ gunicorn --worker=3 demo:app -b 0.0.0.0:8080

在centos 下使用 nohub命令执行
nohup是一个 Linux 命令,和 & 一起使用,根目录生成一个 nohup.out文件记录所有的 log 信息

$ nohup gunicorn --worker=3 demo:app -b 0.0.0.0:8080&

python 部署 flask---搭建 flask+gunicorn+nginx后台服务_第2张图片

2.3 nginx 介绍

  • 简介

Nginx是一款轻量级的Web服务器、反向代理服务器,由于它的内存占用少,启动极快,高并发能力强

  • 安装

安装有两种方式直接安装或者源码编译安装

#省略部分过程,如添加nginx 源
$ sudo yum install epel-release
$ sudo yum install nginx
  • 例子

#启动 ,ngnix 目录下(也有别的启动方法)
$ ./niginx

在这里插入图片描述

如果要实现对gunicorn 的反向代理需要设置 nginx.conf

python 部署 flask---搭建 flask+gunicorn+nginx后台服务_第3张图片

Ven 环境安装参考

https://blog.csdn.net/wengzilai/article/details/78722626

如有不足请批评指正!!!

参考文献

[1] https://www.jianshu.com/p/52d8e3deaa16
[2] https://segmentfault.com/a/1190000018109309
[3] https://www.zhihu.com/question/21888077

你可能感兴趣的:(后台服务,后台服务,flask,nginx,部署,WEB)