追蹤工作階段中的 HTTP 304 回應

查看 Apigee Edge 說明文件。
前往 Apigee X說明文件
資訊

問題

在 Private Cloud 中,在 Edge UI 中追蹤 API 時,您會看到 追蹤記錄視窗的「Status」欄中的 HTTP 304 回應:

錯誤訊息

沒有錯誤訊息 - API Proxy 呼叫實際上傳回成功 例如 HTTP 200不過,Edge UI 中的追蹤記錄視窗會顯示 HTTP 304 回應,且不會收集追蹤資料。

可能原因

在 Private Cloud 適用的 Edge 中,Edge UI 會嘗試追蹤 API Proxy 透過私人 IP 位址存取

Edge UI 中的追蹤工具可以傳送 API 要求至任何網址。 在部署情境中,Edge UI 與其他內部的內部代管 惡意使用者可能會濫用追蹤工具向 或向 Google Cloud 透過私人 IP 位址 (例如 localhost 或 127.0.0.1) 建立私人 IP 位址

在正式環境中,您通常會保留預設值,以防止 防止使用者追蹤私人 IP 位址 例如 Edge UI 的公開版本

不過,若是內部開發或測試環境,您可以 允許您的 API 開發人員追蹤任何 IP 位址。 通常,開發/測試環境會位在不會受監控的防火牆後面 。

注意: 最佳做法是保留預設值 可防止在開發/測試環境中追溯存取私人 IP 位址的情形。 否則你在遇到這種情況時 就必須啟用這項功能

原因:嘗試透過私人 IP 位址存取 API Proxy

根據預設,Edge 的 Edge UI 會防止使用者 追蹤透過私人 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 位址:

curl http://127.0.0.1:9001/myapiproxy

在這個呼叫的追蹤記錄視窗中,即使 curl 指令傳回成功,您仍會看到 HTTP 304 回應。

解析度

如要讓 Edge UI 追蹤 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 UI:
    /opt/apigee/apigee-service/bin/apigee-service edge-ui restart

Edge UI 現在可以在追蹤工具中存取私人 IP 位址。

日後如要禁止 UI 透過私人 IP 位址追蹤要求, 編輯 ui.properties,將屬性設為 false 和 然後重新啟動 Edge UI

如需詳細資訊,請參閱 允許 Edge UI 存取本機 IP 位址