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 データベース操作ツールインストール

推薦する

大規模な Vue.js プロジェクトの構築と維持のための 10 のベスト プラクティス

目次1. スロットを使用してコンポーネントを理解しやすくし、より強力にする2. Vuexストアを正し...

Nginxリバースプロキシ設定でプレフィックスが削除される

nginx をリバース プロキシとして使用する場合、リクエストをそのまま次のサービスに転送するだけで...

EasyUEFI を使用して Windows 10 で USB ドライブなしで Ubuntu 18 をインストールする

1. BIOSを確認するまず、コンピュータの起動モードを確認します。win+R と入力し、msinf...

Element-UIの10の驚くべきトリックのまとめ

目次el-scrollbar スクロールバーel-uploadはクリックをシミュレートしますel-s...

Web コンテンツ ページを作成するための 9 つの実用的なヒント

コンテンツ1. 読者に留まる理由を与える。ウェブページを面白く魅力的なものにしましょう。しかし、まず...

mysql の追加、削除、変更、クエリの基本ステートメント

文法以下は、MySQL テーブルにデータを挿入するための INSERT INTO コマンドの一般的な...

シンプルなページング効果を実現するjQuery+Ajax

この記事では、ページング効果を実現するためのjquery+Ajaxの具体的なコードを参考までに紹介し...

jsはシングルクリックでテーブルを変更することを実装します

Pure jsは、参照用にワンクリックで編集可能なテーブル(トランスクリプトに似たもの)を実装してい...

MySQLにおけるrow_numberの実装プロセス

1. 背景一般的に、データ ウェアハウス環境では、row_number 関数を使用して特定のディメン...

MySQL シリーズ: MySQL リレーショナル データベースの基本概念

目次1. 基本概念2. データベース管理技術の開発3. リレーショナルデータベース(RDBMS)の概...

Windows 10 + mysql 8.0.11 zipインストールチュートリアルの詳細

準備する: MySQL 8.0 Windows zip パッケージのダウンロード アドレス: htt...

Linux システムで Java 環境変数を設定する方法

Java環境変数を設定するここで、環境変数は etc/profile に設定され、つまり、すべてのユ...

Vueは画像切り替え効果を実現

この記事の例では、画像切り替え効果を実現するためのVueの具体的なコードを参考までに共有しています。...

MySQL に接続されている IP アドレスを表示する方法の例

具体的な方法:まずコマンドプロンプトを開きます。次に、[ mysql -u root -p ] コマ...

水平ヒストグラムを作成するための MySQL ソリューション

序文ヒストグラムは、RDBMS によって提供される基本的な統計情報です。最も一般的に使用されるのは、...