什么是代理与反向代理,有什么应用场景? 

平常经常听别人说代理与反向代理,那么这二者到底有什么区别呢?

代理

场景:我需要访问一个服务器C,但是由于某些原因我无法访问到它,(典型的就是你翻墙,然后failed了),可是我就是控制不住自己,这个时候,服务器B告诉我,来吧,你想要什么,我来帮你传话,于是,我把自己的请求给了B,B接收到之后,帮我转给了C,(因为B和C之间的线路是畅通的),C把返回结果给了B,B非常友好地把结果又还给了我,我觉得太好用了简直,于是我周围的小伙伴都开始将请求发给B,通过B的转发,来获取C的信息,这个时候对于服务器C,C只知道是B发了请求过来,不知道我们这群小伙伴的存在,所以这就是代理。

概括一下就是,一个请求对于后端服务器C是透明的,它只知道是B发过来的,并将处理结果返回,至于谁将请求发给B,随便。

反向代理

场景:我向B发送了一个请求,B对我的请求进行分析,发现我请求的是文章详情,于是B将请求转发给处理文章详情的应用服务器C1,我又向B发了一个请求,B解析之后,发现请求的是我的声望值等个人信息,于是B将请求转发给专门处理个人信息的应用服务器C2,就这样,我不在乎我要请求的数据是在C1,C2,还是C3上,我只需要发送请求到B就可以了,B会对我的请求进行解析,决定转发请求给Cx来处理,并得到处理结果后返回给我。

概括一下就是,一个请求对于客户端是透明的,我不知道我的请求具体由谁处理,我将请求都发给B,至于B发给Cx,随便。

代理与反向代理在实际工程中应用很广泛,代理在大家平常生活的翻墙中应该用过很多了,反向代理则是许多大公司业务处理过程中的经典方式,前端由一个nignx负责根据用户的请求信息转发请求给后端相应的应用服务器(这个过程中也可以加入负载均衡)。

参考资料

1  什么是代理与反向代理,有什么应用场景?                   https://p.baidu.com/question/28256162633066373463350200

2  nginx官网   http://nginx.org/en/

学习 nginx (持续更新)的更多相关文章

  1. 【pwn】学pwn日记——栈学习(持续更新)

    [pwn]学pwn日记--栈学习(持续更新) 前言 从8.2开始系统性学习pwn,在此之前,学习了部分汇编指令以及32位c语言程序的堆栈图及函数调用. 学习视频链接:XMCVE 2020 CTF Pw ...

  2. Pig基础学习【持续更新中】

    *本文参考了Pig官方文档以及已有的一些博客,并加上了自己的一些知识性的理解.目前正在持续更新中.* Pig作为一种处理大规模数据的高级查询语言,底层是转换成MapReduce实现的,可以作为MapR ...

  3. [读书]10g/11g编程艺术深入体现结构学习笔记(持续更新...)

    持续更新...) 第8章 1.在过程性循环中提交更新容易产生ora-01555:snapshot too old错误.P257 (这种情况我觉得应该是在高并发的情况下才会产生) 假设的一个场景是系统一 ...

  4. Linux学习历程(持续更新整理中)

    1.文件目录操作命令 (1) ls   显示文件和目录列表 a ls -l  显示文件的详细信息 b ls -a 列出当前目录的所有文件,包含隐藏文件. c stat '目录/文件'   显示指定目录 ...

  5. Java同步学习(持续更新)

    在需要考虑线程安全性的场合,可以考虑以下五种方式来实现线程的安全性: 1.同步方法 即有synchronized关键字修饰的方法. 由于java的每个对象都有一个内置锁,当用此关键字修饰方法时,   ...

  6. 数据分析之Pandas和Numpy学习笔记(持续更新)<1>

    pandas and numpy notebook        最近工作交接,整理电脑资料时看到了之前的基于Jupyter学习数据分析相关模块学习笔记.想着拿出来分享一下,可是Jupyter导出来h ...

  7. Python基础学习总结(持续更新)

    https://www.cnblogs.com/jin-xin/articles/7459977.html 嗯,学完一天,白天上班,眼睛要瞎了= = DAY1 1,计算机基础. CPU:相当于人的大脑 ...

  8. Cadence物理库 LEF 文件语法学习【持续更新】

    我是 雪天鱼,一名FPGA爱好者,研究方向是FPGA架构探索. 关注公众号,拉你进"IC设计交流群". @ 目录 一.LEF简介 1.1 通用规则 1.2 管理 LEF 文件 二. ...

  9. [Hadoop] Hadoop学习历程 [持续更新中…]

    1. Hadoop FS Shell Hadoop之所以可以实现分布式计算,主要的原因之一是因为其背后的分布式文件系统(HDFS).所以,对于Hadoop的文件操作需要有一套全新的shell指令来完成 ...

  10. Semantic ui 学习笔记 持续更新

    这个semantic 更新版本好快~ 首先是代码的标识<code></code> 具体样式就是红框这样的 圈起来代码感觉不错 不过要在semantic.css里在加上如下样式~ ...

随机推荐

  1. 汇编文件后缀.s与.S

    转载:http://www.cnblogs.com/IamEasy_Man/archive/2011/08/10/2134212.html 一.大小写后缀的区别: .s:  汇编语言源程序;汇编 .S ...

  2. Spring框架第五篇之Spring与AOP

    一.AOP概述 AOP(Aspect Orient Programming),面向切面编程,是面向对象编程OOP的一种补充.面向对象编程是从静态角度考虑程序的结构,而面向切面编程是从动态角度考虑程序运 ...

  3. 使用tensorflow 构建rnn网络

    使用tensorflow实现了简单的rnn网络用来学习加法运算. tensorflow 版本:1.1 import tensorflow as tf from tensorflow.contrib i ...

  4. Oracle 性能调优 SQL_TRACE

    思维导图 Oracle优化10-SQL_TRACE解读 Oracle优化11-10046事件 概述 当我们想了解一条SQL或者是PL/SQL包的运行情况时,特别是当他们的性能非常差时,比如有的时候看起 ...

  5. Oracle DB 使用RMAN将数据库移植到ASM存储区

    1. 完全关闭数据库. 2. 关闭数据库并修改服务器参数文件,以使用Oracle Managed Files (OMF). 3. 编辑并执行以下RMAN 脚本: STARTUP NOMOUNT; RE ...

  6. nginx的access_log与error_log(三)

    本篇介绍一下在nginx服务器的的两种日志的查看.   根据你找出来的地址,尽心vi编辑,进入nginx.conf文件进行查找路径     从而找到,我机子的两个日志存放地点: /var/logdat ...

  7. Android 按钮 弹出对话框

    ackage com.example.helloworld; import android.os.Bundle;import android.app.Activity;import android.a ...

  8. PHP实现创建一个文件

    方法一:file_put_content($filename,$content); function mk_document($filename,$content=''){ // var_dump(_ ...

  9. Linux系统——系统安全及应用

    系统账号清理 将非登录用户的shell设为/sbin/nologin 方法一:usermod -s 方法二: chsh命令,交互式修改,用来修改用户的登录情况 方法三: chsh -s 方法四:vim ...

  10. JQuery如何实现双击事件时不触发单击事件,解决鼠标单双击冲突问题

    在jQuery的事件绑定中,如果元素同时绑定了单击事件(click)和双击事件(dblclick),那么执行单击事件(click)时,不会触发双击事件(dblclick), 执行双击事件(dblcli ...