一.介绍

反向代理:让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. Egret学习-TiledMap使用

    环境说明: 引擎版本:5.2.4 Egret Wing 4.1.6 1.下载依赖,下载地址https://github.com/egret-labs/egret-game-library/tree/m ...

  2. c#实现ofd文件转图片功能 (附执行程序)

    前言 ofd文件的作用就是保证信息能如实的存储.传递.显示.保证ofd文件的真实性靠的是签名:ofd 的显示需要专用软件.ofd标准是新的国家标准,应用范围远不如pdf:现有浏览器不能解析ofd.支持 ...

  3. python接口自动化测试 - configparser配置文件解析器详细使用

    configparser简介 ConfigParser模块已在Python 3中重命名为configparser 该模块定义了ConfigParser类. ConfigParser类实现一种基本的配置 ...

  4. c#数字图像处理(二)彩色图像灰度化,灰度图像二值化

    为加快处理速度,在图像处理算法中,往往需要把彩色图像转换为灰度图像,在灰度图像上得到验证的算法,很容易移植到彩色图像上.24位彩色图像每个像素用3个字节表示,每个字节对应着R.G.B分量的亮度(红.绿 ...

  5. atx测试框架实现手机应用UI自动化测试

    最近工作中遇到游戏APP需要实现UI自动化测试,这个app中真的是典型的混合App,有Android原生控件,有webview控件,以及游戏操作页面.研究了Appium,发现appium实现跨应用操作 ...

  6. 解决apt-get安装软件包的时候遇到E: Sub-process /usr/bin/dpkg returned an error code (1)问题

    在用apt-get安装软件包的时候遇到E: Sub-process /usr/bin/dpkg returned an error code (1)问题,解决方法如下:   cd /var/lib/d ...

  7. BOM DOM 注意事項

    setTimeout(js,時間)  js处 应该放一个函数 不能放 alert  confirm 等 (否则延时会失效) setTimeout()   和 setInterval() 的区别:    ...

  8. larabel Artisan Command 使用总结

    larabel Artisan Command 使用总结 定义命令 在routes/console.php下定义命令 Artisan::command('ltf', function () { (ne ...

  9. MySQL 高可用之主从复制

    MySQL主从复制简介 Mysql的主从复制方案,都是数据传输的,只不过MySQL无需借助第三方工具,而是自带的同步复制功能,MySQL的主从复制并不是磁盘上文件直接同步,而是将binlog日志发送给 ...

  10. 使用CStatic显示图片(bmp、ico、png)

    一.显示bmp及ico //h文件 CStatic m_static; //cpp文件 CBitmap bitmap; bitmap.LoadBitmapW(IDB_BITMAP); //加载位图 B ...