跟踪会话中的 HTTP 304 响应

您正在查看的是 Apigee Edge 文档。
转到 Apigee X 文档
信息

问题

在适用于 Private Cloud 的 Edge 中,在 Edge 界面中跟踪 API 时,您会在跟踪窗口的状态列中看到 HTTP 304 响应:

错误消息

没有任何错误消息 - API 代理调用实际上会返回成功响应,如 HTTP 200。但是,Edge 界面中的跟踪窗口会显示 HTTP 304 响应,并且不会收集任何跟踪数据。

可能的原因

在 Private Cloud 的 Edge 中,Edge 界面尝试跟踪通过专用 IP 地址访问的 API 代理。

Edge 界面中的跟踪工具能够向任何网址发送 API 请求。在 Edge 界面与其他内部服务共同托管的部署场景中,恶意用户可能会滥用跟踪工具通过专用 IP 地址(例如 localhost 或 127.0.0.1)向服务发出请求。

在生产环境中,您通常保留默认设置,以防止用户跟踪专用 IP 地址。例如,这就是公开版本的 Edge 界面的部署方式。

但是,对于内部开发或测试环境,您可以替换此默认值,以允许 API 开发者跟踪任何 IP 地址。通常,开发/测试环境位于不允许公开访问的防火墙后面。

注意 :最佳做法是保留默认设置,以防止对专用 IP 地址的跟踪记录访问,即使在开发/测试环境中也不例外,除非您遇到必须启用跟踪记录的情况。

原因:尝试通过专用 IP 地址访问 API 代理

默认情况下,私有云的 Edge 界面会阻止用户跟踪通过专用 IP 地址进行的 API 调用。专用 IP 地址列表包括:

  • 环回地址(127.0.0.1 或 localhost)
  • 网站本地地址(对于 IPv4 - 10.0.0.0/8、172.16.0.0/12、192.168.0.0/16)
  • 任何本地地址(任何解析为 localhost 的地址)

例如,以下 curl 命令使用 127.0.0.1 这一 IP 地址(被视为专用 IP 地址)来调用 API 代理:

curl http://127.0.0.1:9001/myapiproxy

在此调用的跟踪窗口中,即使 curl 命令返回成功,您也会看到 HTTP 304 响应。

分辨率

如需让 Edge 界面为 Private Cloud 跟踪 Edge 的专用 IP 地址,请在 ui.properties 中设置以下令牌:

conf_apigee-base_apigee.feature.enabletraceforinternaladdresses="true"

如需设置此属性,请执行以下操作:

  1. 通过编辑器打开 ui.properties 文件。 如果该文件不存在,请创建一个。
    vi /opt/apigee/customer/application/ui.properties
  2. 将以下属性设置为 true:
    conf_apigee-base_apigee.feature.enabletraceforinternaladdresses="true"
  3. 将所做的更改保存到 ui.properties
  4. 请确保属性文件归“apigee”用户所有:
    chown apigee:apigee /opt/apigee/customer/application/ui.properties
  5. 重启 Edge 界面:
    /opt/apigee/apigee-service/bin/apigee-service edge-ui restart

Edge 界面现在可以访问跟踪工具中的专用 IP 地址。

如需稍后禁止界面通过专用 IP 地址跟踪请求,请修改 ui.properties 以将该属性设置为 false,然后重启 Edge 界面。

如需了解详情,请参阅 允许边缘界面访问本地 IP 地址