プロジェクト

全般

プロフィール

Nginxの設定

設定ファイルの記述

定義済み変数

ホスト名を表す変数の違い

変数名 内容
$host リクエストヘッダにHostがあればその値、なければserver_nameと同一
$hostname Nginxを実行しているホスト名
$http_name nameリクエストヘッダの値(ダッシュがアンダースコアに、大文字が小文字に置換される
$server_name リクエストを受けた仮想ホストのserver_name、複数指定しているときは最初の定義

エラー対処

警告 an upstream response is buffered to a temporary file /var/cache/nginx/proxy_temp/...

nginxのerror.logに大量にこの警告メッセージが出ている場合、抑止したくなります。
この警告は、メモリバッファが一杯になったのでファイルに吐き出しているという内容です。デフォルトのメモリバッファの大きさは実行している計算機/OSのページサイズと同じ値(4KBか8KB)となっており、これを大きくすることで解消できます(proxy_buffer_sizeパラメータ)。

proxy_buffer_sizeを変更するときは、proxy_buffersも整合を持たせて変更する必要があります。

パフォーマンスチューニング

リバースプロキシ

バッファリング

プロキシのパフォーマンスの鍵がバッファリングです。

次の項目を調整します。

ディレクティブ デフォルト値 内容
proxy_buffer_size
proxy_buffering
proxy_buffers 8 4k
proxy_busy_buffers_size
  • proxy_buffersのデフォルト値の8 4kは、コネクションごとに8個の4KBバッファ(32KB)を使用します。Nginxに1GBのメモリを割り当てているならば、32768コネクションまでサポート可能となります。平均レスポンスサイズが900KBだとすると、proxy_buffersの値を30 32kとするとコネクションごとに30個の32KBバッファ(960KB)を使用するので、Nginxに1GBのメモリが割り当てられているとして1092コネクションまでサポート可能になります。