Nginx にCache Purgeモジュールを追加する
notoです。
Nginxはリバースプロキシを利用してキャッシュを行う機能がデフォルトで組み込まれていますが、そのキャッシュを削除する機能がありません。
そこで、サードパーティーモジュールのひとつである Cache Purgeモジュールを組み込んでみたいと思います。このモジュールを組み込むことで、キャッシュの削除を行うことができます。
インストール環境
- CentOS 6.2(64bit)
- Nginx 1.2.0
- Cache Purge 1.5.0
Nginxが既にインストールされている場合
NginxはApacheのように動的にモジュールの追加ができないので、もう一度ビルドし直す必要があります。既にNginxがインストールされている場合は、無停止で切り替える方法もあるのですが、まだ稼働もしていないのでアンインストールしちゃいます。
Nginxのアンインストール
1 2 3 |
|
Cache Purgeモジュールを追加する
rpmbuildしてインストールを行います。
rpmbuild環境の作成
必要なパッケージのインストール
1
|
|
ビルドユーザーの作成
rpmbuildはシステムにダメージを与える可能性があるので、専用のユーザーを作成します。
1 2 3 |
|
sudoの設定
sudoできるよう設定を行います。
1 2 |
|
ビルド環境の準備
1 2 |
|
設定ファイルの作成
rpmbuildの際に参照される設定ファイルを新規作成します。
1
|
|
これでrpmbuildの準備が完了です。
src.rpmのダウンロード & インストール
ここからは、全てrpmbuilderで作業を行います。
1 2 3 |
|
最新ソースのダウンロード
Nginx と、Nginx Cache Purgeモジュールの最新のソースコードをダウンロードします。
1 2 3 |
|
specファイルの編集
specファイルの編集を行います。行うことはCache Purgeモジュールを追加することと、必要のないモジュールの無効化です。 specファイルはsrc.rpmをインストールした際に、~/rpm/SPECS 以下に作成されるのでこれを編集していきます。
1
|
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
|
最初は without-http_limit_zone_moduleを指定していたのですが、ビルドを行ったら以下のエラーが出力されたので、without-http_limit_conn_moduleに変更しました。
1 2 |
|
ビルド & インストール
1 2 3 4 |
|
確認
ngx_cache_purgeが組み込まれているか確認します。
1 2 |
|
参考
apache のかわりにnginxを使ってみる(1)-3 リバースプロキシのキャッシュ削除モジュール nginx cache purge を組み込む