浅谈uWSGI和Nginx

内网穿透、nginx(负载均衡、动静分离)、正向代理和反向代理、nginx配置、为什么有了 uwsgi 还要 nginx 服务器、uwsgi的配置、wsgi,cgi,fastcgi 反向代理做请求转发。用户发送了一个 http 请求, nginx 代理服务器接收请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给 internet 上请求连接的客户端。负载均衡负载均衡:多在高并发情况下需要使用。其原理就是将数据流量分摊到多个服务器执行,减轻每台服务器的压力,多台服务器(集群) 共同完成工作任务,从而提高了数据的吞吐量。动静分离Nginx 提供的动静分离是指把动态请求和静态请求分离开,合适的服务器处理相应的请求,使整个服务器系统的性能、效率更高。 阅读详情

前一篇说到了部署Django+uWIGS+Nginx环境,为什么要部署uWSGI和Nginx,以及uWSGI和Nginx是什么进行一番学习,在这里总结一下。

1.WIGS(Web Server Gateway Interface)服务器网关接口

是Python应用程序或框架和Web服务器之间的一种接口,已经被广泛接受, 它已基本达成它的可移植性方面的目标。
WSGI 没有官方的实现, 因为WSGI更像一个协议. 只要遵照这些协议,WSGI应用(Application)都可以在任何服务器(Server)上运行, 反之亦然。
WSGI标准在 PEP 333 中定义并被许多框架实现,其中包括现广泛使用的django框架。

所以说WIGS是一种标准

2.uWIGS

可以看作是一个应用程序,帮助我们实现WSGI协议,Http协议,这样我们可以不再关注网络通信的底层实现,将精力更多放在处理HTTP请求数据,返回HTML。利用uWIGS可以是我们的web应用得到更强的并发能力,uWIGS也可以返回静态文件(css,js,img…),但是很笨拙,一般静态文件都交由Nginx进行传输,所以配置中一般不配置static-map,如果直接由uWIGS接受HTTP请求则需要设置http:xxxx,如果只需要与反向代理服务器进行交互则只需要接受socket,uWIGS与Nginx交互相当于两个进程间交互,一般使用的是.sock文件或者指定端口接受socket。指定端口时再使用浏览器访问相应端口,uWIGS会提示skip,跳过该HTTP请求。

3.代理服务器(Proxy Server)

是一种特殊的网络服务,允许一个网络终端(一般为客户端)通过这个服务与另一个网络终端(一般为服务器)进行非直接的连接。一些网关、路由器等网络设备具备网络代理功能。一般认为代理服务有利于保障网络终端的隐私或安全,防止攻击。
这个就是正向的代理服务器,它是代理网络用户去访问获得网络信息,主要起到的是安全作用,因为有隐藏真实ip,突破访问限制的功能。其中最常见的就是VPN了。
代理服务器的工作模式

4.反向代理服务器(Reverse Proxy)

反向代理,故名思意就是将代理服务器做出逆转,它主要的功能是代理服务器接收客户端发来的Http请求,转发到内部网络服务器,并返回Response给客户端。
反向代理的作用:

  1. 保证内网安全,可以使用反向代理服务器提供的WAF功能,阻止web攻击。
  2. 负载均衡,通过反向代理服务器来优化网站的负载
  3. 缓存静态资源,加快访问速度

    反向代理模式

负载平衡

5.Nginx(engine x)

Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少,并发能力强Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少,并发能力强。

它具有反向代理服务器的所有特点,并且配置简单,支持对大于1kb的文件进行压缩,静态文件缓存,可以大大提高访问效率。Nginx接受来自客户端的Http请求发送给uWSGI,uWSGI处理请求并将关键信息传递给web应用(django,flask等),应用返回Response经由uWSGI发送给Nginx,Nginx再发送给客户端。
这里写图片描述

为什么在使用Gunicorn或uWSGI时还需要Nginx? 通过在Nginx配置中指定上游服务器(即Gunicorn或uWSGI实例的地址和端口),Nginx可以智能地将请求分发到可用的服务器上。Gunicorn和uWSGI主要负责处理动态请求,如动态生成的网页内容,而对于静态文件(如CSS、JavaScript和图像文件)的服务,它们的性能相对较差。综上所述,尽管Gunicorn和uWSGI可以处理Python应用程序的动态请求,但仍然需要Nginx作为反向代理服务器来提供更好的静态文件服务、负载均衡和安全性。 阅读详情

相关推荐

Zabbix-01简单导入MIB文件并测试

这里写自定义目录标题安装 MIB文件启用MIB文件测试MIB文件 MIB文件 MIB代表管理信息库。 MIB文件允许您使用OID(对象标识符)的文本表示。 ##例如: ifHCOutOctets 是OID【1.3.6.1.2.1.31.1.1.1.10】的文本表示 安装 MIB文件 在基于Debian的系统上: # apt install snmp-mibs-downloader # download-mibs 在基于RedHat的系统上: # yum install net-snmp-libs 启用M

lokibaba的博客 9178

为什么有了uwsgi 还要 nginx 服务器

如果不是静态文件,而是一个动态的请求,那么nginx就将请求转发给uwsgi,uwsgi 接收到请求之后将包进行处理,处理成wsgi可以接受的格式,并发给wsgi,wsgi 根据请求调用应用程序的某个文件,某个文件的某个函数,最后处理完将返回值再次交给wsgi,wsgi将返回值进行打包,打包成uwsgi能够接收的格式,uwsgi接收wsgi 发送的请求,并转发给nginx,nginx最终将返回值返回给浏览器。相信每一个使用nginx+uwsgi+django部署过的人,都感到非常复杂。

weixin_63228408的博客 1219

UVC协议在STM32H7上的移植实战案例

手把手带你把UVC协议移植到STM32H7平台,重点解决USB高速枚举、视频流控制与YUV数据打包等关键问题。基于HAL库实现符合UVC 1.5规范的即插即用摄像头功能,让嵌入式设备轻松变身标准UVC视频源。

weixin_42437253的博客 397

为什么 flask + uWSGI + Nginx ?

在Python开发的web应用中,我们通常能够看到flask、uWSGI、Nginx出现在一起,他们之间的关系是什么?为什么总是被应用在一起?

weixin_43561610的博客 1691

ADS Layout设计实战:从参数设置到协同仿真

本文详细介绍了ADS Layout设计的完整实战流程,从新建工程、单位设置、个性化偏好配置等基础操作入手,逐步深入到基板参数配置、端口设置与电磁仿真器选择等核心环节。重点阐述了参数化版图设计与扫描优化、以及原理图与Layout协同仿真的高级技巧,并通过一个微带线低通滤波器设计案例,完整演示了从理论到实现的闭环设计方法,帮助工程师高效、准确地完成高频电路版图设计与验证。

weixin_29268637的博客 797

BES 平台 SDK之 美格信Dongle 连接

最近项目到了试产阶段,需要用到美格信的Dongel 来测试ANC 相关功能。在此简单介绍下如何连接Dongel 的操作步骤。

谢文浩博客 924

为什么有了uwsgi还要nginx这个“前端”服务器

相信每一个使用nginx+uwsgi+django部署过的人,都感到非常复杂。到底为什么一个项目的发布要经过这么多层级,他们每一层有什么理由存在?这就带大家宏观地看待一下 首先nginx 是对外的服务接口,外部浏览器通过url访问nginx。nginx 接收到浏览器发送过来的http请求,将包进行解析,分析url,如果是静态文件请求就直接访问用户给nginx配置的静态文件目录,直接返回用户请求的...

weixin_34066347的博客 7125

【模型之美】3、文本聚类与智能摘要,让AI帮你做个总结

在信息过载时代,文本聚类与摘要技术成为关键工具。本文提出了一种结合OpenAI Embedding与传统机器学习的方法,实现从文本预处理到智能分析的完整流程。技术方案分为三阶段:1)通过Embedding将文本转化为语义向量;2)采用K-Means等算法进行无监督聚类;3)利用大模型生成可解释的标签和摘要。实验证明,该方法能有效提升信息处理效率,如在新闻聚合系统中自动分类10,000篇文章,准确率较传统方法提高15%。方案包含实用代码示例,涵盖文本清洗、向量化、聚类优化等关键技术细节,可应用于对话记忆、舆情

2025博客之星Top81。专注AI工程化与架构实战。从分布式思维到模型部署,用工程化视角为你厘清AI落地的真实路径。 1438

Nginx+uWSGI+Flask+https配置

关于Nginx和uWSGI之间的关系,部署等等网上已经有很多抄来抄去的资料了,这里记录下小白第一次实践尝试的结果。按照自底而上的顺序写。 文章目录1 Nginx/uWSGI/Flask/SSL证书是什么1.1 Nginx1.2 uWSGI1.3 Flask1.4 SSL证书2 创建Flask程序3 uWGSI配置4 配置Nginx 1 Nginx/uWSGI/Flask/SSL证书是什么 1.1 ...

Joovo的博客 3753

零基础入门simulink仿真--通信领域的调制解调技术:基于Simulink的PM信号调制与解调仿真建模示例

PM的基本原理是将基带信号(如语音或音乐信号)加载到高频载波信号的相位上。通过改变载波的瞬时相位,可以实现信息的传输。PM的优点包括抗噪声能力强、频谱利用率较高等,但其解调过程相对复杂。通过Simulink,我们可以通过模块化的建模方式实现PM信号的调制和解调过程,并观察信号在信道中的传输效果。通过本指南,我们介绍了如何基于Simulink搭建一个完整的PM信号调制与解调仿真模型,并进行仿真和性能评估。背景介绍:理解PM信号调制与解调的基本原理及其应用。所需工具和环境:列出进行PM仿真所需的工具和环境。

amy_mhd的博客 604

16、保障Azure应用安全:密钥管理与身份认证

本文深入探讨了保障Azure应用安全的关键措施,包括使用网络安全工具(如Application Gateway和Azure Front Door)防范攻击,解决传统密钥和机密存储方式的安全隐患,以及通过Azure Key Vault实现敏感信息的安全管理。同时,介绍了使用托管标识实现Azure资源间安全访问的方法,并结合实际操作步骤展示了如何配置Key Vault、设置访问策略、存储机密以及授予Web应用对SQL Server的访问权限。最后,对不同安全措施进行了比较,并提出了在开发、测试及生产环境中的综合

rock5的博客 71

6. 谈一下你对 uWSGI 和 nginx 的理解

1.什么是 ‘Web服务器’ 和‘Web框架’? 在python web开发中,我们经常使用uwsgi配合nginx,来部署一个web框架,例如Django或flask。同时我们又会说,框架和web服务器之间要符合WSGI协议,才能相互配合工作。以下先理清几个概念: web服务器用来接收客户端请求,建立连接,转发响应的程序。至于转发什么样的响应,则交由web框架来处理,即处理具体的业务逻辑...

carl95271的博客 986

vue3 - 高德地图定位出错Get ipLocation failed.Geolocation permission denied.(info: “FAILED“ | status: 0)报错解决!

vue3,nuxt3,高德地图,定位,位置,报错,AMap.Geolocation,解决报当前定位失败,高德地图H5 定位失败报错,web网页网站,报错详细解决教程,Get ipLocation failed.Geolocation permission denied.,高德地图定位报错info: "FAILED",高德地图status: 0,已经是https了还是报错,确保了浏览器位置已经开了,手机定位也开了,没解决,H5页面在ios的浏览器上使用 高德地图 报当前定位失败Geolocation,移动端设

✅ 精选推荐文章 6771

浅谈django,uWSGI,WSGI,Nginx之间的关系

说一下从用户发送请求到用户获得响应结果的流程 浏览器发送http请求先到nginx,nginx接收到浏览器发送过来的http请求并进行解析,分析url,如果是静态文件请求就直接返回nginx配置的静态文件目录,直接返回用户请求的静态文件。 如果不是静态文件的请求而是一个动态请求,那么nginx就将请求转发给uwsgi,uwsgi接收到请求之后并进行解析处理,处理成wsgi可以接收的格式,并发给wsgi,wsgi根据请求调用相应的API,也就是我们用框架(django,flask)写的接口,调用完之后把处理的

weixin_47906106的博客 593

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Nginx浅谈

Nginx是一款高性能的http服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。由俄罗斯的程序设计师Igor用c语言所开发,官方测试Nginx能够支撑5万并发连接,并且CPU、内存等资源消耗却非常低,运行非常稳定。开源 一.Nginx的应用场景 1、http服务器。Nginx是一个http服务器可以独立提供http服务器。可以做网页静态服务器。 2、虚拟主机。可以实现在一台...

qq_45046446的博客 164

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

浅谈Nginx

一.Nginx是什么: 是一个高性能的http服务器(部署前端页面)/Apache,网络第七层–应用层 是一个代理服务器(统一出口) --> 必须实现负载均衡. 二.什么是负载均衡: 了解负载均衡首先要了解什么是反向代理和正向代理. 1.正向代理: 正向代理类似于一个跳板机,代理访问外部资源.vpn也是这个道理. 总结:正向代理是一个位于客户端和原始服务器之间的服务器,为了从原始...

tdxtc的博客 356

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

浅谈Nginx基础概念

浅谈Nginx基础概念1️⃣ Nginx简述2️⃣ Nginx功能介绍???? 1.Nginx基础特性???? 2.Nginx组织结构▶ 1.web请求处理机制▶ 2. Nginx组织模型▶ 3. Nginx进程间通信???? 3.Nginx模块说明???? 4.Nginx安装▶ 1. Centos版本 yum安装▶ 2. Ubuntu版本 apt安装▶ 3. 查看帮助▶ 4. Nginx编译安装▶ 5.Nginx目...

黑白一戒 410

日志分析与splunk浅谈

难易程度:★★★ 阅读点:linux;python;web安全;日志分析; 文章作者:xiaoye 文章来源:i春秋 关键字:网络渗透技术 前言 linux下的日志分析对企业来说非常重要,对我们分析pv或者入侵事件溯源都有很大的价值,今天来简单谈一谈日志分析方向的利器splunk,splunk应该是站在日志分析应用的顶端了,应用广泛功能强大,本文只能简单说说其安装以及应...

dfdhxb995397的博客 458

浅谈openresty

浅谈openresty 为什么会有OpenResty? 我们都知道Nginx有很多的特性和好处,但是在Nginx上开发成了一个难题,Nginx模块需要用C开发,而且必须符合一系列复杂的规则,最重要的用C开发模块必须要熟悉Nginx的源代码,使得开发者对其望而生畏。为了开发人员方便,所以接下来我们要介绍一种整合了Nginx和lua的框架,那就是OpenResty,它帮我们实现了可以用l...

Frankltf的博客 469

浅谈Nginx模块ngx_http_core_module( 二 )

浅谈Nginx模块ngx_http_core_module(二)???? 定义客户端请求的相关配置1️⃣ error_page 错误页4042️⃣ try_files 检查文件是否存在3️⃣ keepalive_timeout 设定长连接的超时时长4️⃣ keepalive_requests 长连接允许请求的资源的最大数量5️⃣ keepalive_disable 对哪种浏览器禁用长连接6️⃣ send...

黑白一戒 797

配置nginx服务器需要修改的配置文件为,01_Nginx安装,nginx下部署项目,nginx.conf配置文件修改,相关文件配置...

1、下载Nginx,进入Nginx下载地址:http://nginx.org/2 下载pcre,这个是一个正则表达式的库,Nginx做rewriter的时候回用到这个库:进入pcre的官网(rewrite模式需要pcre):http://www.pcre.org/选中右击复制所需要的版本:3 下载zlib库(gzip模块需要zlib):http://www.zlib.net/4.将下面安装文件...

weixin_39747577的博客 717

django_xadmin的安装

浅谈uWSGI和Nginx <div class="article-info-box"> <div class="article-bar-top d-flex"> <span class="time">2018年..

weixin_42470545的博客 327

Django知识总结

1 django中间件使用? 中间件是一个用来处理Django的请求和响应的框架级别的钩子。它是一个轻量、低级别的插件系统,用于在全局范围内改变Django的输入和输出。每个中间件组件都负责做一些特定的功能。 但是由于其影响的是全局,所以需要谨慎使用,使用不当会影响性能。 说的直白一点中间件是帮助我们在视图函数执行之前和执行之后都可以做一些额外的操作,它本质上就是一个自定义类,类中定义了几个方法,Django框架会在请求的特定的时间去执行这些方法。 中间件可以定义五个方法,分别是:(主要的是pr

huchaoshan的博客 159

浅谈web服务流程

一次浏览器请求,后端往往就需要给出响应,这也是http的一大特点有应必有答。最简单的,比如我们使用flask框架来开发,我们只需要启动flask,前端指定域名和端口就可以访问到我们的后端,可是只能在开发环境这样做,因为开发环境的性能难以满足生产环境的压力。因此我们需要部署一整套web服务。 一、web框架 以flask框架为例,它可用于我们的开发,为开发提供很大的便利,我们也可以称其为应用程...

weixin_43613053的博客 1061
上一篇: Django+uwigs+Nginx部署以及遇到的问题
下一篇: Python多进程multiprocessing
shu_8708
博客等级 码龄10年 45粉丝 40原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值