すこぶる.net

技術系備忘録など

nginx

【Nginx】キャッシュ作成時のバックエンドへのリクエストをproxy_cache_lockで制限する

投稿日:2018年1月10日 更新日:

概要

Nginx でキャッシュの有効期限が切れたとき、一勢にリクエストがバックエンドに流れることになります。。
そうなると、当然バックエンドサーバの負荷が大きくなりサービス障害につながるので注意が必要です。
しかし、Nginx にはそれを解決するために proxy_cache_lock という設定がありバックエンドサーバへのリクエストを制限することができるので、ここで紹介したいと思います。

解決方法

Nginxには以下の設定項目が用意されている。

これによって、キャッシュミスした場合に同一リクエストに対してはひとつにまとめて、バックエンドへのリクエストを行ってくれます。
proxy_cach_lock_time は指定した時間、バックエンド(オリジンサーバ)から応答がなければもう一度リクエストを投げます。

急激なトラフィックがあるサイトに関してはこの設定は必ず入れたほうが良いと思われます。
Nginx は非常に優れたプロダクトなのでだいたいのことは解決できますね。

-nginx
-, ,

執筆者:

関連記事

Nginxでconfigチェックした時にSSLエラーがでる「SSL_CTX_use_PrivateKey_file」

Nginxの設定ファイルが正しく記述されているかテストするときに、「nginx -t」コマンドを実行しテストします。 その実行時、下記のようなSSLに関するエラーが出ました。 [crayon-6741 …

【Nginx】$upstream_cache_status-キャッシュステータスの見方

Nginx でキャッシュのステータスを確認する方法 まずNginxでキャッシュを使用している場合に、ユーザのリクエストに対して、キャッシュが効いているか確認する方法を紹介します。 やることは非常に簡単 …

HTTPS化に向けてWebサーバでSSL設定をするときのコツ

概要 Webサイトのセキュリティが案じられている現状で、各サイトのHTTPS(SSL化)への移行が急速に進んでいる。 GoogleもHTTPSサイトへの移行を推奨しており、SEO観点でも大きく影響して …

【Nginx】add_headerを複数箇所に記載すると消える(上書きされる)

Nginx でadd_headerを複数箇所に書く際の注意点 Nginxの設定ファイルでヘッダーを追加する場面は当然あると思います。 そんなとき server ディレクティブで add_header …

【Nginx】変数の中身を確認しデバッグする方法

Nginx で変数をログに出力する Nginx を使用していると、実際に変数の中身を確認して設定を組みたい、特定の変数の中身をログに出力して確かめたい!なんてことがあると思います。 そんなときに役立つ …