2026年5月22日
2026年5月22日
WordPressのNginxプロキシキャッシュを設定する方法
はじめに
WordPressサイトのパフォーマンスを向上させるためには、コンテンツ配信ネットワーク(CDN)やデータベース最適化だけでなく、ウェブサーバーのキャッシュ設定も重要です。Nginxは非常に高速で効率的なウェブサーバーとして知られていますが、プロキシキャッシュ機能を使用することで、さらにパフォーマンスを向上させることができます。
症状・背景
このテーマが必要になる主な場面:
- ロードタイムの短縮を望む場合
- 高トラフィック環境でレスポンスタイムを改善したい場合
- サーバー負荷を軽減し、リソース効率を向上させたい場合
手順・設定方法
ステップ1: Nginxのプロキシキャッシュモジュールを有効にする
# モジュールが既にインストールされているか確認
nginx -V 2>&1 | grep -- '--with-http_proxy_module'
# モジュールがない場合、Nginxを再構築してプロキシキャッシュモジュールを有効にする
sudo apt-get install build-essential libpcre3-dev zlib1g-dev libssl-dev -y
cd /usr/local/src/
wget http://nginx.org/download/nginx-1.21.6.tar.gz
tar zxvf nginx-1.21.6.tar.gz
cd nginx-1.21.6
./configure --with-http_proxy_module --with-http_ssl_module
make && sudo make install
# Nginxの設定ファイルを編集してプロキシキャッシュ設定を追加する
sudo nano /etc/nginx/nginx.conf
ステップ2: プロキシキャッシュの基本設定
# プロキシキャッシュディレクトリとそのサイズを指定
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=1g inactive=60m use_temp_path=off;
server {
listen 80;
server_name example.com www.example.com;
location / {
proxy_pass http://localhost:8080; # プロキシ先のサーバーに送信
proxy_cache my_cache; # 使用するキャッシュゾーンを指定
proxy_cache_valid 200 301 302 10m; # ステータスコードごとの有効期間
}
}
ステップ3: プロキシキャッシュの高度な設定
# キャッシュを強制的にクリアする設定
location / {
proxy_pass http://localhost:8080;
proxy_cache my_cache;
proxy_cache_valid 200 15m; # HTTPステータスコード200のキャッシュ有効期間
add_header X-Proxy-Cache $upstream_cache_status; # キャッシュ状態を返すヘッダー追加
if ($request_uri ~* "\.(jpg|jpeg|png|gif)$") {
proxy_cache_valid 200 30m; # 静的ファイルのキャッシュ有効期間
}
}
ステップ4: プロキシキャッシュの監視とトラブルシュート
# Nginxのステータスモジュールを有効にしてプロキシキャッシュ状態を確認する
sudo apt-get install nginx-module-status -y
nano /etc/nginx/conf.d/status.conf # 新しい設定ファイルを作成
注意事項
- <実践的な注意点1>: プロキシキャッシュのサイズや有効期間は、サイトの特性に応じて適切な値を設定する必要がある。
- <実践的な注意点2>: Nginxの再起動が必要な場合が多いので、設定変更後は必ずNginxをリロードまたは再起動すること。
- <セキュリティ上の注意>: プロキシキャッシュが外部からアクセス可能にならないように、適切にファイアウォールやACL(アクセス制御リスト)を設定する。
- <パフォーマンス/運用上の注意>: 静的ファイルのキャッシュは長期間有効にするが、動的なページは短い間隔で更新される可能性が高いので頻繁にクリアすること。
まとめ
1. <キー1>: プロキシキャッシュを適切なサイズと期間に設定することで、サーバーリソースの消費を最小限に抑えつつパフォーマンス向上が可能。
2. <キー2>: キャッシュゾーンは複数作成でき、異なるサイトやページごとに最適なキャッシュ設定を行うことが容易である。
3. <キー3>: プロキシキャッシュの有効化により、リクエスト処理時間が短縮され、サイトのユーザビリティが向上する。
4. <キー4>: Nginxのプロキシキャッシュモジュールは高度な設定が可能であるため、サイトの特性に合わせて柔軟に対応できる。
5. <キー5>: キャッシュクリアや監視機能を適切に利用することで、キャッシュの一貫性とパフォーマンス向上を両立させることができる。
関連記事: