Flask部署知识(Nginx+uWSGI+HTTPS)

名词解析

WSGI

封装了处理HTTP响应、TCP连接等操作的接口。用户不需要自己实现接受HTTP请求、解析HTTP请求、发送HTTP响应等操作,不需要专注于HTTP规范等,可以专心编写Web业务。

werkzeug

flask自带WSGI工具包,可以搭建WSGI服务。但只用于开发,实际生产需要用更专业高效的Web服务器。

uWSGI

Web服务器。它实现了WSGI协议、uwsgi、http等协议,是一个全站式的托管服务,支持多种编程语言。

Nginx

高效的Web服务器和反向代理服务器,可以用于负载均衡。也支持uWSGI的uwsgi协议,所以可以将Nginx与uWSGI结合起来。

  • 相较于Apache,Nginx支持高并发,部署简单,内存消耗少。但是Apache发展更久,模块更丰富,社区更大。

Nginx 以其高性能、稳定性、丰富的功能、简单的配置、低资源消耗而闻名。

Nginx 是一个可以为你的 Web 应用处理 HTTP 请求的服务器。对于典型的 Web 应用,Nginx 可以配置为 HTTP 请求进行以下操作:

  • 将请求 反向代理 至上游服务器(例如 Gunicorn、uWsgi、Apache 等)。
  • 为静态资源(Javascript 文件、CSS 文件、图像、文档、静态 HTML 文件)提供服务。
uWSGI与nginx的区别

uWSGI与Nginx同是Web服务器,但是Nginx对于处理静态文件更有优势、性能更好。表现在Nginx能进行负载均衡、HTTP缓存、高效处理高并发请求等等。所以把这两者结合起来使用,能够使服务器更稳定、高效。

在我们的模型中:

  • nginx是对外的服务器,外部浏览器通过url访问nginx,uwsgi是对内的服务器,主要用来处理动态请求。

  • nginx接收到浏览器发送过来的http请求,将包进行解析,分析url,

    a.如果是静态文件请求就直接访问用户给nginx配置的静态文件目录,直接返回用户请求的静态文件,

    b.如果不是静态文件,而是一个动态的请求,那么nginx就将请求转发给uWSGI。

    所以抽象出来

     用户 →  nginx   →   uWSGI
    

image

图片取自https://www.jianshu.com/p/

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值