代理快取動作

除了《代理請求 URI 動作》和《代理請求報頭動作》中介紹代理動作,OpenResty Edge 還提供了更多的代理動作。

啟用代理快取重新校驗

這個動作用於啟用:使用帶有 “If-Modified-Since “和 “If-None-Match “頭域的條件性請求,對過期的快取專案進行重新驗證。

使用代理快取舊資料

這個動作用於決定在哪些情況下可以在與代理伺服器的通訊中使用陳舊的快取響應。例如,當請求出現 504 錯誤時,使用舊的快取進行響應。

繞過代理快取

啟用該動作 (proxy-cache-bypass) 後,響應將不會從快取中讀取。

這個動作在 26.6.15-1 首次引入。

代理不快取

啟用該動作 (proxy-no-cache) 後,來自上游伺服器的響應將不會被儲存到快取中。

這個動作在 26.6.15-1 首次引入。

跟隨 HTTP 重定向

跟隨 HTTP 重定向動作的配置項

該動作會跟隨當前上游返回的 HTTP 或 HTTPS 重定向。當上遊響應包含非空的 Location 響應頭時,該動作會處理 301302303307308 狀態碼。每個請求最多跟隨一次重定向;如果重定向目標再次返回 3xx 響應, Edge 會將該響應直接返回給客戶端。

優勢與適用場景

該動作由 Edge 節點代替客戶端跟隨上游重定向,並將重定向目標的響應直接 返回給客戶端。這樣可以避免額外的客戶端重定向往返,簡化客戶端邏輯,並減少 向客戶端暴露上游重定向目標的需要。

常見的適用場景包括:

  • 上游將檔案下載、圖片或其他靜態資源重定向到可信的物件儲存或 CDN 主機。
  • 上游服務遷移了路徑或主機名,但希望客戶端仍透過原有 Edge 端點獲取最終響應。
  • 代理 API 或下載服務時,客戶端無法或不應直接訪問重定向目標。

可以配置以下選項:

  • 憑據策略:控制是否將原請求中的憑據請求頭轉發給重定向目標。 Same Origin 是預設值,僅當協議、主機名和有效埠均未改變時保留憑據; Omit 始終移除憑據;Include 即使在跨源重定向時也會保留憑據。
  • 敏感請求頭:可選。用於將應用自定義的請求頭加入憑據請求頭集合, 這些請求頭會遵循上述憑據策略。內建憑據請求頭包括 AuthorizationProxy-AuthorizationCookieCookie2
  • 允許的重定向主機:可選的目標主機名允許列表。如果重定向改變了主機名, 只有當目標主機名在列表中時才會跟隨,否則請求以 502 狀態碼失敗。 主機名未改變的重定向始終允許。留空時允許重定向到任意主機。

對於 303 響應,除 HEAD 外的請求方法會轉換為 GET,並移除請求體。 對於 301302 響應,POST 會轉換為 GET,並移除請求體。 其他組合(包括 307308)會保留原請求方法和請求體。

安全提示: 該動作允許跨源重定向,上游可以讓 Edge 節點訪問其能夠到達的 任意 HTTP 或 HTTPS 地址。僅應為可信上游啟用該動作,或將“允許的重定向主機” 設定為儘可能嚴格的允許列表。僅在明確需要且確認安全時,才應在跨源重定向中使用 Include 轉發憑據。

該動作在 OpenResty Edge 26.9.1-1 中首次引入。有關完整的行為說明,請參閱 EdgeLang follow-http-redirect 文件。