一.介绍

反向代理:让Internet上的用户可以访问局域网内的资源,中间设置一个代理服务器,如下所示,红色圈是指局域网内的站点(myweb站点是我们的站点,例如iis)。箭头不能反过来

正向代理:客户端(我们代理客户端)访问Internet上的站点。中间设置一个代理服务器,如下所示,红色圈是指局域网内的客户端(我们的客户端)。箭头不能反过来。

总结:

  正向代理是指:我们代表局域网客户端,向Internet上获取资源,中间正向代理。

  反向代理是指:我们代表局域网服务端,Internet上的客户端请求资源,中间使用反向代理。

  

  反向代理是最常见的重要功能之一,应用广泛,涉及的配置指令比较多。ngx提供的反向代理也是比较高效的,它能同时接收客户端连接由worker_processes指令和worker_connections指令决定。

  

  反向代理与正向代理都有http块,server块或者location块。区别是单独配置server块用来反向代理或正向代理。

二.反向代理的基本设置的21个指令

   讲最重要的一个proxy_pass指令

  1.proxy_pass指令

    被代理服务器的地址(分发到如:IIS),可以是主机名称,ip地址加端口号等形式。语法结构为

    proxy_pass url;

    传输协议通常是http://,或https://。例如

    proxy_pass  http://www.myweb.name/uri;

    proxy_pass  http://localhost:8080/uri;

    proxy_pass  http://192.168.2.211:8080/uri;

    如果被代理服务器是一组服务器的话,可以用upstream指令配置后端服务器组,做高可用负载分发,例如:

upstream proxy_svrs
{
server http://192.168.1.1:8001;
server http://192.168.1.2:8001;
server http://192.168.1.3:8001;
} server
{
...
listen ;
server_name www.myweb.name;
location /
{
proxy_pass proxy_svrs;
}
}

  注意一点:在服务器组内指明了传输协议 http://,  在proxy_pass指令中就不需要指明了。反之如果服务器组内没有https://,那么 在proxy_pass指令中就需要指明,如下所示:

upstream proxy_svrs
{
server 192.168.1.1:;
server 192.168.1.2:;
server 192.168.1.3:;
} server
{
...
listen ;
server_name www.myweb.name;
location /
{
proxy_pass http://proxy_svrs;
}
}

  当客户端访问http://www.myweb.name时,就会进入location中。再看一个示例:

server
{
...
listen ;
server_name www.myweb.name;
      location /server/
{
proxy_pass http://proxy_svrs01;
}
    location / 
    {
      proxy_pass http://proxy_svrs; }
    }

  当客户端访问http://www.myweb.name/server时,就会匹配location /server/ 块中。

  

参考

  Nginx高性能Web服务器详解 第7章

nginx 正向代理与反向代理的更多相关文章

  1. nginx正向代理,反向代理,透明代理(总结)

    1正向代理 正向代理,也就是传说中的代理,他的工作原理就像一个跳板, 简单的说, 我是一个用户,我访问不了某网站,但是我能访问一个代理服务器 这个代理服务器呢,他能访问那个我不能访问的网站 于是我先连 ...

  2. 正向代理与反向代理的区别【Nginx读书笔记】(zz)

    正向代理与反向代理的区别[Nginx读书笔记]       正向代理的概念 正向代理,也就是传说中的代理,他的工作原理就像一个跳板,简单的说,我是一个用户,我访问不了某网站,但是我能访问一个代理服务器 ...

  3. Nginx的正向代理与反向代理详解

    正向代理和反向代理的概念 代理服务(Proxy),通常也称为正向代理服务. 如果把局域网外Internet想象成一个巨大的资源库,那么资源就分布到了Internet的各个点上,局域网内的客户端要访问这 ...

  4. 正向代理与反向代理区别图解 (nginx)

    1. 背景 经常听到代理,比如通常我们要上国外的网站时,需要买vpn作为跳板机器进行访问. 但是在公司里面也听到了nginx支持反向代理. 那什么是正向代理,什么是反向代理?在网上看了写内容,说一下自 ...

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

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

  6. nginx:正向代理和反向代理

    一.正向代理 原理:正向代理是一个位于客户端和目标服务器之间的代理服务器(中间服务器).为了从目标服务器取得内容,客户端向代理服务器发送一个请求,并且指定目标服务器,之后代理向目标服务器转交并且将获得 ...

  7. nginx学习,看这一篇就够了:下载、安装。使用:正向代理、反向代理、负载均衡。常用命令和配置文件

    前言一.nginx简介1. 什么是 nginx 和可以做什么事情Nginx 是高性能的 HTTP 和反向代理的web服务器,处理高并发能力是十分强大的,能经受高负 载的考验,有报告表明能支持高达 50 ...

  8. [转帖]nginx学习,看这一篇就够了:下载、安装。使用:正向代理、反向代理、负载均衡。常用命令和配置文件

    nginx学习,看这一篇就够了:下载.安装.使用:正向代理.反向代理.负载均衡.常用命令和配置文件 2019-10-09 15:53:47 冯insist 阅读数 7285 文章标签: nginx学习 ...

  9. 针对nginx,来具体聊聊正向代理与反向代理 (转载)

    https://www.sohu.com/a/235704408_468627 先来说说什么是代理服务器? 所谓代理服务器就是位于发起请求的客户端与原始服务器端之间的一台跳板服务器,正向代理可以隐藏客 ...

  10. (大型网站之Nginx)图解正向代理、反向代理、透明代理

    一.正向代理(Forward Proxy) 一般情况下,如果没有特别说明,代理技术默认说的是正向代理技术.关于正向代理的概念如下: 正向代理(forward)是一个位于客户端[用户A]和原始服务器(o ...

随机推荐

  1. 【5min+】帮我排个队,谢谢。await Task.Yield()

    系列介绍 [五分钟的dotnet]是一个利用您的碎片化时间来学习和丰富.net知识的博文系列.它所包含了.net体系中可能会涉及到的方方面面,比如C#的小细节,AspnetCore,微服务中的.net ...

  2. Bootstrap File Input 的使用

    由于工作需要使用Bootstrap的FileInput插件,在此分享下插件的使用方法 直接上代码 fileinput.html <!DOCTYPE html> <html> & ...

  3. .net core appsetting/获取配置文件

    修改appsetting 最近用Identity4所以需要做一个配置项项目 { "Logging": { "IncludeScopes": false, &qu ...

  4. python  获取网页图片 十月底的 一弹

    #!/usr/bin/pythonimport reimport urllib def getHtml(url):    page=urllib.urlopen(url)    html=page.r ...

  5. 异想家Win10常用的软件推荐

    本文总结一下自己日常使用Win10中涉及到的好用小软件,那些装机必备的软件在这里就不一一列出了.我重点想推荐一些自己觉得好用,符合自己偏好,但又不是每个人都知道的小工具: Rolan:一款类似于Win ...

  6. CF572_Div2_F

    题意 http://codeforces.com/contest/1189/problem/F 思考 由于是子序列,答案只跟选法有关,与顺序无关,先排序. 直接计算答案比较困难.联想到期望的无穷级数计 ...

  7. Bootstrap自带的那些常用插件

    1.Bootstrap自带的那些常用插件. 1.1模态框 模态框的HTML代码放置的位置 务必将模态框的HTML代码放在文档的最高层级内(也就是说,尽量作为 body 标签的直接子元素),以避免其他组 ...

  8. Git详解之分布式应用

    前言 为了便于项目中的所有开发者分享代码,我们准备好了一台服务器存放远程 Git 仓库.经过前面几章的学习,我们已经学会了一些基本的本地工作流程中所需用到的命令.接下来,我们要学习下如何利用 Git ...

  9. 两张导图带你走进Spring设计模式与编程思想

    两张思维导图带你了解Spring Spring常用设计模式 Spring设计思想

  10. Spring 依赖注入两种方式

    (1):通过 setter 方法注入: <property name=“ ” ></property> 其中,name属性的取值依setter方法名而定,要求这个类里面这个对应 ...