您正在查看 Apigee Edge 說明文件。
查看 Apigee X 說明文件。 資訊
問題
在「Edge for Private Cloud」(私有雲) 中,當在 Edge UI 中追蹤 API 時,追蹤記錄視窗的「Status」欄中會顯示 HTTP 304 回應:
錯誤訊息
沒有任何錯誤訊息 - API Proxy 呼叫實際上會傳回成功回應,例如 HTTP 200。但是 Edge UI 的追蹤視窗會顯示 HTTP 304 回應,且不會收集任何追蹤資料。
可能原因
在 Private Cloud 的 Edge 中,Edge UI 會嘗試追蹤透過私人 IP 位址存取的 API Proxy。
Edge UI 中的追蹤工具能夠將 API 要求傳送至任何網址。在將 Edge UI 與其他內部服務共同託管的部署情境中,惡意使用者可能會濫用追蹤記錄工具,透過私人 IP 位址 (例如 localhost 或 127.0.0.1) 向服務發出要求。
在實際工作環境中,您通常會保留預設值,以防止使用者追蹤私人 IP 位址。舉例來說,這就是 Edge UI 公開版本的部署方式。
不過,如果是內部開發或測試環境,您可以覆寫這個預設值,讓 API 開發人員追蹤任何 IP 位址。一般來說,開發/測試環境的防火牆往往位於不允許公開存取的防火牆後方。
注意: 最佳做法是,建議您保留預設值,防止在開發/測試環境中追蹤私人 IP 位址的追蹤記錄存取權,除非您遇到必須啟用私人 IP 位址的情況。
原因:嘗試透過私人 IP 位址存取 API Proxy
根據預設,Edge 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 位址呼叫 API Proxy (視為私人 IP 位址):
curl http://127.0.0.1:9001/myapiproxy
在這個呼叫的追蹤視窗中,即使 curl 指令傳回成功,您仍會看到 HTTP 304 回應。
解析度
如要讓 Edge UI 追蹤 Edge 的 Edge 私人 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 UI:
/opt/apigee/apigee-service/bin/apigee-service edge-ui restart
Edge UI 現在可以在追蹤記錄工具中存取私人 IP 位址。
日後如要停用 UI 以停止透過私人 IP 位址追蹤要求,請編輯 ui.properties
將屬性設為 false
,然後重新啟動 Edge UI。
相關文件 (選用)
詳情請參閱「 允許邊緣 UI 存取本機 IP 位址」。