<ph type="x-smartling-placeholder"></ph>
  您正在查看 Apigee Edge 文档。
  转到
     Apigee X 文档。 信息
本主题介绍可以在 TargetEndpoint 和 ProxyEndpoint 配置中设置以控制消息传递和连接行为的传输属性。如需查看 TargetEndpoint 和 ProxyEndpoint 配置的完整说明,请参阅 API 代理配置参考。
TargetEndpoint 传输属性
TargetEndpoint 配置中的 HTTPTargetConnection 元素定义了一组 HTTP 传输属性。您可以使用这些属性来设置传输级配置。
这些属性在 TargetEndpoint HTTPTargetConnection 元素中设置,如下所示:
<TargetEndpoint name="default">
  <HTTPTargetConnection>
    <URL>http://mocktarget.apigee.net</URL>
    <Properties>
      <Property name="supports.http10">true</Property>
      <Property name="request.retain.headers">User-Agent,Referer,Accept-Language</Property>
      <Property name="retain.queryparams">apikey</Property>
    </Properties>
    <CommonName>COMMON_NAME_HERE</CommonName>
  </HTTPTargetConnection>
</TargetEndpoint>TargetEndpoint 传输属性 规范
| 属性名称 | 默认值 | 说明 | 
|---|---|---|
| keepalive.timeout.millis | 60000 | 连接池中目标连接的连接空闲超时。如果池中的连接处于空闲状态的时间超过指定的限制,则连接会被关闭。 | 
| connect.timeout.millis | 
 | 目标连接超时。如果发生连接,Edge 会返回 HTTP  | 
| io.timeout.millis | 55000 | 如果在指定的毫秒数内没有数据可供读取,或者在指定的毫秒数内套接字未准备好写入数据,则事务被视为超时。 
 此值应始终小于虚拟主机的 proxy_read_timeout 属性的值。 该值应小于 用于与消息处理器进行通信的路由器。请参阅配置路由器超时,了解 。 | 
| supports.http10 | true | 如果此值为 true并且客户端发送 1.0 请求,则也会向目标发送 1.0
        请求。否则,将向目标发送 1.1 请求。 | 
| supports.http11 | true | 如果此值为 true且客户端发送 1.1 请求,则也会向目标发送 1.1
        请求,否则将向目标发送 1.0 请求。 | 
| use.proxy | true | 如果设置为 true,并且代理配置在http.properties中指定(仅限本地部署),则目标连接设置为使用指定的代理。 | 
| use.proxy.tunneling | true | 如果设置为 true,并且代理配置在http.properties中指定(仅限本地部署),则目标连接设置为使用指定的隧道。如果目标使用 TLS/SSL,则该属性会被忽略,并且始终通过隧道发送消息。 | 
| enable.method.override | false | 对于指定的 HTTP 方法,为发送到目标服务的出站请求设置 X-HTTP-Method-Override标头。例如<Property
        name="GET.override.method">POST</Property> | 
| *.override.method | 无 | 对于指定的 HTTP 方法,为出站请求设置 X-HTTP-Method-Override标头。例如<Property
        name="GET.override.method">POST</Property> | 
| request.streaming.enabled | false | 默认情况下 ( | 
| response.streaming.enabled | false | 默认情况下 ( | 
| success.codes | 不适用 | 默认情况下,Apigee Edge 将 HTTP 代码  设置此属性会覆盖默认值。因此,如果您想将 HTTP 代码  <Property name="success.codes">1XX、2XX、3XX、400</Property> 如果您想仅将 HTTP 代码  <Property name="success.codes">400</Property> 将 HTTP 代码  | 
| compression.algorithm | 不适用 | 默认情况下,Apigee Edge 使用与客户端请求相同的压缩类型将请求转发到目标。例如,如果接收到的客户端请求使用 gzip 压缩,则 Apigee Edge 会使用 gzip 压缩将请求转发给目标。如果从目标收到的响应使用 deflate,则 Apigee Edge 会使用 deflate 将响应转发给客户端。支持的值包括: 
 | 
| request.retain.headers. | true | 默认情况下,Apigee Edge 会始终为出站消息保留所有 HTTP 标头。设置为 true时,入站请求中的所有 HTTP 标头都会设置在出站请求中。 | 
| request.retain.headers | 不适用 | 定义应在向目标服务发送的出站请求中设置的来自请求的特定 HTTP 标头。例如,要“传递” User-Agent标头,请将request.retain.headers的值设置为User-Agent。以逗号分隔列表的形式指定多个 HTTP 标头,例如User-Agent,Referer,Accept-Language。此属性会替换request.retain.headers.enabled。如果request.retain.headers.enabled设置为false,仍然会为出站消息设置request.retain.headers属性中指定的任何标头。 | 
| response.retain.headers. | true | 默认情况下,Apigee Edge 会始终为出站消息保留所有 HTTP 标头。设置为 true时,将为出站响应设置来自目标服务的入站响应中的所有 HTTP 标头,然后再将响应传递给 ProxyEndpoint。 | 
| response.retain.headers | 无 | 定义在发送到 ProxyEndpoint 之前,应为出站响应设置的来自响应的特定 HTTP 标头。例如,要传递 Expires标头,请将response.retain.headers的值设置为Expires。您可将多个 HTTP 标头指定为以逗号分隔的列表,
        示例Expires,Set-Cookie。此属性会替换response.retain.headers.enabled。如果response.retain.headers.enabled设置为false,任何标头response.retain.headers属性中指定的设置在
        。 | 
| retain.queryparams. | true | 默认情况下,Apigee Edge 会始终为出站请求保留所有查询参数。设置为 true时,将为向目标服务发出的出站请求设置入站请求中的所有查询参数。 | 
| retain.queryparams | 不适用 | 定义要在出站请求中设置的特定查询参数。例如,要包含请求消息中的查询参数 apikey,请将retain.queryparams设置为apikey。以逗号分隔列表的形式指定多个查询参数,例如apikey,environment。此属性会替换retain.queryparams.enabled。 | 
ProxyEndpoint 传输属性
ProxyEndpoint HTTPTargetConnection 元素定义了一组 HTTP 传输属性。这些属性可用于设置传输级配置。
这些属性在 ProxyEndpoint HTTPProxyConnection 元素中设置,如下所示:
<ProxyEndpoint name="default">
  <HTTPProxyConnection>
    <BasePath>/v1/weather</BasePath>
    <Properties>
      <Property name="request.streaming.enabled">true</Property>
    </Properties>
    <VirtualHost>default</VirtualHost>
    <VirtualHost>secure</VirtualHost>
  </HTTPProxyConnection>
</ProxyEndpoint>如需详细了解虚拟主机,请参阅虚拟主机简介。
ProxyEndpoint 传输属性 规范
| 属性名称 | 默认值 | 说明 | 
|---|---|---|
| X-Forwarded-For | false | 如果设置为 true,虚拟主机的 IP 地址将作为
        HTTPX-Forwarded-For标头的值。 | 
| request.streaming. | false | 默认情况下 ( false),HTTP 请求载荷会被读入缓冲区,而政策
        按预期运行有效负载在载荷大于
        缓冲区大小 (10 MB),您可以将此
        属性设为true。如果为true,则 HTTP 请求载荷不会读入缓冲区;它们是
        按原样流式传输到 TargetEndpoint 请求流。在这种情况下,系统会绕过 ProxyEndpoint 请求流中对载荷进行操作的任何政策。另请参阅流式请求和响应。 | 
| response.streaming. | false | 默认情况下 ( false),HTTP 响应载荷会被读取到缓冲区中,而
        可以按预期对载荷工作运行在载荷大于
        缓冲区大小 (10 MB),您可以将此
        属性设为true。如果为true,则 HTTP 响应载荷不会读入缓冲区;它们是
        按原样流式传输到客户端在这种情况下,系统会绕过 ProxyEndpoint 响应流中对载荷进行操作的任何政策。另请参阅流式请求和响应。 | 
| compression.algorithm | 无 | 默认情况下,Apigee Edge 遵循接收的任何消息设置的压缩类型。例如,如果客户端提交使用 gzip 压缩的请求,Apigee Edge 将使用 gzip 压缩将请求转发给目标。您可以通过在 TargetEndpoint 或 ProxyEndpoint 中设置此属性来配置要明确应用的压缩算法。支持的值包括: 
 | 
| api.timeout | 不适用 | 配置单个 API 代理的超时 您可以配置 API 代理(甚至包括启用了流式处理的代理),使其在指定时间后超时并返回  
 您无法使用变量设置此属性。 无法修改 Edge 超时的客户也可以配置 API 代理 超时(只要超时短于标准边缘消息处理器) 超时设置为 57 秒。 | 
为 Edge 设置 io.timeout.millis 和 api.timeout
在 Edge 上,io.timeout.millis 和 api.timeout 的操作
  彼此相关。
  对于向 API 代理发出的每个请求:
  
- 路由器将其超时值发送给消息处理器。路由器超时值是由处理请求的虚拟主机设置的 proxy_read_timeout的值,或 57 秒的默认超时值。
- 然后,消息处理器会设置 api.timeout:- 如果未在代理级别设置 api.timeout,请将其设置为路由器超时。
- 如果在代理级别设置了 api.timeout,请在消息处理器上将其设置为路由器超时或api.timeout的值(以较小值为准)。
 
- 如果未在代理级别设置 
- api.timeout的值指定 API 代理从 API 请求到响应的最长执行时间。- 在 API 代理中的每个政策执行完毕后 或是在消息处理器将请求发送到目标端点之前, 消息处理器会计算( - api.timeout- 从请求开始算起经过的时间)。 如果值小于零,则表示处理请求的最长时间已到期,并且 消息处理器返回- 504。
- io.timeout.millis的值指定目标端点进行响应的最长时间。- 在连接到目标端点之前,消息处理器会确定 ( - api.timeout- 自请求开头起经过的时间)和- io.timeout.millis。 然后将- io.timeout.millis设置为该值。- 如果在写入 HTTP 请求时发生超时,则返回 408, Request Timeout。
- 如果在读取 HTTP 响应时发生超时,则返回 504, Gateway Timeout。
 
- 如果在写入 HTTP 请求时发生超时,则返回 
关于适用于 Node.js 应用的 ScriptTarget
ScriptTarget 元素用于将 Node.js 应用集成到您的代理中。对于 有关使用 Node.js 和 ScriptTarget 的信息,请参阅:
- <ph type="x-smartling-placeholder"></ph> 使用 ScriptTarget 指定 Node.js 目标
- <ph type="x-smartling-placeholder"></ph> 高级 ScriptTarget 配置
HostedTarget 端点简介
空的 <HostedTarget/> 标记会告知 Edge 将 Node.js 用作其目标
  部署在 Hosted Targets 环境中的应用。有关详情,请参阅
  Hosted Targets 概览。