IVP Internet Value Provider IVP Co. Ltd.IVP Internet Value Provider IVP Co. Ltd.

  • タイトル

Nginxリバースプロキシ+キャッシュ検証 目的と検証方法

 | 

Nginxリバースプロキシとキャッシュ機能を利用する目的

最近のショッピングサイトでは、画像を多用する傾向が強くなってきており
スマートフォンユーザーの増加や新商品発売日、バーゲンセールなどによるアクセス増大でwebサーバのCPU使用率が
高くなり易く、サイトが表示できなくなるケースが増加しています。
そこで、キャッシュサーバーを使用してWebサーバのリソース消費を緩和出来るかを検証する為に
Nginxでキャッシュサーバーを構築し、Jmeterによる負荷試験を実施してキャッシュサーバーの効果を検証しました。

 

今回の検証で使用するツール

今回はIISで作られたサイトに対して検証を行うので、Windowsのパフォーマンスカウンターを使用してサーバのリソースの使用状況を計測します。

Nginxの設定

80番ポートでNginxでリクエストを受け、jpg,png,js,css等の静的ファイルならキャッシュで返答させて、
それ以外の動的コンテンツは8080番ポートでリバースプロキシ先のサーバに返答させる様に設定しています。
また、ERS(弊社のECシステム)のHTMLヘッダーの”Cache-Control”が”private”となっているため
“proxy_ignore_headers”で”Cache-Control”を無視する設定にしています。
セキュリティの観点で考えると本来はこのような設定をすべきではありませんが、この設定をしないと画像がキャッシュされないため
今回は検証のためにあえてこの様な設定にしております。
なお、動的コンテンツをキャッシュさせると、他人のマイページなどが表示される可能性があるため、実運用のサーバでは
動的コンテンツをキャッシュさせない様にした方が安全です。

Nginxのキャッシュは強力なため、デフォルトの状態でキャッシュをクリアするにはサーバにログインし
キャッシュディレクトリ配下を全て削除する必要があります。
モジュールを追加すれば定期的に削除させることが可能になります。
また、指定したページのみキャッシュさせないようにHTMLヘッダーに”Cache-Control: no-cache”を自動的に追加させる方法もあります。

 

■負荷試験での調査項目

①本機のサーバ負荷のみを見ます。(この場合の本機とはサイトが実際に動いてるサーバ)
 CPU負荷とネットワークの送信容量(byte/sent)を調査

②次にNginxサーバを本機のフロントに起き、動的コンテンツのみ本機側に返答させるようにして
 本機のサーバ負荷が①で行った調査より負荷が下がっているかどうかを確認