关于nginx 和 uwsgi

关于nginx和uWSGI和Django之间的关系,我觉得要理一下。

原文链接

为什么要用nginx

因为我们要使用https协议访问。(y总说django不支持,但是我查了一下,django也可以支持https,但是需要安装另外的库。确实不如nginx方便,而且nginx还能提供其他的功能。)
uWSGI是什么
uWSGI是一个Web服务器,它实现了WSGI协议、uwsgi、http等协议。Nginx中HttpUwsgiModule的作用是与uWSGI服务器进行交换。
WSGI协议是Python 语言定义的 Web 服务器和 Web 应用程序或框架之间的一种简单而通用的接口。
所以简单来说uWSGI就是用来沟通nginx和django的一座桥梁。

为什么要nginx+uwsgi+diango这样来部署

首先他们的工作流程是这样的:nginx 是对外的服务接口,外部浏览器通过url访问nginx。nginx 接收到浏览器发送过来的http请求,将包进行解析,分析url,如果是静态文件请求就直接访问用户给nginx配置的静态文件目录,直接返回用户请求的静态文件,如果不是静态文件,而是一个动态的请求,那么nginx就将请求转发给uwsgi,uwsgi 接收到请求之后将包进行处理,处理成wsgi可以接受的格式,并发给wsgi,wsgi 根据请求调用应用程序的某个文件,某个文件的某个函数,最后处理完将返回值再次交给wsgi,wsgi将返回值进行打包,打包成uwsgi能够接收的格式,uwsgi接收wsgi 发送的请求,并转发给nginx,nginx最终将返回值返回给浏览器。
但是要知道第一级的nginx并不是必须的,uwsgi完全可以完成整个的和浏览器交互的流程。

那么nginx到底可以干嘛

  • 安全:程序不能直接被浏览器访问到,而是通过nginx,nginx只开放某个接口,uwsgi本身是内网接口,这样运维人员在nginx上加上安全性的限制,可以达到保护程序的作用。
  • 负载均衡:一个uwsgi很可能不够用,即使开了多个work也是不行,毕竟一台机器的cpu和内存都是有限的,有了nginx做代理,一个nginx可以代理多台uwsgi完成uwsgi的负载均衡。
  • 静态文件处理高效:用django或是uwsgi这种东西来负责静态文件的处理是很浪费的行为,而且他们本身对文件的处理也不如nginx好,所以整个静态文件的处理都直接由nginx完成,静态文件的访问完全不去经过uwsgi以及其后面的东西。这就是这几者之间的关系。

Original: https://www.cnblogs.com/Holdpark/p/16421219.html
Author: 似是笼中雀
Title: 关于nginx 和 uwsgi

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/604863/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • [总结]模拟赛2022/1/19

    [总结]2022/1/19 P1心路历程 赛时 30min看完题目,一开始认为T1、T3、T4都是最小生成树。后来慢慢看题,发现都不是。 T1写了一个类似于Dij的算法。流程如下:…

    数据结构和算法 2023年6月8日
    079
  • 洛谷 P5136 题解

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    数据结构和算法 2023年6月12日
    068
  • 初识设计模式-建造者模式

    建造者设计模式(Builder Design Pattern)又叫作生成器模式,是一种对象构建模式,其核心在于将产品和产品建造过程解耦。 建设者模式允许用户只通过指定复杂对象的类型…

    数据结构和算法 2023年6月8日
    082
  • 动态规划三种基本背包问题模板

    1.01背包 有 N 件物品和一个容量是 V 的背包。每件物品只能使用一次。 第 i 件物品的体积是 vi,价值是 wi。 求解将哪些物品装入背包,可使这些物品的总体积不超过背包容…

    数据结构和算法 2023年6月7日
    057
  • CF 793 div2 E 题解

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    数据结构和算法 2023年6月12日
    0120
  • APIO2022 打金记

    主场作战,优势在我! -2900¥。 中午在学校吃过饭来酒店签到,喜获电脑包一个,卫衣一件,饭票若干。 被要求在大厅录视频并喊出 “APIO2022,我们来了&#822…

    数据结构和算法 2023年6月12日
    099
  • Html飞机大战(十一): 飞机撞毁爆炸

    好家伙,这篇写英雄撞机爆炸 我们先把子弹销毁弄上去 子弹穿过敌机,敌机爆炸后消失,子弹同样也应该销毁,(当然后续会考虑穿甲弹) 然后我们还要把主角碰撞爆炸检测也加上去 因为他们共用…

    数据结构和算法 2023年6月12日
    092
  • Git学习笔记

    一:git简介 git是目前世界上最先进的 分布式版本控制系统 版本控制系统:可以储存一个文件在不同时间的版本,记录 每次文件的改动,可以根据需要,随时 切换到之前的版本。 分布式…

    数据结构和算法 2023年6月12日
    0101
  • 星空

    大概是因为近视或者污染严重的缘故,我已经很少能看到星空了。更多时候抬起头,望见的只是无法穿透的黑夜。但星空就在那里,它不会因为我看不见它而消失。准确地说,星空一直在我们每个人的心里…

    数据结构和算法 2023年6月12日
    089
  • C++ STL 概述_严丝合缝的合作者们

    1. 初识 STL 什么是 STL? STL(Standard Template Library) 是 C++以模板形式提供的一套标准库…

    数据结构和算法 2023年6月7日
    097
  • idea在商店无法搜索到插件

    背景:我使用的版本是IDEA ultimate 2019.2 版本印象中,最初安装的时候,商店还是可以用的,突然有一天,就无法使用了。下边直入正题: 解决办法:1、首先浏览器登陆下…

    数据结构和算法 2023年6月8日
    074
  • xctf-streamgame1

    下载附件后,得到两个文件,一个key文件,一个streamgame1.py文件 key文件如下:(十六进制形式) 55 38 F7 42 C1 0D B2 C7 ED E0 24 …

    数据结构和算法 2023年6月7日
    0102
  • 爬取B站“冰冰vlog.001“评论&&做词云

    爬取”冰冰vlog.001″评论&&做词云 库准备(推荐清华镜像安装) 具体步骤 * 爬取评论 生成词云 python小白,纯属来玩的(狗头…

    数据结构和算法 2023年6月16日
    0137
  • 网络流做题记录

    (Solution:) 最大权闭合子图:给定一个有向图,点有点权,选择一个子图,满足子图上如果选择了一个点就必须选择它后继的所有点。最大化点权和。 不考虑租用机器时,(1.) (S…

    数据结构和算法 2023年6月12日
    055
  • 2022山东省队三轮集训

    博客园 :当前访问的博文已被密码保护 请输入阅读密码: Original: https://www.cnblogs.com/winterfrost/p/2022sdptt3.htm…

    数据结构和算法 2023年6月12日
    089
  • 搭建 Redis 的主从

    在master和slave分别执⾏info命令,查看输出信息 进入主客户端 redis-cli -h 192.168.26.128 -p 6379 Original: https:…

    数据结构和算法 2023年6月7日
    090
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球