大規模 WP STAGING Remote Sync Backup で Varnish を回避する (Nginx Vhost 修正)

Remote Sync のリリースは、WP STAGING にとってマイルストーンです。異なるサーバー間で WordPress サイトを同期できるようにすることで、当社の歴史上最も要望の多かった機能の 1 つに取り組んでいます。

しかし、時には 30 GB を超えるような大量のデータを移動することは、独特のサーバー側の課題をもたらします。よくあるハードルの 1 つが Varnish Cache です。Varnish はサイトを高速化するのに優れていますが、大量データ転送時にはボトルネックとなり得ます。

問題: Varnish のバッファ制限

Remote Sync が開始されると、ソースサイトに圧縮された Backup ファイルが作成され、移行先にダウンロードされます。サーバーで Varnish が有効な場合、Nginx とアプリケーションの間に位置します。

Varnish にはオブジェクトサイズのデフォルト制限があることが多く (場合によっては 512MB と低い)、WP STAGING の Backup ファイルがこの制限を超えると、Varnish は接続を終了し、同期が失敗します。CloudPanel のようなコントロールパネルでパスを「除外」しても、Nginx は依然としてリクエストを Varnish 経由でプロキシするため、同じボトルネックにつながります。

解決策: Vhost 経由で Varnish を回避する

大きな Backup ファイルの安定した転送を保証するには、Nginx に WP STAGING の Backup ディレクトリに対して Varnish を完全に回避するよう指示する必要があります。これはサイトの Virtual Host (vhost) 構成を編集することで行います。

1. Backup パスを特定する

WP STAGING が一時的な同期ファイルを保存するデフォルトのディレクトリは次のとおりです: /wp-content/uploads/wp-staging/backups/

2. Nginx 設定を更新する

Nginx vhost ファイルに以下のスニペットを追加してください。このディレクティブは、この特定のフォルダへのリクエストを Varnish サービス (通常はポート 6081) をスキップして直接バックエンド (通常はポート 8080) に送信し、バッファリングを無効化するようサーバーに指示します。

Nginx

# Large WP STAGING backup files - BYPASS VARNISH
location ^~ /wp-content/uploads/wp-staging/backups/ {
    proxy_pass http://127.0.0.1:8080;
    proxy_buffering off;
    proxy_request_buffering off;
    proxy_set_header Host              $host;
    proxy_set_header X-Real-IP         $remote_addr;
    proxy_set_header X-Forwarded-For   $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    add_header Cache-Control "private, no-store" always;
}

なぜこれが機能するのか

  • proxy_pass を 8080 に: バックエンドポートを直接指すことで、Varnish レイヤーを完全に回避します。
  • proxy_buffering off: これにより、Nginx がファイルを提供する前に独自のキャッシュに「保存」しようとするのを防ぎます。10GB 以上のファイルには必須です。
  • ^~ 修飾子: このルールが他の正規表現マッチよりも優先されるようにし、除外が厳密に適用されることを保証します。

代替策: 一時的に無効化する

vhost ファイルの編集に不安がある場合、大規模な Remote Sync を開始する前にサーバー上で Varnish を一時的に無効化し、「Restore」フェーズが完了したら再度有効化できます。ただし、上記の vhost 方式が推奨される「設定して忘れる」解決策です。

Updated on 5月 23, 2026

Alaa Salama

著者: Alaa Salama

私は10年以上にわたりサポート分野で働いてきました。テクノロジーの中でも、人に寄り添う部分に大きなやりがいを感じているからです。複雑なWordPressの問題を解決するときも、ワークフローを効率化するためにカスタムプラグインやコードスニペットを開発するときも、私の目標は常に摩擦を減らし、人々がよりスマートに働けるようにすることです。自分が作った解決策によって、誰かの一日が少しでも良くなるのを見ることほど嬉しいことはありません。

オフラインのときでも、たいてい何かの「内部」をいじっています。サーバーの最適化やDIY電子工作に情熱を持っており、自由な時間にはスマートホームのプロジェクトやハードウェアの修理に取り組むことがよくあります。特に大切にしているのは、子どもたちと自宅の作業場で過ごす時間です。家の修理からクリエイティブなプロジェクトまで一緒に取り組みながら、長く使えるものを作る楽しさを育んでいます。