WordPressサイトをインストールした後、通常はサイト速度向上のためにキャッシュプラグインをインストールします。
Nginx FastCGI Page Cacheは、NginxレベルでPHPによって生成されたウェブページのコピーを保存する技術です。他のWordPressキャッシュプラグインと比較して、Nginx FastCGI Page Cacheはより高速で効率的です。唯一の違いは、設定が少し複雑なことです。
幸いなことに、現在は宝塔パネル(宝塔インストールチュートリアル)のようなシンプルなVPS管理ツールがあり、初心者でもこのチュートリアルに従って設定できます。
注意深く読み、慎重に操作してください。Naibaと一緒に、WordPressでNginx FastCGIキャッシュを有効化する手順を一歩ずつ進めていきましょう。
Nginx FastCGIキャッシュ単一サイト設定手順
キャッシュフォルダの作成
宝塔パネル管理画面にログインし、ファイル管理画面に入ります。/www/wwwroot/[あなたのサイトフォルダ]/wp-content/cache/ の下にnginxフォルダを作成します。

サイトのNGINX設定ファイルの修正

サイトリストに戻り、設定したいサイトの「設定」を選択し、上図のようなポップアップ画面で「設定ファイル」を選択し、以下の内容を追加します。
#NGINX缓存配置1开始(blog.naibabiji.com替换为你网站正确文件夹名称)
fastcgi_cache_path /www/wwwroot/blog.naibabiji.com/wp-content/cache/ levels=1:2 keys_zone=blogcache:200m max_size=10g inactive=2h use_temp_path=off;
fastcgi_cache_key "$scheme$request_method$host$request_uri";
fastcgi_ignore_headers Cache-Control Expires Set-Cookie;
#NGINX缓存配置1结束ヒント、保存時にエラーが発生し、/www/server/panel/vhost/nginx/0.fastcgi_cache.conf の競合が表示された場合は、直接0.fastcgi_cache.confを削除してください。
次に、SSL証明書設定の下に以下のコードを追加します:
#NGINX缓存配置2开始
set $skip_cache 0;
if ($request_method = POST) {
set $skip_cache 1;
}
if ($query_string != "") {
set $skip_cache 1;
}
if ($request_uri ~* "/wp-admin/|/xmlrpc.php|wp-.*.php|^/feed/*|/tag/.*/feed/*|index.php|/.*sitemap.*\.(xml|xsl)") {
set $skip_cache 1;
}
if ($http_cookie ~* "comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_no_cache|wordpress_logged_in") {
set $skip_cache 1;
}
#NGINX缓存配置2结束PHPソフトウェア設定ファイルの修正
宝塔のファイル機能を使用して、/www/server/nginx/conf フォルダに入り、ご自身のPHPバージョンに対応するファイルを選択します。例えば、Naiba サイト構築ノートでは現在PHP8.4を使用しているため、enable-php-84.confファイルを編集します。

最後の閉じ括弧の前に以下の内容を追加します
fastcgi_cache blogcache;
fastcgi_cache_valid 200 301 302 2h;
fastcgi_cache_use_stale error timeout updating invalid_header http_500 http_503;
fastcgi_cache_min_uses 1;
fastcgi_cache_lock on;
fastcgi_cache_bypass $skip_cache;
fastcgi_no_cache $skip_cache;
add_header X-FastCGI-Cache $upstream_cache_status;これらのコードを追加した後、宝塔パネルのバックエンドに戻り、ソフトウェアストア→インストール済み→nginxをクリックして再起動または設定の再読み込みを行います。エラーがなければ、コードの追加は正しく行われています。
設定が有効かテスト

プライベートブラウジングモードを使用するか、アカウントからログアウトし、ブラウザで右クリック→「要素の検証」を選択するか、ショートカットキーF12を押します。「ネットワーク」タブをクリックし、「名前」の下からアクセスしたURLを選択すると、「ヘッダー」内に「X-Fastcgi-Cache HIT」が表示されれば、キャッシュが有効になっています。
また、作成したキャッシュフォルダを直接確認することもできます。新しいフォルダが出現していれば、同様に有効であることを示しています。
同一サーバーでの複数サイトへのNginx FastCGIキャッシュ設定
サーバー上に複数のWordPressサイトがあり、すべてにNginx FastCGIキャッシュを設定する必要がある場合は、以下の手順に従ってください。
1. 設定するウェブサイトのディレクトリ下にnginxフォルダを作成します。例:/www/wwwroot/blog.naibabiji.com/wp-content/cache/nginx
2. /www/server/nginx/conf 下のnginx.phpファイルを開き、`access_log off;` の下に以下のコードを挿入します(URLは自身のものに置き換えてください)。
# FastCGI缓存配置 - WordPress网站专用
# blog.naibabiji.com缓存区域
fastcgi_cache_path /www/wwwroot/blog.naibabiji.com/wp-content/cache/nginx
levels=1:2
keys_zone=blog_cache:100m
max_size=2g
inactive=2h
use_temp_path=off;
# wordpressjc.com缓存区域
fastcgi_cache_path /www/wwwroot/wordpressjc.com/wp-content/cache/nginx
levels=1:2
keys_zone=wordpressjc_cache:100m
max_size=2g
inactive=2h
use_temp_path=off;
# quhenet.com缓存区域
fastcgi_cache_path /www/wwwroot/quhenet.com/wp-content/cache/nginx
levels=1:2
keys_zone=quhenet_cache:100m
max_size=2g
inactive=2h
use_temp_path=off;
# FastCGI缓存相关变量设置
fastcgi_cache_key "$scheme$request_method$host$request_uri";
fastcgi_cache_use_stale error timeout invalid_header http_500;ヒント、保存時にエラーが発生し、/www/server/panel/vhost/nginx/0.fastcgi_cache.conf の競合が表示された場合は、直接0.fastcgi_cache.confを削除してください。
3. /www/server/nginx/conf フォルダ内に wordpress-fastcgi-cache.conf ファイルを作成し、内容は以下の通りとします:
# WordPress FastCGI缓存配置模板
# 适用于所有WordPress网站的通用缓存规则
# 设置不缓存的条件
set $skip_cache 0;
# POST请求不缓存
if ($request_method = POST) {
set $skip_cache 1;
}
# URL包含查询字符串不缓存
if ($query_string != "") {
set $skip_cache 1;
}
# WordPress管理后台和特殊页面不缓存
if ($request_uri ~* "/wp-admin/|/xmlrpc.php|wp-.*.php|^/feed/*|/tag/.*/feed/*|index.php|/.*sitemap.*\.(xml|xsl)") {
set $skip_cache 1;
}
# 已登录用户不缓存
if ($http_cookie ~* "comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_no_cache|wordpress_logged_in") {
set $skip_cache 1;
}
# WooCommerce相关页面不缓存(如果有电商功能)
if ($request_uri ~* "/(cart|my-account|checkout|addons)") {
set $skip_cache 1;
}
# 包含购物车Cookie不缓存
if ($http_cookie ~* "woocommerce_items_in_cart|woocommerce_cart_hash") {
set $skip_cache 1;
}4. 引き続き /www/server/nginx/conf ディレクトリ内で、設定が必要な各ウェブサイトに対応する enable-php-84.conf ファイル(サイトが使用しているPHPバージョンに対応するファイル)をそれぞれ作成します。ファイル名はNaibaの設定を参考にできます:
- enable-php-84-cache-quhenet.conf
- enable-php-84-cache-wordpressjc.conf
- enable-php-84-cache-blog.conf
作成後、各ファイルのコードで異なる部分は1箇所のみです。完全なコードは以下の通り:
location ~ [^/]\.php(/|$) {
try_files $uri =404;
fastcgi_pass unix:/tmp/php-cgi-84.sock;
fastcgi_index index.php;
include fastcgi.conf;
include pathinfo.conf;
# FastCGI缓存配置(替换下方blog_cache为第2步创建的keys_zone值)
fastcgi_cache blog_cache;
fastcgi_cache_valid 200 301 302 2h;
fastcgi_cache_use_stale error timeout updating invalid_header http_500 http_503;
fastcgi_cache_min_uses 1;
fastcgi_cache_lock on;
fastcgi_cache_bypass $skip_cache;
fastcgi_no_cache $skip_cache;
# 忽略上游的缓存控制头(重要!)
fastcgi_ignore_headers Cache-Control Expires Set-Cookie;
# 添加缓存状态头部信息(用于调试)
add_header X-FastCGI-Cache $upstream_cache_status;
add_header X-Cache-Skip $skip_cache;
}5. /www/server/panel/vhost/nginx フォルダに移動し、対応する仮想ホスト設定ファイルを編集します。
既存の `include enable-php-84.conf;` という行を以下の内容に置き換えます。
# WordPress FastCGI缓存配置 - 必须在PHP配置之前
include /www/server/nginx/conf/wordpress-fastcgi-cache.conf;
include enable-php-84-cache-blog.conf;
# 上面这个php文件记得修改为你网站对应的文件6. 操作完了後、nginxを再起動し、フロントエンドでテストするか、キャッシュディレクトリに新しいフォルダが出現しているか直接確認します。
キャッシュのクリア方法
サイトの管理画面(ダッシュボード)で、プラグイン→新規追加、と進み、„Nginx cache“を検索してインストールし、有効化します。

その後、プラグインの設定画面に入り、「Cache Zone Path」の後の入力欄に、キャッシュディレクトリ `/www/wwwroot/blog.naibabiji.com/wp-content/cache/nginx` を入力します。
他のプラグインとの連携
サイトのアクセス速度とパフォーマンスをさらに向上させたい場合は、以下のプラグインと併用することもできます。
1. Redis Object Cache
このプラグインを使用するには、まず宝塔パネルのバックエンドで、アプリストア→インストール済み→サイトが使用しているPHPを選択し、redis拡張をインストールした後、訪問者が使用できるようにします。
2. Autoptimize
このプラグインは、静的リソースを圧縮・統合することができます。
他のキャッシュプラグインをインストールする必要はありません。すでにNginx FastCGIキャッシュを使用しているため、他のキャッシュプラグインをインストールしても効果がなく、衝突を引き起こす可能性があります。

コメントは終了しました
この記事のコメント機能は終了しています。ご質問がある場合は、他の方法でお問い合わせください。