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做反向代理时,因被代理服务器因业务确实复杂,需时较久,往 ...
随机推荐
- 建立Maven工程时出错,Failure to transfer
建立Maven工程时出错,Failure to transfer com.thoughtworks.xstream:xstream:jar:1.3.1 Failure to transfer com. ...
- Neither BindingResult nor plain target object for bean name 'command' available as request attribute
最近用JSR303在表单提交时使用Java Bean Validation验证数据.报错堆栈如下: java.lang.IllegalStateException: Neither BindingRe ...
- .NET中的简单的并行
https://www.cnblogs.com/hdwgxz/p/6129419.html https://www.cnblogs.com/hueychan/p/10575907.html
- 【机器学习】ICA 原理以及相关概率论,信息论知识简介
看完了sparse coding,开始看ICA模型,本来ng的教程上面就只有一个简短的介绍,怎奈自己有强迫症,爱钻牛角尖,于是乎就搜索了一些ICA的介绍文章(都是从百度文库中搜来的),看完之后感觉这个 ...
- mongodb base
数据库,集合(表),文档(行) 嵌入式关系 引用式关系
- RFID/13.56MHZ/NFC线圈防干扰原理-附磁导材料防干扰原理 20191128
RFID/13.56MHZ/NFC之间采用电磁感应方式进行通信. 1.铁氧体.硅钢片等导磁材料的相对磁导率比较高,多年前在变压器中已经有广泛的应用.有防止磁通饱和,提高变压器感应效率的作用. 2.RF ...
- IDEA里的git的使用
1.将代码交由git管理 VCS ——> Enable Version Control Integration... 选择要使用的版本控制系统,选择Git ——> OK 2.将代码 ...
- [转帖]CentOS7安装xrdp(windows远程桌面连接linux)
CentOS7安装xrdp(windows远程桌面连接linux) https://blog.csdn.net/sgrrmswtvt/article/details/81869208 You Konw ...
- [SDOI2013]直径 题解
题面 这道题明显的一定要找到直径的具体路径,所以两遍dfs是比较好的选择: 第一问是一道弱智题吧? 主要难度全部分摊在了第二问: 其实不难,先找到任意一个直径: 对于任意一个在直径上的点: 设nxt[ ...
- python私有化xx、_xx、__xx、__xx__、xx_的区别
xx:共有变量. _xx:私有化的属性或方法,from xxx import * 时无法导入,子类的对象和子类可以访问. __xx:避免与子类中的属性命名冲突,无法在外部直接访问(名字重整所以访问不到 ...