私が見つけたリソースのほとんどは、リバースプロキシとしてのNGINXと「ネイティブ」ウェブホストとしてのNGINXを区別していないようであるため、キャッシュの実装についていくつか質問があります。
別のNGINXリバースプロキシの背後にあるLEMPスタック(つまり、「ネイティブ」WebホストとしてのNGINX)にWordPressサーバーをセットアップしました。キャッシングのために、サーバーにfastcgi_cacheを実装しました。 WordPressをホストしています。私の理由は、そのサーバーはとにかくphpを処理しているので、同じマシン上にあるため、ここにローカルにキャッシュするのが最も理にかなっています。そうすれば、アップストリームサーバーのリバースプロキシから.phpリクエストを取得した場合、それはすでにそこにあり、待っています。
1)このロジックは適切/正しいですか、それともリバースプロキシでfastcgi_cacheを処理する必要がありますか?
NGINXも実行しているリバースプロキシで、httpトラフィックを上記のWordPressサーバーにproxy_passするように設定しました。ブラウザに静的コンテンツ(.jsなど)をキャッシュさせます。さらに、リバースプロキシproxy_cacheに、通常はWordPressアップストリームに転送されるHTTPトラフィックを含めることを計画しています。特定の場所をプロキシから除外します(/ wp-admin/、cookiesなど)。私の論理では、HTTP proxy_cacheはクライアントに最も近いため、ここで処理するのが最も理にかなっています。
2)これはこれを処理するための適切な方法ですか?
3).phpファイルのリクエストは引き続き私のWordPressサーバーに渡されてfastcgi_proxy/fastcgi_cacheによって処理されますか?私の推測/懸念は、これらのリクエストは結局のところそうではないということですまだHTTPリクエスト。
Tl; dr:2つのNGINXサーバーがあります。1つはホスティングWordPressで、もう1つはリバースプロキシとして機能します。リバースプロキシでproxy_cachingを、WordPressサーバー。この構成は受け入れられますか?
これらの質問は、必ずしも私の特定のアプリケーションだけでなく、NGINXがどのように機能するかを正確に理解するのにも役立ちます。前もって感謝します!
それはあなたのサイトの性質に依存します。動的コンテンツがない場合は、nginxを使用してキャッシュしても安全です。
Nginxでのキャッシュの問題は、コンテンツの変更時にnginxに適切に通知することです。この問題は、2つのキャッシングサーバーのセットアップでさらに大きくなります。
サイトに動的コンテンツがある場合は、キャッシュを適切に無効にする可能性があるため、キャッシュにW3Totalキャッシュを使用することをお勧めします。