モジュール ngx_http_uwsgi_module
ngx_http_uwsgi_module
モジュールは、uwsgiサーバーへのリクエストの受け渡しを可能にします。
設定例
location / { include uwsgi_params; uwsgi_pass localhost:9000; }
ディレクティブ
構文 |
uwsgi_bind |
---|---|
デフォルト | — |
コンテキスト |
http , server , location |
uwsgiサーバーへの発信接続を、指定されたローカルIPアドレスとオプションのポート(1.11.2)から発生させます。パラメータ値には変数を含めることができます(1.3.12)。特別な値off
(1.3.12)は、前の構成レベルから継承されたuwsgi_bind
ディレクティブの効果をキャンセルし、システムがローカルIPアドレスとポートを自動割り当てできるようにします。
transparent
パラメーター(1.11.0)を使用すると、uwsgiサーバーへの発信接続を、クライアントの実際のIPアドレスなど、ローカルではないIPアドレスから発生させることができます。
uwsgi_bind $remote_addr transparent;
このパラメーターを機能させるには、通常、スーパーユーザー権限でnginxワーカープロセスを実行する必要があります。Linuxでは、transparent
パラメーターが指定されている場合、ワーカープロセスはマスタープロセスからCAP_NET_RAW
機能を継承するため、(1.13.8)は必要ありません。uwsgiサーバーからのネットワークトラフィックをインターセプトするようにカーネルルーティングテーブルを構成する必要もあります。
構文 |
uwsgi_buffer_size |
---|---|
デフォルト |
uwsgi_buffer_size 4k|8k; |
コンテキスト |
http , server , location |
uwsgiサーバーから受信した応答の最初の部分を読み取るために使用されるバッファのsize
を設定します。この部分には通常、小さな応答ヘッダーが含まれます。デフォルトでは、バッファサイズは1つのメモリーページと同じです。これは、プラットフォームに応じて4Kまたは8Kのいずれかです。ただし、小さくすることもできます。
構文 |
uwsgi_buffering |
---|---|
デフォルト |
uwsgi_buffering on; |
コンテキスト |
http , server , location |
uwsgiサーバーからの応答のバッファリングを有効または無効にします。
バッファリングが有効になっている場合、nginxはuwsgiサーバーから可能な限り早く応答を受信し、uwsgi_buffer_sizeおよびuwsgi_buffersディレクティブで設定されたバッファに保存します。応答全体がメモリに収まらない場合は、その一部をディスク上の一時ファイルに保存できます。一時ファイルへの書き込みは、uwsgi_max_temp_file_sizeおよびuwsgi_temp_file_write_sizeディレクティブによって制御されます。
バッファリングが無効になっている場合、応答は受信されるとすぐにクライアントに同期的に渡されます。nginxは、uwsgiサーバーから応答全体を読み取ろうとはしません。nginxがサーバーから一度に受信できるデータの最大サイズは、uwsgi_buffer_sizeディレクティブによって設定されます。
バッファリングは、 "X-Accel-Buffering"応答ヘッダーフィールドに "yes
"または "no
"を渡すことによって有効または無効にすることもできます。この機能は、uwsgi_ignore_headersディレクティブを使用して無効にできます。
構文 |
uwsgi_buffers |
---|---|
デフォルト |
uwsgi_buffers 8 4k|8k; |
コンテキスト |
http , server , location |
単一の接続のために、uwsgiサーバーからの応答の読み取りに使用されるバッファのnumber
とsize
を設定します。デフォルトでは、バッファサイズは1つのメモリーページと同じです。これは、プラットフォームに応じて4Kまたは8Kのいずれかです。
構文 |
uwsgi_busy_buffers_size |
---|---|
デフォルト |
uwsgi_busy_buffers_size 8k|16k; |
コンテキスト |
http , server , location |
uwsgiサーバーからの応答のバッファリングが有効になっている場合、応答が完全に読み取られていない間に、クライアントに応答を送信するために使用できるバッファの合計size
を制限します。その間、残りのバッファは応答の読み取りに使用でき、必要に応じて、応答の一部を一時ファイルにバッファリングできます。デフォルトでは、size
は、uwsgi_buffer_sizeおよびuwsgi_buffersディレクティブで設定された2つのバッファのサイズによって制限されます。
構文 |
uwsgi_cache |
---|---|
デフォルト |
uwsgi_cache off; |
コンテキスト |
http , server , location |
キャッシュに使用される共有メモリゾーンを定義します。同じゾーンを複数の場所で使用できます。パラメーター値には変数を含めることができます(1.7.9)。off
パラメーターは、前の構成レベルから継承されたキャッシュを無効にします。
構文 |
uwsgi_cache_background_update |
---|---|
デフォルト |
uwsgi_cache_background_update off; |
コンテキスト |
http , server , location |
このディレクティブはバージョン1.11.10で登場しました。
期限切れのキャッシュアイテムを更新するためのバックグラウンドサブリクエストの開始を許可し、同時に古いキャッシュされた応答をクライアントに返します。更新中に古いキャッシュされた応答の使用を許可する必要があることに注意してください。
構文 |
uwsgi_cache_bypass |
---|---|
デフォルト | — |
コンテキスト |
http , server , location |
応答がキャッシュから取得されない条件を定義します。文字列パラメーターの少なくとも1つの値が空でなく、 "0"に等しくない場合、応答はキャッシュから取得されません
uwsgi_cache_bypass $cookie_nocache $arg_nocache$arg_comment; uwsgi_cache_bypass $http_pragma $http_authorization;
uwsgi_no_cacheディレクティブと一緒に使用できます。
構文 |
uwsgi_cache_key |
---|---|
デフォルト | — |
コンテキスト |
http , server , location |
キャッシュのキーを定義します。例:
uwsgi_cache_key localhost:9000$request_uri;
構文 |
uwsgi_cache_lock |
---|---|
デフォルト |
uwsgi_cache_lock off; |
コンテキスト |
http , server , location |
このディレクティブはバージョン1.1.12で登場しました。
有効にすると、uwsgi_cache_keyディレクティブに従って識別された新しいキャッシュ要素を設定するために、一度に1つのリクエストのみがuwsgiサーバーにリクエストを渡すことが許可されます。同じキャッシュ要素の他のリクエストは、キャッシュに応答が表示されるか、この要素のキャッシュロックがuwsgi_cache_lock_timeoutディレクティブで設定された時間まで解放されるのを待ちます。
構文 |
uwsgi_cache_lock_age |
---|---|
デフォルト |
uwsgi_cache_lock_age 5s; |
コンテキスト |
http , server , location |
このディレクティブはバージョン1.7.8で登場しました。
新しいキャッシュ要素を設定するためにuwsgiサーバーに渡された最後の要求が、指定されたtime
の間完了しなかった場合、もう1つの要求がuwsgiサーバーに渡される可能性があります。
構文 |
uwsgi_cache_lock_timeout |
---|---|
デフォルト |
uwsgi_cache_lock_timeout 5s; |
コンテキスト |
http , server , location |
このディレクティブはバージョン1.1.12で登場しました。
uwsgi_cache_lockのタイムアウトを設定します。time
が期限切れになると、リクエストはuwsgiサーバーに渡されますが、応答はキャッシュされません。
1.7.8より前では、応答はキャッシュされる可能性がありました。
構文 |
uwsgi_cache_max_range_offset |
---|---|
デフォルト | — |
コンテキスト |
http , server , location |
このディレクティブはバージョン1.11.6で登場しました。
バイト範囲リクエストのオフセットをバイト単位で設定します。範囲がオフセットを超える場合、範囲リクエストはuwsgiサーバーに渡され、応答はキャッシュされません。
構文 |
uwsgi_cache_methods |
---|---|
デフォルト |
uwsgi_cache_methods GET HEAD; |
コンテキスト |
http , server , location |
クライアントリクエストメソッドがこのディレクティブにリストされている場合、応答はキャッシュされます。"GET
"および "HEAD
"メソッドは常にリストに追加されますが、明示的に指定することをお勧めします。uwsgi_no_cacheディレクティブも参照してください。
構文 |
uwsgi_cache_min_uses |
---|---|
デフォルト |
uwsgi_cache_min_uses 1; |
コンテキスト |
http , server , location |
応答がキャッシュされるまでのリクエストのnumber
を設定します。
構文 |
uwsgi_cache_path |
---|---|
デフォルト | — |
コンテキスト |
http |
キャッシュのパスとその他のパラメーターを設定します。キャッシュデータはファイルに保存されます。キャッシュ内のファイル名は、キャッシュキーにMD5関数を適用した結果です。levels
パラメーターは、キャッシュの階層レベルを定義します。1〜3まで、各レベルは値1または2を受け入れます。たとえば、次の構成では
uwsgi_cache_path /data/nginx/cache levels=1:2 keys_zone=one:10m;
キャッシュ内のファイル名は次のようになります
/data/nginx/cache/c/29/b7f54b2df7773722d382f4809d65029c
キャッシュされた応答は最初一時ファイルに書き込まれ、次にファイルの名前が変更されます。バージョン0.8.9以降、一時ファイルとキャッシュを異なるファイルシステムに配置できます。ただし、この場合、安価な名前変更操作の代わりに、ファイルが2つのファイルシステム間でコピーされることに注意してください。したがって、特定の場所では、キャッシュと一時ファイルを保持するディレクトリの両方を同じファイルシステムに配置することをお勧めします。一時ファイルのディレクトリは、use_temp_path
パラメーター(1.7.10)に基づいて設定されます。このパラメーターが省略されているか、値on
に設定されている場合、指定された場所のuwsgi_temp_pathディレクティブで設定されたディレクトリが使用されます。値がoff
に設定されている場合、一時ファイルはキャッシュディレクトリに直接配置されます。
さらに、すべてのアクティブなキーとデータに関する情報は、共有メモリゾーンに保存され、そのname
とsize
はkeys_zone
パラメーターで構成されます。1メガバイトのゾーンには、約8千のキーを保存できます。
商用サブスクリプションの一部として、共有メモリゾーンには拡張キャッシュの情報も保存されるため、同じ数のキーに対してより大きなゾーンサイズを指定する必要があります。たとえば、1メガバイトのゾーンには、約4千のキーを保存できます。
inactive
パラメーターで指定された時間内にアクセスされないキャッシュデータは、その鮮度に関係なくキャッシュから削除されます。デフォルトでは、inactive
は10分に設定されています。
特別な「キャッシュマネージャー」プロセスは、max_size
パラメータで設定された最大キャッシュサイズと、キャッシュを持つファイルシステム上のmin_free
(1.19.1)パラメータで設定された最小空き容量を監視します。サイズが超過した場合、または十分な空き容量がない場合、最も最近使用されていないデータを削除します。データの削除は、manager_files
、manager_threshold
、manager_sleep
パラメータ(1.11.5)で設定されたイテレーションで行われます。1回のイテレーションで、manager_files
を超えるアイテムは削除されません(デフォルトは100)。1回のイテレーションの実行時間は、manager_threshold
パラメータ(デフォルトは200ミリ秒)で制限されます。イテレーションの間には、manager_sleep
パラメータ(デフォルトは50ミリ秒)で設定された一時停止が行われます。
開始から1分後、特別な「キャッシュローダー」プロセスがアクティブになります。このプロセスは、ファイルシステムに保存されている以前にキャッシュされたデータに関する情報をキャッシュゾーンにロードします。ロードもイテレーションで行われます。1回のイテレーションで、loader_files
を超えるアイテムはロードされません(デフォルトは100)。さらに、1回のイテレーションの実行時間は、loader_threshold
パラメータ(デフォルトは200ミリ秒)で制限されます。イテレーションの間には、loader_sleep
パラメータ(デフォルトは50ミリ秒)で設定された一時停止が行われます。
さらに、以下のパラメータは、当社の商用サブスクリプションの一部として利用可能です。
-
purger
=on
|off
- ワイルドカードキーに一致するキャッシュエントリをキャッシュパーガーによってディスクから削除するかどうかを指示します(1.7.12)。パラメータを
on
に設定すると(デフォルトはoff
)、すべてのキャッシュエントリを永続的にイテレーション処理し、ワイルドカードキーに一致するエントリを削除する「キャッシュパーガー」プロセスがアクティブになります。 -
purger_files
=number
- 1回のイテレーション中にスキャンされるアイテム数を設定します(1.7.12)。デフォルトでは、
purger_files
は10に設定されています。 -
purger_threshold
=number
- 1回のイテレーションの実行時間を設定します(1.7.12)。デフォルトでは、
purger_threshold
は50ミリ秒に設定されています。 -
purger_sleep
=number
- イテレーション間の一時停止を設定します(1.7.12)。デフォルトでは、
purger_sleep
は50ミリ秒に設定されています。
バージョン1.7.3、1.7.7、および1.11.10では、キャッシュヘッダーの形式が変更されました。以前にキャッシュされたレスポンスは、新しいnginxバージョンにアップグレードした後、無効と見なされます。
構文 |
uwsgi_cache_purge string ...; |
---|---|
デフォルト | — |
コンテキスト |
http , server , location |
このディレクティブはバージョン1.5.7で登場しました。
リクエストがキャッシュパージリクエストと見なされる条件を定義します。文字列パラメータの少なくとも1つの値が空ではなく、「0」と等しくない場合、対応するキャッシュキーを持つキャッシュエントリが削除されます。正常な操作の結果は、204(No Content)レスポンスを返すことで示されます。
パージリクエストのキャッシュキーがアスタリスク(「*
」)で終わる場合、ワイルドカードキーに一致するすべてのキャッシュエントリがキャッシュから削除されます。ただし、これらのエントリは、非アクティブのために削除されるか、キャッシュパーガー(1.7.12)によって処理されるか、クライアントがアクセスしようとするまで、ディスク上に残ります。
設定例
uwsgi_cache_path /data/nginx/cache keys_zone=cache_zone:10m; map $request_method $purge_method { PURGE 1; default 0; } server { ... location / { uwsgi_pass backend; uwsgi_cache cache_zone; uwsgi_cache_key $uri; uwsgi_cache_purge $purge_method; } }
この機能は、当社の商用サブスクリプションの一部として利用可能です。
構文 |
uwsgi_cache_revalidate |
---|---|
デフォルト |
uwsgi_cache_revalidate off; |
コンテキスト |
http , server , location |
このディレクティブはバージョン1.5.7で登場しました。
「If-Modified-Since」および「If-None-Match」ヘッダーフィールドを使用した条件付きリクエストを使用して、期限切れのキャッシュアイテムの再検証を有効にします。
構文 |
uwsgi_cache_use_stale |
---|---|
デフォルト |
uwsgi_cache_use_stale off; |
コンテキスト |
http , server , location |
uwsgiサーバーとの通信中にエラーが発生した場合に、古いキャッシュされたレスポンスを使用できるケースを決定します。ディレクティブのパラメータは、uwsgi_next_upstreamディレクティブのパラメータと一致します。
error
パラメータは、リクエストを処理するuwsgiサーバーを選択できない場合にも、古いキャッシュされたレスポンスの使用を許可します。
さらに、updating
パラメータは、現在更新中の場合でも古いキャッシュされたレスポンスの使用を許可します。これにより、キャッシュデータの更新時にuwsgiサーバーへのアクセス数を最小限に抑えることができます。
古いキャッシュされたレスポンスの使用は、レスポンスが古くなった後、指定された秒数に対してレスポンスヘッダーで直接有効にすることもできます(1.11.10)。これは、ディレクティブパラメータを使用するよりも優先度が低くなります。
- 「Cache-Control」ヘッダーフィールドの「stale-while-revalidate」拡張機能により、現在更新中の場合でも古いキャッシュされたレスポンスを使用できます。
- 「Cache-Control」ヘッダーフィールドの「stale-if-error」拡張機能により、エラーが発生した場合に古いキャッシュされたレスポンスを使用できます。
新しいキャッシュ要素の入力時にuwsgiサーバーへのアクセス数を最小限に抑えるために、uwsgi_cache_lockディレクティブを使用できます。
構文 |
uwsgi_cache_valid [ |
---|---|
デフォルト | — |
コンテキスト |
http , server , location |
異なるレスポンスコードのキャッシュ時間を設定します。たとえば、次のディレクティブは
uwsgi_cache_valid 200 302 10m; uwsgi_cache_valid 404 1m;
コード200および302のレスポンスに対して10分のキャッシュ、コード404のレスポンスに対して1分のキャッシュを設定します。
キャッシュtime
のみが指定されている場合
uwsgi_cache_valid 5m;
200、301、および302のレスポンスのみがキャッシュされます。
さらに、any
パラメータを指定して、任意のレスポンスをキャッシュできます。
uwsgi_cache_valid 200 302 10m; uwsgi_cache_valid 301 1h; uwsgi_cache_valid any 1m;
キャッシュのパラメータは、レスポンスヘッダーで直接設定することもできます。これは、ディレクティブを使用してキャッシュ時間を設定するよりも優先度が高くなります。
- 「X-Accel-Expires」ヘッダーフィールドは、レスポンスのキャッシュ時間を秒単位で設定します。ゼロの値は、レスポンスのキャッシュを無効にします。値が
@
プレフィックスで始まる場合、レスポンスがキャッシュされる可能性のある、エポックからの絶対時間を秒単位で設定します。 - ヘッダーに「X-Accel-Expires」フィールドが含まれていない場合、キャッシュのパラメータはヘッダーフィールド「Expires」または「Cache-Control」で設定できます。
- ヘッダーに「Set-Cookie」フィールドが含まれている場合、そのようなレスポンスはキャッシュされません。
- ヘッダーに特別な値「
*
」を持つ「Vary」フィールドが含まれている場合、そのようなレスポンスはキャッシュされません(1.7.7)。ヘッダーに別の値を持つ「Vary」フィールドが含まれている場合、そのようなレスポンスは、対応するリクエストヘッダーフィールドを考慮してキャッシュされます(1.7.7)。
これらのレスポンスヘッダーフィールドの1つ以上の処理は、uwsgi_ignore_headersディレクティブを使用して無効にできます。
構文 |
uwsgi_connect_timeout |
---|---|
デフォルト |
uwsgi_connect_timeout 60s; |
コンテキスト |
http , server , location |
uwsgiサーバーとの接続を確立するためのタイムアウトを定義します。このタイムアウトは通常75秒を超えることはできないことに注意する必要があります。
構文 |
uwsgi_force_ranges |
---|---|
デフォルト |
uwsgi_force_ranges off; |
コンテキスト |
http , server , location |
このディレクティブはバージョン1.7.7で登場しました。
uwsgiサーバーからのキャッシュされたレスポンスとキャッシュされていないレスポンスの両方で、これらのレスポンスの「Accept-Ranges」フィールドに関係なく、バイト範囲サポートを有効にします。
構文 |
uwsgi_hide_header |
---|---|
デフォルト | — |
コンテキスト |
http , server , location |
デフォルトでは、nginxは、uwsgiサーバーのレスポンスからクライアントにヘッダーフィールド「Status」および「X-Accel-…」を渡しません。uwsgi_hide_header
ディレクティブは、渡されない追加のフィールドを設定します。逆に、フィールドの通過を許可する必要がある場合は、uwsgi_pass_headerディレクティブを使用できます。
構文 |
uwsgi_ignore_client_abort |
---|---|
デフォルト |
uwsgi_ignore_client_abort off; |
コンテキスト |
http , server , location |
クライアントがレスポンスを待たずに接続を閉じた場合に、uwsgiサーバーとの接続を閉じる必要があるかどうかを決定します。
構文 |
uwsgi_ignore_headers |
---|---|
デフォルト | — |
コンテキスト |
http , server , location |
uwsgiサーバーからの特定のレスポンスヘッダーフィールドの処理を無効にします。次のフィールドを無視できます:「X-Accel-Redirect」、「X-Accel-Expires」、「X-Accel-Limit-Rate」(1.1.6)、「X-Accel-Buffering」(1.1.6)、「X-Accel-Charset」(1.1.6)、「Expires」、「Cache-Control」、「Set-Cookie」(0.8.44)、および「Vary」(1.7.7)。
無効にされていない場合、これらのヘッダーフィールドの処理には次の効果があります。
- 「X-Accel-Expires」、「Expires」、「Cache-Control」、「Set-Cookie」、および「Vary」は、レスポンスのキャッシュのパラメータを設定します。
- 「X-Accel-Redirect」は、指定されたURIへの内部リダイレクトを実行します。
- 「X-Accel-Limit-Rate」は、クライアントへのレスポンスの送信のレート制限を設定します。
- 「X-Accel-Buffering」は、レスポンスのバッファリングを有効または無効にします。
- 「X-Accel-Charset」は、レスポンスの目的の文字セットを設定します。
構文 |
uwsgi_intercept_errors |
---|---|
デフォルト |
uwsgi_intercept_errors off; |
コンテキスト |
http , server , location |
300以上のコードを持つuwsgiサーバーレスポンスをクライアントに渡すか、error_pageディレクティブを使用した処理のためにnginxにインターセプトしてリダイレクトするかを決定します。
構文 |
uwsgi_limit_rate |
---|---|
デフォルト |
uwsgi_limit_rate 0; |
コンテキスト |
http , server , location |
このディレクティブはバージョン1.7.7で登場しました。
uwsgiサーバーからのレスポンスの読み取り速度を制限します。rate
は、1秒あたりのバイト数で指定されます。ゼロの値は、レート制限を無効にします。制限はリクエストごとに設定されるため、nginxが同時にuwsgiサーバーへの2つの接続を開くと、全体のレートは指定された制限の2倍になります。この制限は、uwsgiサーバーからのレスポンスのバッファリングが有効になっている場合にのみ機能します。パラメータ値には変数を含めることができます(1.27.0)。
構文 |
uwsgi_max_temp_file_size |
---|---|
デフォルト |
uwsgi_max_temp_file_size 1024m; |
コンテキスト |
http , server , location |
uwsgiサーバーからのレスポンスのバッファリングが有効になっており、レスポンス全体がuwsgi_buffer_sizeおよびuwsgi_buffersディレクティブで設定されたバッファに収まらない場合、レスポンスの一部を一時ファイルに保存できます。このディレクティブは、一時ファイルの最大size
を設定します。一時ファイルに一度に書き込まれるデータのサイズは、uwsgi_temp_file_write_sizeディレクティブによって設定されます。
ゼロの値は、一時ファイルへのレスポンスのバッファリングを無効にします。
この制限は、キャッシュされるか、ディスクに保存されるレスポンスには適用されません。
構文 |
uwsgi_modifier1 |
---|---|
デフォルト |
uwsgi_modifier1 0; |
コンテキスト |
http , server , location |
uwsgiパケットヘッダーのmodifier1
フィールドの値を設定します。
構文 |
uwsgi_modifier2 |
---|---|
デフォルト |
uwsgi_modifier2 0; |
コンテキスト |
http , server , location |
uwsgiパケットヘッダーのmodifier2
フィールドの値を設定します。
構文 |
uwsgi_next_upstream |
---|---|
デフォルト |
uwsgi_next_upstream error timeout; |
コンテキスト |
http , server , location |
リクエストを次のサーバーに渡す必要があるケースを指定します。
error
- サーバーとの接続を確立しているとき、リクエストをサーバーに渡しているとき、またはレスポンスヘッダーを読み取っているときにエラーが発生しました。
timeout
- サーバーとの接続を確立しているとき、リクエストをサーバーに渡しているとき、またはレスポンスヘッダーを読み取っているときにタイムアウトが発生しました。
invalid_header
- サーバーが空または無効なレスポンスを返しました。
http_500
- サーバーがコード500のレスポンスを返しました。
http_503
- サーバーがコード503のレスポンスを返しました。
http_403
- サーバーがコード403のレスポンスを返しました。
http_404
- サーバーがコード404のレスポンスを返しました。
http_429
- サーバーがコード429のレスポンスを返しました(1.11.13)。
non_idempotent
- 通常、非冪等メソッド(
POST
、LOCK
、PATCH
)を持つリクエストは、リクエストがアップストリームサーバーに送信された場合、次のサーバーに渡されません(1.9.13)。このオプションを明示的に有効にすると、このようなリクエストを再試行できます。 off
- リクエストを次のサーバーに渡すことを無効にします。
リクエストを次のサーバーに渡すことができるのは、まだクライアントに何も送信されていない場合に限られることに注意する必要があります。つまり、レスポンスの転送中にエラーまたはタイムアウトが発生した場合、これを修正することは不可能です。
このディレクティブは、サーバーとの通信が失敗とみなされる条件も定義します。error
、timeout
、invalid_header
の場合は、ディレクティブで指定されていなくても、常に失敗とみなされます。http_500
、http_503
、http_429
の場合は、ディレクティブで指定されている場合にのみ失敗とみなされます。http_403
と http_404
の場合は、決して失敗とはみなされません。
次のサーバーへのリクエストの受け渡しは、試行回数と時間によって制限できます。
構文 |
uwsgi_next_upstream_timeout |
---|---|
デフォルト |
uwsgi_next_upstream_timeout 0; |
コンテキスト |
http , server , location |
このディレクティブはバージョン 1.7.5 で登場しました。
リクエストを次のサーバーに渡すことができる時間を制限します。0
の値を指定すると、この制限は無効になります。
構文 |
uwsgi_next_upstream_tries |
---|---|
デフォルト |
uwsgi_next_upstream_tries 0; |
コンテキスト |
http , server , location |
このディレクティブはバージョン 1.7.5 で登場しました。
リクエストを次のサーバーに渡すための試行回数を制限します。0
の値を指定すると、この制限は無効になります。
構文 |
uwsgi_no_cache |
---|---|
デフォルト | — |
コンテキスト |
http , server , location |
レスポンスがキャッシュに保存されない条件を定義します。文字列パラメータの少なくとも1つの値が空ではなく、かつ "0" と等しくない場合、レスポンスは保存されません。
uwsgi_no_cache $cookie_nocache $arg_nocache$arg_comment; uwsgi_no_cache $http_pragma $http_authorization;
uwsgi_cache_bypassディレクティブと一緒に使用できます。
構文 |
uwsgi_param |
---|---|
デフォルト | — |
コンテキスト |
http , server , location |
uwsgiサーバーに渡す必要があるパラメータ
を設定します。値
には、テキスト、変数、およびそれらの組み合わせを含めることができます。これらのディレクティブは、現在のレベルで uwsgi_param
ディレクティブが定義されていない場合にのみ、前の設定レベルから継承されます。
標準のCGI環境変数は、ディストリビューションで提供されるuwsgi_params
ファイルを参照して、uwsgiヘッダーとして提供する必要があります。
location / { include uwsgi_params; ... }
ディレクティブがif_not_empty
(1.1.11)で指定されている場合、そのパラメータの値が空でない場合にのみ、サーバーに渡されます。
uwsgi_param HTTPS $https if_not_empty;
構文 |
uwsgi_pass [ |
---|---|
デフォルト | — |
コンテキスト |
location , if in location |
uwsgiサーバーのプロトコルとアドレスを設定します。プロトコル
として、"uwsgi
" または "suwsgi
" (セキュアuwsgi、SSL上のuwsgi) を指定できます。アドレスは、ドメイン名またはIPアドレスとポートとして指定できます。
uwsgi_pass localhost:9000; uwsgi_pass uwsgi://localhost:9000; uwsgi_pass suwsgi://[2001:db8::1]:9090;
またはUNIXドメインソケットパスとして指定できます。
uwsgi_pass unix:/tmp/uwsgi.socket;
ドメイン名が複数のアドレスに解決される場合、それらはすべてラウンドロビン方式で使用されます。さらに、アドレスはサーバーグループとして指定できます。
パラメータ値には変数を含めることができます。この場合、アドレスがドメイン名として指定されている場合、その名前は記述されたサーバーグループの中で検索され、見つからない場合はリゾルバーを使用して決定されます。
セキュアuwsgiプロトコルは、バージョン1.5.8以降でサポートされています。
構文 |
uwsgi_pass_header |
---|---|
デフォルト | — |
コンテキスト |
http , server , location |
それ以外は無効になっているヘッダーフィールドを、uwsgiサーバーからクライアントに渡すことを許可します。
構文 |
uwsgi_pass_request_body |
---|---|
デフォルト |
uwsgi_pass_request_body on; |
コンテキスト |
http , server , location |
元のリクエストボディをuwsgiサーバーに渡すかどうかを示します。uwsgi_pass_request_headersディレクティブも参照してください。
構文 |
uwsgi_pass_request_headers |
---|---|
デフォルト |
uwsgi_pass_request_headers on; |
コンテキスト |
http , server , location |
元のリクエストのヘッダーフィールドをuwsgiサーバーに渡すかどうかを示します。uwsgi_pass_request_bodyディレクティブも参照してください。
構文 |
uwsgi_read_timeout |
---|---|
デフォルト |
uwsgi_read_timeout 60s; |
コンテキスト |
http , server , location |
uwsgiサーバーからのレスポンスの読み取りタイムアウトを定義します。タイムアウトは、レスポンス全体の転送ではなく、連続する2つの読み取り操作の間でのみ設定されます。uwsgiサーバーがこの時間内に何も送信しない場合、接続は閉じられます。
構文 |
uwsgi_request_buffering |
---|---|
デフォルト |
uwsgi_request_buffering on; |
コンテキスト |
http , server , location |
このディレクティブはバージョン 1.7.11 で登場しました。
クライアントのリクエストボディのバッファリングを有効または無効にします。
バッファリングが有効な場合、リクエスト全体がuwsgiサーバーに送信される前に、クライアントから読み取られます。
バッファリングが無効な場合、リクエストボディは受信されるとすぐにuwsgiサーバーに送信されます。この場合、nginxがすでにリクエストボディの送信を開始している場合、リクエストを次のサーバーに渡すことはできません。
元のリクエストボディを送信するためにHTTP/1.1チャンク転送エンコーディングが使用される場合、ディレクティブの値に関係なく、リクエストボディはバッファリングされます。
構文 |
uwsgi_send_timeout |
---|---|
デフォルト |
uwsgi_send_timeout 60s; |
コンテキスト |
http , server , location |
uwsgiサーバーへのリクエストの送信タイムアウトを設定します。タイムアウトは、リクエスト全体の転送ではなく、連続する2つの書き込み操作の間でのみ設定されます。uwsgiサーバーがこの時間内に何も受信しない場合、接続は閉じられます。
構文 |
uwsgi_socket_keepalive |
---|---|
デフォルト |
uwsgi_socket_keepalive off; |
コンテキスト |
http , server , location |
このディレクティブはバージョン 1.15.6 で登場しました。
uwsgiサーバーへの発信接続の「TCP keepalive」動作を構成します。デフォルトでは、ソケットにはオペレーティングシステムの設定が有効です。ディレクティブが値 "on
" に設定されている場合、SO_KEEPALIVE
ソケットオプションがソケットに対して有効になります。
構文 |
uwsgi_ssl_certificate |
---|---|
デフォルト | — |
コンテキスト |
http , server , location |
このディレクティブはバージョン1.7.8で登場しました。
セキュアuwsgiサーバーへの認証に使用される、PEM形式の証明書を含むファイル
を指定します。
バージョン 1.21.0 以降、変数名をファイル
名に使用できます。
構文 |
uwsgi_ssl_certificate_key |
---|---|
デフォルト | — |
コンテキスト |
http , server , location |
このディレクティブはバージョン1.7.8で登場しました。
セキュアuwsgiサーバーへの認証に使用される、PEM形式の秘密鍵を含むファイル
を指定します。
ファイル
の代わりにengine
:名前
:ID
という値を指定して(1.7.9)、指定されたID
を持つ秘密鍵をOpenSSLエンジン名前
からロードできます。
バージョン 1.21.0 以降、変数名をファイル
名に使用できます。
構文 |
uwsgi_ssl_ciphers |
---|---|
デフォルト |
uwsgi_ssl_ciphers DEFAULT; |
コンテキスト |
http , server , location |
このディレクティブはバージョン 1.5.8 で登場しました。
セキュアuwsgiサーバーへのリクエストで有効にする暗号スイートを指定します。暗号スイートは、OpenSSLライブラリで理解される形式で指定されます。
完全なリストは、「openssl ciphers
」コマンドを使用して表示できます。
構文 |
uwsgi_ssl_conf_command |
---|---|
デフォルト | — |
コンテキスト |
http , server , location |
このディレクティブはバージョン 1.19.4 で登場しました。
セキュアuwsgiサーバーとの接続を確立するときに、任意のOpenSSL構成コマンドを設定します。
このディレクティブは、OpenSSL 1.0.2以上を使用している場合にサポートされます。
同じレベルで複数の uwsgi_ssl_conf_command
ディレクティブを指定できます。これらのディレクティブは、現在のレベルで uwsgi_ssl_conf_command
ディレクティブが定義されていない場合にのみ、前の設定レベルから継承されます。
OpenSSLを直接構成すると、予期しない動作が発生する可能性があることに注意してください。
構文 |
uwsgi_ssl_crl |
---|---|
デフォルト | — |
コンテキスト |
http , server , location |
このディレクティブはバージョン 1.7.0 で登場しました。
セキュアuwsgiサーバーの証明書を検証するために使用される、失効した証明書(CRL)を含むPEM形式のファイル
を指定します。
構文 |
uwsgi_ssl_key_log パス; |
---|---|
デフォルト | — |
コンテキスト |
http , server , location |
このディレクティブはバージョン 1.27.2 で登場しました。
セキュアuwsgiサーバー接続のSSLキーのロギングを有効にし、キーログファイルのパスを指定します。キーは、Wiresharkと互換性のあるSSLKEYLOGFILE形式でログに記録されます。
このディレクティブは、商用サブスクリプションの一部として利用できます。
構文 |
uwsgi_ssl_name |
---|---|
デフォルト |
uwsgi_ssl_name host from uwsgi_pass; |
コンテキスト |
http , server , location |
このディレクティブはバージョン 1.7.0 で登場しました。
セキュアuwsgiサーバーの証明書を検証するために使用されるサーバー名を上書きし、セキュアuwsgiサーバーとの接続を確立するときにSNIを介して渡すことを許可します。
デフォルトでは、uwsgi_passからのホスト部分が使用されます。
構文 |
uwsgi_ssl_password_file |
---|---|
デフォルト | — |
コンテキスト |
http , server , location |
このディレクティブはバージョン1.7.8で登場しました。
秘密鍵のパスフレーズを含むファイル
を指定します。各パスフレーズは別々の行に指定します。パスフレーズは、キーをロードするときに順番に試行されます。
構文 |
uwsgi_ssl_protocols [ |
---|---|
デフォルト |
uwsgi_ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; |
コンテキスト |
http , server , location |
このディレクティブはバージョン 1.5.8 で登場しました。
セキュアuwsgiサーバーへのリクエストに対して指定されたプロトコルを有効にします。
TLSv1.3
パラメータは、1.23.4以降デフォルトで使用されます。
構文 |
uwsgi_ssl_server_name |
---|---|
デフォルト |
uwsgi_ssl_server_name off; |
コンテキスト |
http , server , location |
このディレクティブはバージョン 1.7.0 で登場しました。
セキュアuwsgiサーバーとの接続を確立するときに、TLS Server Name Indication拡張機能(SNI、RFC 6066)を介したサーバー名の受け渡しを有効または無効にします。
構文 |
uwsgi_ssl_session_reuse |
---|---|
デフォルト |
uwsgi_ssl_session_reuse on; |
コンテキスト |
http , server , location |
このディレクティブはバージョン 1.5.8 で登場しました。
セキュアuwsgiサーバーでの作業時にSSLセッションを再利用できるかどうかを決定します。ログにエラー「SSL3_GET_FINISHED:digest check failed
」が表示される場合は、セッションの再利用を無効にしてみてください。
構文 |
uwsgi_ssl_trusted_certificate |
---|---|
デフォルト | — |
コンテキスト |
http , server , location |
このディレクティブはバージョン 1.7.0 で登場しました。
セキュアuwsgiサーバーの証明書を検証するために使用される、信頼できるCA証明書を含むPEM形式のファイル
を指定します。
構文 |
uwsgi_ssl_verify |
---|---|
デフォルト |
uwsgi_ssl_verify off; |
コンテキスト |
http , server , location |
このディレクティブはバージョン 1.7.0 で登場しました。
セキュアuwsgiサーバーの証明書の検証を有効または無効にします。
構文 |
uwsgi_ssl_verify_depth |
---|---|
デフォルト |
uwsgi_ssl_verify_depth 1; |
コンテキスト |
http , server , location |
このディレクティブはバージョン 1.7.0 で登場しました。
セキュアuwsgiサーバーの証明書チェーンの検証深度を設定します。
構文 |
uwsgi_store |
---|---|
デフォルト |
uwsgi_store off; |
コンテキスト |
http , server , location |
ファイルをディスクに保存できるようにします。on
パラメータは、aliasまたはrootディレクティブに対応するパスを持つファイルを保存します。off
パラメータは、ファイルの保存を無効にします。さらに、変数を含む文字列
を使用して、ファイル名を明示的に設定できます。
uwsgi_store /data/www$original_uri;
ファイルの変更時刻は、受信した "Last-Modified" レスポンスヘッダーフィールドに従って設定されます。レスポンスは最初に一時ファイルに書き込まれ、次にファイルの名前が変更されます。バージョン0.8.9以降、一時ファイルと永続ストアを異なるファイルシステムに配置できます。ただし、この場合、安価な名前変更操作ではなく、2つのファイルシステム間でファイルがコピーされることに注意してください。したがって、特定の場所については、保存されたファイルと、uwsgi_temp_pathディレクティブで設定された一時ファイルを保持するディレクトリの両方を同じファイルシステムに配置することをお勧めします。
このディレクティブを使用して、変更不可能な静的ファイルのローカルコピーを作成できます。例:
location /images/ { root /data/www; error_page 404 = /fetch$uri; } location /fetch/ { internal; uwsgi_pass backend:9000; ... uwsgi_store on; uwsgi_store_access user:rw group:rw all:r; uwsgi_temp_path /data/temp; alias /data/www/; }
構文 |
uwsgi_store_access |
---|---|
デフォルト |
uwsgi_store_access user:rw; |
コンテキスト |
http , server , location |
新しく作成されたファイルとディレクトリのアクセス許可を設定します。例:
uwsgi_store_access user:rw group:rw all:r;
group
またはall
のアクセス許可が指定されている場合は、user
のアクセス許可を省略できます。
uwsgi_store_access group:rw all:r;
構文 |
uwsgi_temp_file_write_size |
---|---|
デフォルト |
uwsgi_temp_file_write_size 8k|16k; |
コンテキスト |
http , server , location |
uwsgiサーバーからのレスポンスの一時ファイルへのバッファリングが有効になっている場合、一時ファイルに一度に書き込まれるデータのサイズ
を制限します。デフォルトでは、サイズ
は、uwsgi_buffer_sizeおよびuwsgi_buffersディレクティブによって設定された2つのバッファによって制限されます。一時ファイルの最大サイズは、uwsgi_max_temp_file_sizeディレクティブによって設定されます。
構文 |
uwsgi_temp_path |
---|---|
デフォルト |
uwsgi_temp_path uwsgi_temp; |
コンテキスト |
http , server , location |
uWSGIサーバーから受信したデータを格納するための一時ファイルのディレクトリを定義します。指定されたディレクトリの下に、最大3レベルのサブディレクトリ階層を使用できます。例えば、以下の設定では、
uwsgi_temp_path /spool/nginx/uwsgi_temp 1 2;
一時ファイルは次のようになる可能性があります。
/spool/nginx/uwsgi_temp/7/45/00000123457
uwsgi_cache_path ディレクティブの use_temp_path
パラメータも参照してください。