Nginx操作応答ヘッダー情報の実装

Nginx操作応答ヘッダー情報の実装

前提条件: ヘッダー情報操作をサポートするには、ngx_http_headers_module モジュールをコンパイルする必要があります。

ヘッダーを追加

これは、レスポンス ヘッダーにカスタム ヘッダー情報を追加することを意味します。命令は add_header name value [always]; です。location {} コンテキストの場合、http {}、server {}、location {} で使用できます。
これは、応答ステータス コードが 200、201 (1.3.10)、204、206、301、302、303、304、307 (1.1.16、1.0.13)、または 308 (1.13.0) の場合にのみ有効になります。always パラメータが指定されている場合、ステータス コードに関係なく、すべての応答でヘッダーが強制的に返されます。

注: 複数の add_header 命令を宣言できます。現在のブロックに add_header がない場合に限り、親によって宣言された add_header 情報が継承されます。

例えば:

サーバー{
 ヘッダーを123に追加します。

 位置 / {
  ルート / パス;
 }

 場所 /download/ {
  ヘッダーを追加します b 321;
 }
}

上記の例では、/download/ ルートにアクセスすると、b 321 などのヘッダーが返され、/ ルートにアクセスすると、親によって指定された a 123 などのヘッダーが返されます。

トレーラーを追加

これは、レスポンス ヘッダーの末尾にカスタム ヘッダー情報を追加することを意味します。命令は add_trailer name value [always]; です。http {}、server {}、location {}、if in location {} コンテキストで使用できます。レスポンス ステータス コードが 200、201、206、301、302、303、307、または 308 の場合にのみ有効になります。always パラメータが指定されている場合、すべてのレスポンスでヘッダー情報は無視されます。

注: 複数の add_trailer 命令を宣言できます。現在のブロックに add_trailer がない場合に限り、親によって宣言された add_trailer 情報が継承されます。

例については add_header を参照してください。

期限切れ

応答ヘッダーの「Expires」および「Cache-Control」フィールドを有効化または無効化、追加または変更します。ディレクティブは、expires [modified] time; または expires epoch | max | off; で、応答ステータス コードが 200、201 (1.3.10)、204、206、301、302、303、304、307 (1.1.16、1.0.13)、または 308 (1.13.0) の場合に有効になります。time パラメータには、正または負の時間を指定できます。 「有効期限」フィールドの時間は、現在の時間と time で指定された時間の合計として計算されます。 modified パラメータが使用されている場合 (0.7.0、0.6.32)、時間はファイルの変更時刻と time ディレクティブで指定された時刻の合計として計算されます。

さらに、「@」プレフィックスを使用して時刻を指定することもできます (0.7.9、0.6.34): expires @15h30m;

「Cache-Control」フィールドの内容は、指定された時点のシンボルによって異なります。

  • 負の時間 - 「Cache-Control: no-cache」
  • 時間は正の数または 0 です - "Cache-Control: max-age=t" t はディレクティブで指定された時間 (秒単位) です

epoch パラメータは、「Expires」を「Thu, 01 Jan 1970 00:00:01 GMT」に設定し、「Cache-Control」を「no-cache」に設定します。

max パラメータは、「Expires」を「Thu, 31 Dec 2037 23:55:55 GMT」に設定し、「Cache-Control」を 10 年に設定します。

off パラメータは、「Expires」および「Cache-Control」応答ヘッダー フィールドの追加または変更を無効にします。

最後の引数値には変数を含めることができます (1.7.9): 例:

マップ $sent_http_content_type $expires {
 デフォルトはオフです。
 アプリケーション/pdf 42d;
 ~画像/最大;
}

期限切れ $expires;

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Golangはhttpレスポンスヘッダーを設定し、レコードを埋めます
  • PHP ダウンロード ファイル、レスポンス ヘッダーを追加する簡単な例
  • PHP でショートリンクジャンプ後の実際のアドレスと応答ヘッダー情報を取得する方法

<<:  JavaScript進捗管理の詳しい説明

>>:  MySQL 5.7.21 解凍版インストール Navicat データベース操作ツールインストール

推薦する

Dockerスペースがいっぱいでコンテナに入れない場合の解決策

トラブル発生が突然で、業務も迫っていたため、現場のスクリーンショットを撮る時間がありませんでしたので...

Vueは右上隅の時間表示のリアルタイム更新を実装します

この記事の例では、右上隅の時間表示のリアルタイム更新を実現するためのVueの具体的なコードを紹介しま...

dockerでifconfigが利用できない問題を解決する

最近、docker を学習していたときに、docker コンテナ内のネットワーク状態を照会するために...

モバイルプラットフォーム開発におけるメタタグの適用の詳細な説明

デスクトップ プラットフォームの Web レイアウトのメタ タグは誰もがよく知っています。これは常に...

VMware15/16 VMwareのロックを解除してMacOSをインストールする詳細な手順

VMware バージョン: VMware-workstation-full-16 VMware バー...

CSS を使用して、左側に固定幅、右側に適応幅を持つ 2 列レイアウトを実装する複数の方法

CSS を使用して、左側に固定幅、右側に適応幅を持つ 2 列レイアウトを実装する 7 つの方法。コー...

Linux の一般的なハードディスク管理コマンドの紹介

目次1. dfコマンド2. duコマンド3. fsckファイルシステム修復コマンド4. ディスクステ...

Linuxファイアウォールiptablesの詳細な紹介、設定方法と事例

1.1 iptablesファイアウォールの概要Netfilter/Iptables (以下、Ipta...

jsは徐々に増加するデジタルアニメーションを実現します

目次背景コンテナを固定し、数字を上にスクロールすることで、スクロールホイールと同様の効果を実現します...

HTMLでのフォーム送信の実装

フォーム送信コード1. ソースコード分析 <!DOCTYPE html> <htm...

ウィンドウ環境設定Mysql 5.7.21 windowx64.zip無料インストール版チュートリアル詳細説明

1. 公式サイトのmysqlダウンロードページからmysql-5.7.21-windowx64.zi...

React構成サブルーティングの実装

1. コンポーネント First.js にはサブコンポーネントがあります。 './Admin...

js の getBoundingClientRect() メソッドの詳細な説明

1. getBoundingClientRect() 分析getBoundingClientRect...

DockerとDocker-Composeの使用例

Docker は、アプリケーションをより速く配信するのに役立つオープンソースのコンテナ エンジンです...

マインスイーパゲームを実装するための jQuery プラグイン (3)

この記事では、jQueryプラグインを使用してマインスイーパゲームを実装する方法に関する3番目の記事...