• 什么是反向代理


    https://segmentfault.com/q/1010000003491873

    A和B直接沟通,这就等于没有代理

    然后中间夹一个传话的C,C就是代理了,A通过C把信息传递给B,然后再把B的反馈转达给A.

    在这个过程中,A知道沟通的直接目标是B,只不过由于各种原因无法直接和B面对面,需要中间人C,这就是所谓“正向代理”,其实i我们很少说正向代理,一般直接说代理

    举个例子:

    我下访问www.google.com,然而大家都知道它被抢了,我没法直接访问它,于是我连接了一个VPN

    服务并设定其为本地HTTP访问的代理,然后我再访问www.google.com,此时我的请求被该VPN服务代理了,它帮我访问了www.google.com然后把返回结果给我(叫做代理,不是叫做反向代理)

    • 这个例子是代理的一种应用场景,但并非代表代理只能用于这个
    • 最重要的特征是我知道www.google.com的存在,而且我访问的网址也的确是www.google.com,只不过我的访问请求由VPN代理来转交,同样相应也是如此
    • 在本例中,代理是透明的,用户有可能不知道他的存在(通常是知道的,只不过代理的设置及可能不是他自己来做)

     

     

    另一种情况是:

    A并不知道B的存在,它只知道找C就可以得到想要的回复,对于A来说有没有B,B!,C,C!......D,F都不重要,只要有C就够了。而C则根据情况去获取反馈然后相应给A。                         

    这种就叫反向代理了

    举个例子:

    我有一个Nginx服务部署再www.mysite.com的80端口,用户访问它就可以看见我做的网站;在我的网站中有一些Ajax请求获取JSON数据,然而提供这些数据的API Service部署在服务器上的8000端口,该端口由于防火墙的阻挠使得用户无法直接访问到。

    于是我重新配置了Nginx,让它把所有经由:80/api/的访问请求都代理给localhost:8000,然后把响应返回给原始请求方,这就是反向代理

    • 这是反向代理的一种应用场景,但并非代表它只能这样用
    • 最重要的特征是我的用户压根不知道localhost:8000这个服务的存在,并且即使知道也访问不到-----开VPN也访问不到,这是两码事
    • 对于用户来讲,唯一的“对话”方只有www.mysite.com(80端口),他们不知道也不比要知道后面发生了什么

     

     参考  https://blog.csdn.net/qq_32963841/article/details/100552329

    嗯,就酱~~

  • 相关阅读:
    【Linux高频命令专题(24)】grep
    【PSR规范专题(6)】PSR-7 HTTP消息接口【转】
    【redis专题(10)】KEY设计原则与技巧
    【redis专题(9)】事务
    【redis专题(8)】命令语法介绍之通用KEY
    linux 之 jq
    PHP Rabbitmq 报错Broken pipe
    Laravel 跨框架队列交互
    解决Linux下编译.sh文件报错 unexpected operator Syntax error: word unexpected
    安装QConf 报错及解决方案
  • 原文地址:https://www.cnblogs.com/jin-zhe/p/11586118.html
Copyright © 2020-2023  润新知