【Nginx】初试反向代理:反向代理的原理和用途
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】初试反向代理:反向代理的原理和用途的更多相关文章
- nginx之旅(第三篇):代理、正向代理、反向代理、代理的原理、nginx反向代理场景、nginx反向代理配置、nginx反向代理语法
一.代理服务与反向代理 什么是代理服务 代理-代理办理(代理理财.代理收货.代理购物等等). 一般情况下,如果没有特别说明,代理技术默认说的是正向代理技术.关于正向代理的概念如下: 正向代理(forw ...
- Nginx详解(正向代理、反向代理、负载均衡原理)
Nginx配置详解 nginx概述 nginx是一款自由的.开源的.高性能的HTTP服务器和反向代理服务器:同时也是一个IMAP.POP3.SMTP代理服务器:nginx可以作为一个HTTP服务器进行 ...
- nginx常用配置系列-反向代理
接上篇,反向代理的原理与用途很多地方有讲,用文字说再多可能也表达不清楚,下面贴一张拓扑图,介绍下什么叫反向代理 以上图有两种情景 1. 访问者的客户端是 local ,要访问baidu的服务器,bai ...
- nginx入门与实战 安装 启动 配置nginx Nginx状态信息(status)配置 正向代理 反向代理 nginx语法之location详解
nginx入门与实战 网站服务 想必我们大多数人都是通过访问网站而开始接触互联网的吧.我们平时访问的网站服务 就是 Web 网络服务,一般是指允许用户通过浏览器访问到互联网中各种资源的服务. Web ...
- Nginx学习笔记(反向代理&搭建集群)
一.前言 1.1 大型互联网架构演变历程 1.1.1 淘宝技术 淘宝的核心技术(国内乃至国际的 Top,这还是2011年的数据) 拥有全国最大的分布式 Hadoop 集群(云梯,2000左右节点,24 ...
- nginx基于TCP的反向代理
一.4层的负载均衡 Nginx Plus的商业授权版开始具有TCP负载均衡的功能.从Nginx 1.7.7版本开始加入的,现在变成了一个商业收费版本,想要试用,需要在官网申请.也就是说,Nginx除了 ...
- Nginx(五)、http反向代理的实现
上一篇nginx的文章中,我们理解了整个http正向代理的运行流程原理,主要就是事件机制接入,header解析,body解析,然后遍历各种checker,以及详细讲解了其正向代理的具体实现过程.这已经 ...
- 通过Nginx+tomcat+redis实现反向代理 、负载均衡及session同步
一直对于负载均衡比较陌生,今天尝试着去了解了一下,并做了一个小的实验,对于这个概念有一些认识,在此做一个简单的总结 什么是负载均衡 负载均衡,英文 名称为Load Balance,指由多台服务器以对称 ...
- nginx和tomcat实现反向代理、负载均衡和session共享
这类的文章很多,nginx和tomcat实现反向代理.负载均衡实现很容易,可以参照http://blog.csdn.net/liuzhigang1237/article/details/8880752 ...
随机推荐
- WCF使用注意事项
执行如下 批处理:"C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin\svcutil.exe" http://127.0.0.1: ...
- Robot Framework 常用关键字使用方法
1. Select From Listid=sourceConnoracle_source 从下拉框选取值. 2. Select Radio button name value 选择单选框.也可以点 ...
- 例子Architecting Android…The clean way?----代码分析
Presention层: 整个应用启动的时候,就执行依赖的初始化.编译项目之后,Dagger依赖框架使用ApplicationComponent生成一个DaggerApplicationCOmpo ...
- 洛谷金秋夏令营模拟赛 第2场 T11737 时之终末
这道题就是道状压dp...比赛的时候太贪心 然后状压又不好 所以T2 T3一起挂了QAQ 吸取教训QAQ f[i][j][k]表示前i个数选了j个 最后a个的状态为k的答案 #include<c ...
- error 0152: No Entity Framework provider found for the ADO.NET provider with invariant name 'System.Data.SqlClient'
error 0152: No Entity Framework provider found for the ADO.NET provider with invariant name 'System. ...
- perl6中函数参数(2)
use v6; #如果参数是可选的, 可以在后面加个?后定义 sub Choo($x, $y?){ say $x+$y; } Choo(); Choo(,); #具名参数, 也就是字典形式的调用 su ...
- bing查询旁站脚本
#!/usr/bin/env python # -*- coding: UTF-8 -*- #by i3ekr import re,optparse,sys,requests,time,os pars ...
- python基础===tkinter学习链接
http://effbot.org/tkinterbook/tkinter-classes.htm
- python之requests库使用问题汇总
一.请求参数类型 1.get requests.get(url, data, cookies=cookies) url:字符串: data:字典类型,可以为空: cookies:字典类型,可以为空: ...
- mssql批量刷新多个表的数据
DECLARE @SQL VARCHAR(MAX)SELECT @SQL=ISNULL(@SQL,'')+' UPDATE '+NAME+' SET B=3 WHERE B=2'FROM SYSOBJ ...