nginx的反向代理的优势,特点于原理(一)
说到反向代理,首先先说一下反向代理的概念
反向代理(Reverse Proxy)方式是指以代理服务器来接受客户端的连接请求,然后将请求转发给网络上的web服务器(可能是apache,nginx,tomcat,iis等)并将web服务器上得到的结果返回给请求连接的客户端,此时代理服务器对外就表现为一个服务器。
nginx是一款轻量级的网页服务器/反向代理以及电子邮件代理服务器。因它的稳定性,和丰富的功能集,示例配置文件和低系统资源的消耗而文明。
nginx的核心特点
①跨平台:nginx可以在大多数OS编译运行,而且也有windows的版本
②部署:配置简单,容易上手
③非阻塞。高并发连接:官方测试能够支撑5万并发连接,在实际生产环境能跑到2到3万并发连接数。(这屈居于nginx使用的最新epoll模型);非阻塞调用指在不能立刻得到结果之前,该调用不阻塞当前线程。(就比如自己的妈妈在做饭,在饭做好的期间,你可以干任何事情,而不用干等着饭菜做好)
④事件驱动:nginx通信采用epoll模型,支持更大的并发连接。非阻塞通过不断检查时间的状态来判断是否进行读写操作,这样带来的开销很大,因此就有了异步非阻塞的事件处理机制。这种机制让你可以同时监控多个事件,调用他们是非阻塞的,但是可以设置超时时间,在超时时间之内,如果有事件准备好了,就返回。这种机制解决了上面阻塞调用与非阻塞调用的两个问题
以epoll模型为例:当事件没有准备号时,就放入epoll队列里面,如果有事件准备好了,那么就去处理;当事件没有准备好时,在epoll队列里等待。这样就实现了nginx处理大量并发的能力,这里并发请求是指未处理完的请求。线程只有一个,所以同时能处理请求的当然也只有一个,只是在请求之间进行不断地切换而已,切换也是因为异步事件未准备好,而主动让出的,可以理解为循环处理准备好的事件。所以通过异步非阻塞的事件处理机制,nginx实现由进程循环处理多个准备好的事件,从而实现高并发和轻量级。
⑤Master/Worker结构:一个master进程,生成一个或多个worker进程。worker的进程的主要时监控作用,worker进程是真正处理请求的进程,进程之间不会互相影响,一个进程退出后,其他进程还在工作,服务不会中断,master进程则会很快重新启动新的worker进程。
⑥内存消耗小:处理大并发的请求内存消耗非常小。在3万并发连接下,开启的10个nginx程序才消耗150M内存(15M * 10)
⑦内置健康检查功能:如果nginx代理的后端的某台web服务器宕机了,不会影响前端访问。
⑧节省宽带:支持GZIP压缩,可以添加浏览器本地缓存的HEADER头。
⑨稳定性高:用于反向代理,宕机的概率微乎其微。
nginx反向代理服务器---拓补图

nginx的反向代理的优势,特点于原理(一)的更多相关文章
- nginx 实现反向代理、负载均衡、高可用
转自:https://blog.csdn.net/zy1471162851/article/details/91795712 tip: nginx是一款高性能的http 服务器/反向代理服务器及电 ...
- Windos环境用Nginx配置反向代理和负载均衡
Windos环境用Nginx配置反向代理和负载均衡 引言:在前后端分离架构下,难免会遇到跨域问题.目前的解决方案大致有JSONP,反向代理,CORS这三种方式.JSONP兼容性良好,最大的缺点是只支持 ...
- 在ubuntu上面配置nginx实现反向代理和负载均衡
上一篇文章(http://www.cnblogs.com/chenxizhang/p/4684260.html),我做了一个实验,就是利用Visual Studio,基于Nancy框架,开发了一个自托 ...
- nginx的反向代理和负载均衡的一个总结
之前一直觉的nginx的反向代理和负载均衡很厉害的样子,最近有机会接触了一下公司的这方面的技术,发现技术就是一张窗户纸呀,捅破了啥都明白了! 接下来先看一下nginx的反向代理: 简单的来说就是ngi ...
- nginx做反向代理并防盗链
nginx做反向代理真的非常简单,只需设置location+proxy_pass即可. 防盗链配置有些复杂,需要注意的地方: 在防盗链的location中需要再设置一下proxy_pass(在这里走了 ...
- nginx设置反向代理后,页面上的js css文件无法加载
问题现象: nginx配置反向代理后,网页可以正常访问,但是页面上的js css文件无法加载,页面样式乱了. (1)nginx配置如下: (2)域名访问:js css文件无法加载: (3)IP访问:j ...
- 用nginx做反向代理来访问防外链图片
用nginx做反向代理来访问防外链图片 女儿的博客从新浪搬到wordpress后,发现原来博客上链接的新浪相册的图片都不能访问了,一年的博客内容,一个个去重新上传图片,修正链接也是个大工程.还是得先想 ...
- Nginx 笔记与总结(15)nginx 实现反向代理 ( nginx + apache 动静分离)
在 nginx 中,proxy 用来实现反向代理,upstream 用来实现负载均衡. 例如有两台服务器,nginx 服务器作为代理服务器,执行 .html 文件,apache 服务器上执行 .php ...
- 【Nginx】使用Nginx做反向代理时,关于被代理服务器相应的超时设置
> 参考的优秀文章 Module ngx_http_proxy_module > 设置等待被代理服务器的最大响应时间 使用Nginx做反向代理时,因被代理服务器因业务确实复杂,需时较久,往 ...
随机推荐
- R语言常用包简介
- 数位dp作业
dp东西实在太多,昨天开了个树形dp入门,还没入呢,今天就要写数位dp,也不知道这种学习状态对不对啊? A - 不要62 题意: 输入n到m内,符合条件的数的个数.条件:不含62和4. 这里直接学习q ...
- appium的第一个实例
# !/usr/bin/env python # -*- coding:utf-8 -*- from appium import webdriver import time import unitte ...
- vue中父组件调用子组件的方法
原文地址 文章目录 什么是组件? 使用组件 组件 什么是组件? 组件 (Component) 是 Vue.js 最强大的功能之一.组件可以扩展 HTML 元素,封装可重用的代码.在较高层面上,组件是自 ...
- python3 速查参考- python基础 8 -> 面向对象基础:类的创建与基础使用,类属性,property、类方法、静态方法、常用知识点概念(封装、继承等等见下一章)
基础概念 1.速查笔记: #-- 最普通的类 class C1(C2, C3): spam = 42 # 数据属性 def __init__(self, name): # 函数属性:构造函数 self ...
- 企业证书发布app到七牛云服务
---恢复内容开始--- 最近在做企业证书发布app,从申请企业证书,到测试程序发布到七牛云存储.整了几天终于实现了,整理一下资料. 1.首先,申请企业证书. 到苹果开发网站申请企业证书 https: ...
- HTML5 a标签的down属性进行图片下载
a标签中的down属性时HTML5新增的属性,此属性指示浏览器下载URL而不是导航到URL,因此将提示用户将其保存为本地文件.目前该属性的兼容性如下: 具体代码实现: /* 主要原理:利用a标签的do ...
- C语言I—2019秋作业第一周作业
1.你对软件工程专业或者计算机科学与技术专业了解是怎样? 软件工程专业是一门研究用工程化方法构建和维护有效的.实用的和高质量的软件的学科.它涉及到程序设计语言,数据库,软件开发工具,系统平台,标准,设 ...
- GIP画图
世界坐标:相对于winform窗体来说的, 页面坐标:相对于控件的 设置坐标:相对于显示器 获得Graphics对象一般有两种方式: 1.控件.CreateGraphics();//通过该方式创建后要 ...
- Jenkins+SVN持续环境搭建
需要三台不同环境的服务器,SVN.Jenkins.Tomcat 1.SVN搭建 1.Subversion服务器(SVN服务器) 2.项目对应的版本库 3.版本库中钩子程序(用于触发构建命令) 在我以前 ...