Nginx

設置 Nginx 選擇性地過期 epoch 標頭

  • September 21, 2021

我的伺服器上有一個包含圖像的文件夾,該文件夾用於通過 CDN 為移動應用程序提供服務,並與用於管理傳遞到應用程序的內容的後端 web 應用程序一起使用。對於後者 - 後端 Web 應用程序 - 我想確保從相關文件夾傳遞的圖像不會被瀏覽器記憶體,因此我可以在其作者更新後立即在後端應用程序中顯示更新版本。CDN 提取相同的圖像以傳送到移動應用程序,並在 30 分鐘內設置刷新,因此它不會傳送過時的內容圖像。

我的問題 - 我如何配置 Nginx 以便expires epoch它只為來自 webapp 的請求注入標頭。這個問題的部分答案在這個 SO 執行緒中。有沒有辦法修改那裡提出的解決方案,以便在註入標頭之前檢查引用者?因此,例如,所有來自https://example.com/backoffice的請求都會使用標頭響應,expires epoch而其他請求(例如來自 CDN 拉取請求的請求)則不會。

一個簡單if的在這裡就足夠了:

server {

   location ... {

       if ($http_referer ~* ^https://example.com/backoffice) {
           expires epoch;
       }

   }

}

請記住,一般來說,您的 Web 應用程序最好做出記憶體決策並使用適當的指令進行響應。

引用自:https://serverfault.com/questions/1078147