说到反向代理,首先先说一下反向代理的概念

反向代理(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的反向代理的优势,特点于原理(一)的更多相关文章

  1. nginx 实现反向代理、负载均衡、高可用

    转自:https://blog.csdn.net/zy1471162851/article/details/91795712 tip:   nginx是一款高性能的http 服务器/反向代理服务器及电 ...

  2. Windos环境用Nginx配置反向代理和负载均衡

    Windos环境用Nginx配置反向代理和负载均衡 引言:在前后端分离架构下,难免会遇到跨域问题.目前的解决方案大致有JSONP,反向代理,CORS这三种方式.JSONP兼容性良好,最大的缺点是只支持 ...

  3. 在ubuntu上面配置nginx实现反向代理和负载均衡

    上一篇文章(http://www.cnblogs.com/chenxizhang/p/4684260.html),我做了一个实验,就是利用Visual Studio,基于Nancy框架,开发了一个自托 ...

  4. nginx的反向代理和负载均衡的一个总结

    之前一直觉的nginx的反向代理和负载均衡很厉害的样子,最近有机会接触了一下公司的这方面的技术,发现技术就是一张窗户纸呀,捅破了啥都明白了! 接下来先看一下nginx的反向代理: 简单的来说就是ngi ...

  5. nginx做反向代理并防盗链

    nginx做反向代理真的非常简单,只需设置location+proxy_pass即可. 防盗链配置有些复杂,需要注意的地方: 在防盗链的location中需要再设置一下proxy_pass(在这里走了 ...

  6. nginx设置反向代理后,页面上的js css文件无法加载

    问题现象: nginx配置反向代理后,网页可以正常访问,但是页面上的js css文件无法加载,页面样式乱了. (1)nginx配置如下: (2)域名访问:js css文件无法加载: (3)IP访问:j ...

  7. 用nginx做反向代理来访问防外链图片

    用nginx做反向代理来访问防外链图片 女儿的博客从新浪搬到wordpress后,发现原来博客上链接的新浪相册的图片都不能访问了,一年的博客内容,一个个去重新上传图片,修正链接也是个大工程.还是得先想 ...

  8. Nginx 笔记与总结(15)nginx 实现反向代理 ( nginx + apache 动静分离)

    在 nginx 中,proxy 用来实现反向代理,upstream 用来实现负载均衡. 例如有两台服务器,nginx 服务器作为代理服务器,执行 .html 文件,apache 服务器上执行 .php ...

  9. 【Nginx】使用Nginx做反向代理时,关于被代理服务器相应的超时设置

    > 参考的优秀文章 Module ngx_http_proxy_module > 设置等待被代理服务器的最大响应时间 使用Nginx做反向代理时,因被代理服务器因业务确实复杂,需时较久,往 ...

随机推荐

  1. COALESCE关键字的使用

    COALESCE是sql标准里面的一个关键字,我们可以和聚合函数sum,count,max等一起使用完成一些特殊的功能. 以下sql语句基于mysql 1.查询某一个列总和,如果没有数据或者NULL返 ...

  2. Expecting "jsp:param" standard action with "name" and "value" attributes

    浏览器访问报如下jsp标签错误: 根据提示,定位到jsp页面124行,代码如下: 查找原因,当<jsp:include></jsp:include>标签中没有参数时,不允许有空 ...

  3. three.js效果之热力图和轨迹线

    1.热力图 开始的时候,是用一个网上找的canvas画渐变热点的demo,原理就是给定顶点坐标,然后画圆,颜色使用渐变色,根据权重决定渐变的层数(红色->橙色->绿色) . 但是终究觉得这 ...

  4. 【AMAD】django-countries -- 为Django app的form提供country选项,为model提供CountryField

    动机 简介 个人评分 动机 有时候看一些数据库设计,国家数据会存在一个单独的表里面.这种方式读取数据库无疑又要加上一层join,很不划算. 简介 [django-countries]1解决的是: 不用 ...

  5. 【052-week 预习周】学习总结

    目录 学习手册 学习理念 学员精选 课前准备 概览 数据结构思维导图 算法思维导图 学习手册 学习理念 让优秀的人一起学习 师傅领进门,修行靠个人 学员精选 稻盛和夫"六项精进" ...

  6. Android MVC MVP MVVM (二)

    MVP模型 View主要是Activity,Fragment MVP和MVC的差别 1.Model和View不再直接通信,通过中间层Presenter来实现. 2.Activity的功能被简化,不再充 ...

  7. [Comet OJ - Contest #6 D][48D 2280]另一道树题_并查集

    另一道树题 题目大意: 数据范围: 题解: 这个题第一眼能发现的是,我们的答案分成两种情况. 第一种是在非根节点汇合,第二种是在根节点汇合. 尝试枚举在第几回合结束,假设在第$i$回合结束的方案数为$ ...

  8. 后缀数组 LCP--模板题

    题意: 给你S串和T串,用T串的所有前缀去匹配S串(匹配值是最长公共子串). 问你总值相加是多少. 思路: 先把两个S,T串倒过来,再拼接 S#T 合成一串,跑一下后缀数组 在排序好的rank里计算每 ...

  9. 前端 CSS 2

    无序列表去除自带的样式 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&qu ...

  10. Java面试知识点汇总

    Java面试知识点汇总 置顶 2019年05月07日 15:36:18 温柔的谢世杰 阅读数 21623 文章标签: 面经java 更多 分类专栏: java 面试 Java面试知识汇总   版权声明 ...