web-dev-qa-db-ja.com

強制的なSSLをキャッシュするためのnginxとニス

私は、キャッシュなしのApacheからキャッシュ付きのnginxに、おそらくワニスを介して移行するための宿題をしているところです...

さまざまなブログ、記事、serverfaultの質問などを読んだ後、ワニスはsslで機能しないこと、および動的コンテンツの実際のキャッシュにはワニスがnginxよりも優れている可能性があることを理解しています。しかし、nginxキャッシングがどのように機能するか、およびsslが必要な場合にnginx + varnishがどのように連携できるかを理解するのに少し行き詰まっています。

Nginx + varnish ORキャッシュ付きのnginxだけで、次はどのように実装されますか?

  1. カスタムphpエンジンによって駆動されるいくつかのURL:つまり、example.com/this-pageはexample.com/index.php?p=this-pageによって提供されます

  2. 一部のURLはwordpressによって駆動されます。つまり、example.com/blog/this-articleはwordpress via example.com/blog/index.php?p=this-article

  3. どこでもSSLを強制する必要があります:つまり http://example.com/ *リダイレクト先 https://example.com/ *

  4. wwwはトップドメインにリダイレクトする必要があります:つまり http://www.example.com/ *リダイレクト先 https://example.com/ *

キャッシュされたバージョンが存在する場合はすべて提供されます(キャッシュは時間ベースであるため、そのページを更新する場合は、ニスルートの場合はPURGEを呼び出し、nginxルートの場合は手動でファイルを削除する必要があります)

3
davidkomer

NginxとVarnishを使用したい場合は、次のようなものをお勧めします。

  • フロントエンドとしてのnginxとバックエンドとしてのVarnishで構成されたSSLターミネーター。これにより、ホスト名が正規化(書き換え)されます。 www.example.orgからexample.orgへ。
  • バックエンドnginxからコンテンツをキャッシュするためのワニス
  • たとえば、仮想ホストが実行されているnginx WordPressの書き換え、カスタムPHPエンジンの書き換えなど、すべての「アプリケーションロジック」を備えたポート8080。

したがって、基本的には次のようなスタックがあります。

nginx->ワニス-> nginx-> php-fpm

あなたが言及する4つの箇条書きはこのように解決されます。

  1. Php-fpmへの書き換えとproxy_passを使用したバックエンドnginx。
  2. バックエンド-nginxwith WordPress関連の書き換え
  3. フロントエンド-リダイレクト用のシンプルな仮想ホストを備えたnginx。
  4. 3と同じ。
3
pkhamre