Nginx是一个轻量级的服务器,是一个俄罗斯的开发者开发的开源软件。Nginx具有占内存小、并发能力高的特点,底层采用epoll(Linux2.6+)和kqueue(FREEBSD)网络I/O模型,相比于采用select的Apache要高效很多,epoll/poll/select将会在未来的博客中详细描述。

正是由于Nginx的轻量高效的原因,它成为反向代理服务器的首选。本文将阐述我在认识反向代理的学习过程和总结。

-------------------------------------------------------正文------------------------------------------------------

一、代理服务器

在之前的了解中,一直对反向代理似懂非懂,后面查了一下代理的概念,突然就懂了。所以,在了解反向代理的原理前,先认识一下什么是代理,下面一段介绍摘自百度百科。

代理服务器英文全称是Proxy Server,其功能就是代理网络用户去取得网络信息。形象的说:它是网络信息的中转站。在一般情况下,我们使用网络浏览器直接去连接其他Internet站点取得网络信息时,须送出Request信号来得到回答,然后对方再把信息以bit方式传送回来。代理服务器是介于浏览器和Web服务器之间的一台服务器,有了它之后,浏览器不是直接到Web服务器去取回网页而是向代理服务器发出请求,Request信号会先送到代理服务器,由代理服务器来取回浏览器所需要的信息并传送给你的浏览器。

举个更具体点的例子,如果我们想访问google又被墙了,怎么办?有一种办法就是使用代理,比如我们购买了某个代理账号,会让我们设置自己的网络,具体的步骤如下:

我们需要设置一下VPN,之后当我们访问一个url,其实是先访问了代理服务器,代理服务器替我们取回网页上的内容,再转发给我们。这就是代理服务器做的内容。

二、反向代理服务器

在回顾一下代理服务器的工作流程:用户设置代理服务器,用户访问url,代理服务器代替用户访问并将网页内容返回。

那么,反向代理应该是一个逆向的过程。我们把真正的服务器称为内容服务器,那么应该是内容服务器设置一个代理服务器,当用户发起对内容服务器的请求时,其实是访问内容服务器设置的代理服务器。效果如下:

这个图跟正向代理的图其实是一样的,所以我开始的时候就很疑惑。但是所谓的“反向” 是设置代理的对象相反,在正向代理中,是用户设置代理服务器,而在反向代理中,是内容服务器来设置代理服务器。这才是反向的真正面目。

解决了这个疑惑,还有一个关键问题,我们用户设置代理情有可原,内容服务器为什么也要来设置代理呢?

三、反向代理的作用

1、防火墙

2、负载均衡

【Nginx】初试反向代理:反向代理的原理和用途的更多相关文章

  1. nginx之旅(第三篇):代理、正向代理、反向代理、代理的原理、nginx反向代理场景、nginx反向代理配置、nginx反向代理语法

    一.代理服务与反向代理 什么是代理服务 代理-代理办理(代理理财.代理收货.代理购物等等). 一般情况下,如果没有特别说明,代理技术默认说的是正向代理技术.关于正向代理的概念如下: 正向代理(forw ...

  2. Nginx详解(正向代理、反向代理、负载均衡原理)

    Nginx配置详解 nginx概述 nginx是一款自由的.开源的.高性能的HTTP服务器和反向代理服务器:同时也是一个IMAP.POP3.SMTP代理服务器:nginx可以作为一个HTTP服务器进行 ...

  3. nginx常用配置系列-反向代理

    接上篇,反向代理的原理与用途很多地方有讲,用文字说再多可能也表达不清楚,下面贴一张拓扑图,介绍下什么叫反向代理 以上图有两种情景 1. 访问者的客户端是 local ,要访问baidu的服务器,bai ...

  4. nginx入门与实战 安装 启动 配置nginx Nginx状态信息(status)配置 正向代理 反向代理 nginx语法之location详解

    nginx入门与实战 网站服务 想必我们大多数人都是通过访问网站而开始接触互联网的吧.我们平时访问的网站服务 就是 Web 网络服务,一般是指允许用户通过浏览器访问到互联网中各种资源的服务. Web ...

  5. Nginx学习笔记(反向代理&搭建集群)

    一.前言 1.1 大型互联网架构演变历程 1.1.1 淘宝技术 淘宝的核心技术(国内乃至国际的 Top,这还是2011年的数据) 拥有全国最大的分布式 Hadoop 集群(云梯,2000左右节点,24 ...

  6. nginx基于TCP的反向代理

    一.4层的负载均衡 Nginx Plus的商业授权版开始具有TCP负载均衡的功能.从Nginx 1.7.7版本开始加入的,现在变成了一个商业收费版本,想要试用,需要在官网申请.也就是说,Nginx除了 ...

  7. Nginx(五)、http反向代理的实现

    上一篇nginx的文章中,我们理解了整个http正向代理的运行流程原理,主要就是事件机制接入,header解析,body解析,然后遍历各种checker,以及详细讲解了其正向代理的具体实现过程.这已经 ...

  8. 通过Nginx+tomcat+redis实现反向代理 、负载均衡及session同步

    一直对于负载均衡比较陌生,今天尝试着去了解了一下,并做了一个小的实验,对于这个概念有一些认识,在此做一个简单的总结 什么是负载均衡 负载均衡,英文 名称为Load Balance,指由多台服务器以对称 ...

  9. nginx和tomcat实现反向代理、负载均衡和session共享

    这类的文章很多,nginx和tomcat实现反向代理.负载均衡实现很容易,可以参照http://blog.csdn.net/liuzhigang1237/article/details/8880752 ...

随机推荐

  1. Redis 键值数据类型及基本操作

    到目前为止,Redis 支持的键值数据类型如下: 字符串(String) 哈希(Map) 列表(list) 集合(sets) 有序集合(sorted sets)   1. String 字符串类型 s ...

  2. CodeForces 316D3 PE Lesson

    time limit per test 3 seconds memory limit per test 256 megabytes input standard input output standa ...

  3. BTA 常问的 Java基础40道常见面试题及详细答案(山东数漫江湖))

    八种基本数据类型的大小,以及他们的封装类 引用数据类型 Switch能否用string做参数 equals与==的区别 自动装箱,常量池 Object有哪些公用方法 Java的四种引用,强弱软虚,用到 ...

  4. nodewebkitV0.21.6版本的学习

    1.下载 https://nwjs.io/ 建议下载sdk版本,有调试功能,正式发布时,使用normal版本 下载以后解压,得到的文件目录如下 点击nw.exe,显示如下 2.hello world ...

  5. python基础===获取知乎标题时候,文件编码失败的总结

    总结一下,关于获取到的信息编码失败. 刚才在执行代码的时候,发现一个问题: 然后修改代码如下: '''爬取知乎界面的标题''' import requests import re import sys ...

  6. 集合类---Map

    Map常用的子类: 一.HashMap详解  1.特点 1)线程不安全.如果想要得到线程安全的HashMap,可以使用Collections的静态方法:Map map = Collections.sy ...

  7. [ 总结 ] Linux系统启动流程

    Linux系统启动过程分析: 按下电源 --> BIOS自检 --> 系统引导(lilo/grub) --> 启动内核 --> 初始化系统 --> 用户登录 1. BIO ...

  8. JavaScript中对象的属性类型

    JavaScript中,对象的属性有两种:数据属性和访问器属性. 数据属性 特性: 数据属性包括一个数据值的位置.在这个位置可以读取和写入值.数据属性有4个特性. [[configurable]]:可 ...

  9. Jmeter接口测试示例

    如果是Web,需要使用badboy进行录制,今天讲的是接口,因此可以不用录制. (1)新建测试计划 (2)添加http请求默认值 (3)添加http信息头管理器 (4)添加token的正则表达式:&q ...

  10. django使用用户名或手机号码登录

    django有自己的认证系统,会自动根据用户名和密码进行验证.如果需要使用用户名或手机登录的话,需要重写django的认证后台,并且设置到配置文件中. 重写django的认证后台 class User ...