您正在查看 Apigee Edge 文档。
前往 Apigee X 文档。 信息
问题
在 Edge for Private Cloud 中,当您在 Edge 界面中跟踪 API 时,会在跟踪窗口的状态列中看到 HTTP 304 响应:

错误消息
没有错误消息 - API 代理调用实际上返回了成功响应,例如 HTTP 200。不过,Edge 界面中的轨迹窗口会显示 HTTP 304 响应,并且未收集任何轨迹数据。
可能的原因
在 Edge for Private Cloud 中,Edge 界面尝试跟踪通过专用 IP 地址访问的 API 代理。
Edge 界面中的跟踪工具能够向任何网址发送 API 请求。在 Edge 界面与其他内部服务共同托管的部署方案中,恶意用户可能会滥用跟踪工具,通过专用 IP 地址(例如 localhost 或 127.0.0.1)向服务发出请求。
在生产环境中,您通常会保留默认设置,以防止用户能够跟踪专用 IP 地址。例如,Edge 界面的公开版本就是这样部署的。
不过,对于内部开发或测试环境,您可以替换此默认设置,以允许 API 开发者跟踪任何 IP 地址。通常,开发/测试环境位于不允许公开访问的防火墙后面。
注意: 作为最佳实践,您应保持默认设置不变,以防止对专用 IP 地址进行跟踪访问,即使在开发/测试环境中也是如此,除非您遇到必须启用它的情况。
原因:尝试通过专用 IP 地址访问 API 代理
默认情况下,Edge for Private Cloud 的 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 命令使用 IP 地址 127.0.0.1(被视为专用 IP 地址)调用 API 代理:
curl http://127.0.0.1:9001/myapiproxy
在此调用的跟踪窗口中,即使 curl 命令返回成功,您也会看到 HTTP 304 响应。
分辨率
如需使 Edge 界面能够跟踪 Edge for Private Cloud 的专用 IP 地址,请在 ui.properties 中设置以下令牌:
conf_apigee-base_apigee.feature.enabletraceforinternaladdresses="true"
如需设置此属性,请执行以下操作:
- 通过编辑器打开
ui.properties文件。 如果该文件不存在,请创建它。
vi /opt/apigee/customer/application/ui.properties
- 将以下属性设置为 true:
conf_apigee-base_apigee.feature.enabletraceforinternaladdresses="true"
- 将所做的更改保存到
ui.properties。 - 确保属性文件归“apigee”用户所有:
chown apigee:apigee /opt/apigee/customer/application/ui.properties
- 重启 Edge 界面:
/opt/apigee/apigee-service/bin/apigee-service edge-ui restart
Edge 界面现在可以在跟踪工具中访问专用 IP 地址。
如需稍后禁止界面通过专用 IP 地址跟踪请求,请修改 ui.properties 以将相应属性设置为 false,然后重启 Edge 界面。
相关文档(可选)
如需了解详情,请参阅 允许 Edge 界面访问本地 IP 地址。