【问题标题】:What is a proxy? What is it in Apache? Does it have many different meanings?什么是代理?在 Apache 中是什么?它有很多不同的含义吗?
【发布时间】:2012-09-12 23:18:16
【问题描述】:

它与文件描述符无关。它是不同协议之间的某种联系吗?还有更多这样的存在吗?反向代理?直接代理?间接代理?代理是指 OSI 参考模型中的 3 层、7 层还是不同的层?如果你有 NAT,你有 3 层,而 7 层是根据 Wikipedia here 的通用代理。维基百科继续"Because NAT operates at layer-3, it is less resource-intensive than the layer-7 proxy, but also less flexible" -- 有不同的代理方式:

所以现在是一个非常愚蠢和傲慢的问题"What is a proxy in Apache?"

我试图更深入地了解代理的其他无知问题

  1. https://stackoverflow.com/questions/12397242/explain-apache-mod-proxy-module-is-it-overused-and-many-times-a-red-herring-w

  2. Explain CouchDB's serving of websites, is CouchDB bundled somehow with Apache and how does it work?

【问题讨论】:

    标签: apache networking proxy distributed-system osi


    【解决方案1】:

    Apache 是第 7 层代理(就 OSI 而言),它不使用网络地址转换或任何类型的数据包修改/重写。它接收请求并根据一些规则/配置,代表客户端发出请求。 Apache 可以充当正向代理和/或反向代理。在上面的图片中,apache 将在红色的 blob 上运行。

    • 在第一张图片中,apache 将充当反向代理,它从 Internet 接收 HTTP 请求,并将其代理到内部的特定位置。

    • 在第二张图片中,apache 充当正向代理。本地用户正在使用它来请求互联网上的任何内容(在规则/配置内)。

    • 在反向代理中,接收到对特定资源的请求,例如http://my.homepage.com/ 和 apache,知道内容实际上在内部位于 http://192.168.2.45/my.homepage/,将请求代理到内部位置。

    • 在转发代理中,LAN 上的用户请求http://www.google.com/,浏览器或操作系统都知道将请求代理到本地代理服务器(apache,图像中的红色 blob),然后 apache然后代表用户向 www.google.com 发出请求。

    【讨论】:

    • 那么 NAT 进程实现了一些代理?代理可以软件和硬件实现吗?让我们举一个具体的例子,比如这个服务here,如果你在同一个网络中,你可以用你的桌面修改你的手机,显然是使用 NAT -proxy。那里的代理是什么?我认为它是 3 层代理和用户代理。那么object proxyproxy cacheresource proxyweb proxy 等其他类型的代理呢?它们主要是第 7 层代理吗?
    • @hhh 不,NAT 不是代理。它的作用类似于反向代理的作用。 Here's an example of using iptables and NAT to forward a port,效果类似于反向代理。请求将 目标 (DNAT) 重写为内部 IP 地址,内部服务器正常响应。
    • 所以用户通过 OAuth2.0 认证的进程是 reverse proxiesuser proxies,对吗?请注意我的回答中 Tanenbaum 对 user proxy 的定义。那么基于 OAuth2.0 的应用程序必须有两个不同的代理 user-proxyresource-proxy?如果我理解正确,代理是一个更笼统的术语——该术语适用于所有进程,甚至可能是人而非机器的进程?由于大量使用 HTTP 协议,Apache 只是一个流行的代理,对吧?
    • @hhh 我对 OAuth2.0 不太熟悉,但看起来 Tenenbaum 术语类似于“正向”(用户)和“反向”(资源)代理的概念。请注意,我的回答专门针对 apache,它将代理定义为正向和反向代理。 proxying 和 proxies 的概念是一个比 apache 大得多的范围。
    • Apache 代理可以是对象代理、用户代理、资源代理或网络代理之类的东西吗?我试图看到proxy这个词的更多色彩视图。在某种程度上,AirDroid 看起来像 Web 代理,但在两个客户端之间?!这本书没有定义你在两个客户端之间有代理的情况,很有趣。
    【解决方案2】:

    有不同种类的代理!关键是中间人,它不知何故位于 A 和 B 的中间。我现在将使用 Tanenbaum 的术语(更多 here)。例如,他在 Globus 安全模型的上下文中定义了两个不同的代理:用户代理资源代理。然后他定义了对象代理,它是对象分布式系统中的一个接口。然后,他定义了一个 web-proxy,当客户端网络浏览器缺少 ftp 支持等功能时,这是一种古老的想法。

    现在,根据 Jon Lin 的说法,反向/正向代理分别类似于资源/用户。对象代理和网络代理是特殊类型的实现。我认为它们实际上可以是资源代理或用户代理。如果你有 object -proxy,它可以用不同的方式实现:你可以实现它,以便用户授予使用它的权限,因此是用户代理,或者更多的全局活动,它有不同的方法与本地合作来自某个全局设置的环境,因此是资源代理。

    相关

    1. https://stackoverflow.com/questions/12398389/different-definitions-of-the-term-proxy/12398390#12398390

    【讨论】:

      猜你喜欢
      • 2011-09-11
      • 2016-06-19
      • 2019-07-13
      • 1970-01-01
      • 2013-05-26
      • 2014-03-16
      • 2018-06-17
      • 1970-01-01
      相关资源
      最近更新 更多