X-Accel

概要

X-accel はバックエンドから返されたヘッダによって決定される場所への内部的なリダイレクトを許可します。

これにより、バックエンドで認証やロギングなどを処理し、NGINX にリダイレクトされた場所からエンドユーザへのコンテンツの提供を処理されることができるため、バックエンドを解放して他のリクエストを処理できます。この機能は一般的にX-Sendfileとして知られています。

この機能は、ディレクティブに依らず特別な方法でupstreamからのヘッダを処理するという点で標準のNGINXモジュールと少し異なります。URLを付けてx-accel.redirect ヘッダを送信することで動作します。NGINX はこのURIが通常のリクエストであったかのようにlocationに対して適合します。そして定義されたroot + ヘッダ内で渡されたURI に適合するlocationを提供するでしょう。

設定例。aliasとrootの違いに注意してください。

# Will serve /var/www/files/myfile.tar.gz
# When passed URI /protected_files/myfile.tar.gz
location /protected_files {
  internal;
  alias /var/www/files;
}

# Will serve /var/www/protected_files/myfile.tar.gz
# When passed URI /protected_files/myfile.tar.gz
location /protected_files {
  internal;
  root /var/www;
}

他のサーバへプロキシすることもできます。

location /protected_files {
  internal;
  proxy_pass http://127.0.0.2;
}

特別なヘッダ

X-Accel-Redirect

構文:X-Accel-Redirect uri
デフォルト:X-Accel-Redirect void

NGINXが提供するURIを設定する

X-Accel-Buffering

構文:X-Accel-Buffering [yes|no]
デフォルト:X-Accel-Buffering yes

この接続のためのproxyバッファリングを設定する。これを"no"に設定すると、CometとHTTPストリーミングアプリケーションに適したバッファ無し応答を許可します。これを"yes"に設定すると、応答をキャッシュできるようになるでしょう。

X-Accel-Charset

構文:X-Accel-Charset charset
デフォルト:X-Accel-Charset utf-8

ファイルのcharsetを設定します。

X-Accel-Expires

構文:X-Accel-Expires [off|seconds]
デフォルト:X-Accel-Expires off

使用された場合は、内部的なNGINXキャッシュ内のファイルの有効期限を設定します。

X-Accel-Limit-Rate

構文:X-Accel-Limit-Rate bytes [bytes|off]
デフォルト:X-Accel-Limit-Rate off

この1つのリクエストのためのレート制限を設定します。Off は制限無しを意味します。

inserted by FC2 system