配置正向代理

转发代理提供单一点,让多台机器可向外部服务器发送请求。它们可以强制执行安全政策、记录和分析请求,以及执行其他操作,以便请求符合您的业务规则。使用 Edge 时,正向代理通常会将 API 代理和外部 TargetEndpoint(后端目标服务器)中间化。

如需在 Edge 和 TargetEndpoint 之间使用 HTTP 转发代理,您必须在消息处理器 (MP) 上配置出站代理设置。这些属性会配置 MP 以将目标请求从 Edge 路由到 HTTP 转发代理。

如要将 MP 配置为转发代理,请执行以下操作

  1. 在 MP 上,修改以下文件:
    /opt/apigee/customer/application/message-processor.properties

    如果 message-processor.properties 文件不存在,请创建一个。

  2. 编辑该文件,设置下表中所述的代理相关属性。
  3. 确保属性文件归“apigee”用户所有:
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
  4. 保存对属性文件所做的更改。
  5. 重启 MP,如以下示例所示:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart

下表介绍了 message-processor.properties 文件中用于配置 MP 以将代理转发到后端服务器的属性:

属性 说明
conf_http_HTTPClient.use.proxy

允许使用转发代理。默认值为 true,这意味着您可以在软件包配置中包含相关 XML,在 API 代理层使用正向代理。

如果您将此值设为 false,则无法使用正向代理。

conf_http_HTTPClient.use.tunneling

默认情况下,Edge 会对所有流量使用隧道技术。若要默认停用隧道技术,请将此属性设为“false”。

use.proxy.host.header.with.target.uri

将目标主机和端口设置为 Host 标头。默认情况下,代理主机和端口设置为 Host 标头。您只能在目标端点中设置此属性。例如:

<HTTPTargetConnection>
    <Properties>
        <Property name="use.proxy.host.
         header.with.target.uri">true
        </Property>
    </Properties>
    <URL>https://mocktarget.apigee.net/
     my-target</URL>
</HTTPTargetConnection>
conf/http.properties+HTTPClient.proxy.type

将 HTTP 代理的类型指定为 HTTP 或 HTTPS。默认情况下,它使用“HTTP”。

conf/http.properties+HTTPClient.proxy.host

指定运行 HTTP 代理的主机名或 IP 地址。

conf/http.properties+HTTPClient.proxy.port

指定运行 HTTP 代理的端口。如果省略此属性,默认情况下,它将使用端口 80(用于 HTTP)和端口 443(用于 HTTPS)。

conf/http.properties+HTTPClient.proxy.user
conf/http.properties+HTTPClient.proxy.password

如果 HTTP 代理需要基本身份验证,请使用这些属性提供授权详情。

例如:

conf_http_HTTPClient.use.proxy=true
conf_http_HTTPClient.use.tunneling=false
conf/http.properties+HTTPClient.proxy.type=HTTP
conf/http.properties+HTTPClient.proxy.host=my.host.com
conf/http.properties+HTTPClient.proxy.port=3128
conf/http.properties+HTTPClient.proxy.user=USERNAME
conf/http.properties+HTTPClient.proxy.password=PASSWORD

如果为 MP 配置了转发代理,则从 API 代理流向后端目标的所有流量都会经过指定的 HTTP 转发代理。如果 API 代理的特定目标的流量应直接流向后端目标,从而绕过转发代理,请在 TargetEndpoint 中设置以下属性以替换 HTTP 转发代理:

<Property name="use.proxy">false</Property>

如需详细了解如何设置 TargetEndpoint 属性,包括如何配置与目标端点的连接,请参阅端点属性参考文档

如需默认为所有目标停用正向代理,请在 message-processor.properties 文件中设置以下属性:

conf_http_HTTPClient.use.proxy=false

然后,针对要通过 HTTP 正向代理传送的任何 TargetEndpoint 将 use.proxy 设置为“true”:

<Property name="use.proxy">true</Property>

默认情况下,Edge 使用隧道传输流向代理的流量。要默认停用隧道技术,请在 message-processor.properties 文件中设置以下属性:

conf_http_HTTPClient.use.tunneling=false

如果要为特定目标停用隧道技术,请在 TargetEndpoint 中设置 use.proxy.tunneling 属性。如果目标使用 TLS/SSL,则系统会忽略此属性,并始终通过隧道发送消息:

<Property name="use.proxy.tunneling">false</Property>

若要让 Edge 本身充当转发代理,即从后端服务接收请求并将其路由到企业外部的互联网,请先在 Edge 上设置 API 代理。然后,后端服务可以向 API 代理发出请求,该代理可以连接到外部服务。