Nginx

如何檢查 Nginx 規則中是否存在響應頭?

  • April 27, 2019

事實證明,在 Nginx 中為請求設置重寫規則非常容易。對於響應,沒有那麼多(至少對我來說不是)。如果未設置響應的 Content-Length 標頭,我想從響應中刪除 Content-Type 標頭。我已經安裝了NginxHttpHeadersMoreModule,所以這應該允許我刪除標頭,但我似乎找不到使用 Nginx 配置中的規則檢查響應的 Content-Length 標頭是否存在的方法。任何有關如何執行此操作的建議將不勝感激!

看起來有人在 Stack Overflow 上問過這個問題,每個發送的標頭都有一個名為 $sent_http_my_custom_header 的變數。

有關詳細資訊,請參閱https://web.archive.org/web/20140606142058/http://wiki.nginx.org/HttpCoreModule#.24sent_http_HEADER

參考:https ://stackoverflow.com/questions/12431496/nginx-read-custom-header-from-upstream-server

location我猜你想在一個塊中像下面這樣:

if ($sent_http_content_length ~ '') {
   more_clear_headers Content-Type
   ...
}

$sent_http_name

(免責聲明:我沒有嘗試過;我只是瀏覽了文件,因為我發現這個問題很有趣。這可能會也可能不會起作用)

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