Commerce用Varnishの設定
Varnishを使用するようにCommerceを設定するには:
-
管理者としてAdminにログインします。
-
Stores / 設定/ 設定 / 詳細 / システム / フルページキャッシュをクリックします。
-
Caching Application リストから、Varnish Cachingをクリックします。
-
TTL for public content フィールドに値を入力します。
-
Varnish Configurationを展開し、次の情報を入力します。
table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 フィールド 説明 アクセスリスト コンテンツを無効にする完全修飾ホスト名、IP アドレス、または クラスレス ドメイン間ルーティング (CIDR) 表記法IP アドレス範囲を入力します。 ニス キャッシュ パージ を参照してください。 バックエンドホスト Varnish バックエンドまたは オリジンサーバー の完全修飾ホスト名またはIP アドレスとリッスポートを入力します。つまり、コンテンツ Varnishを提供するサーバーが高速化します。 通常、これはあなたのweb サーバーです。 Varnish キャッシュバックエンドサーバーを参照してください。 バックエンドポート オリジンサーバーのリッスンポート。 猶予期間 バックエンドがレスポンシブでない場合に、Varnishが古いコンテンツを提供する時間を決定します。 デフォルト値は300秒です。 パラメーターのサイズを処理します フルページキャッシュ用に {BASE-URL}/page_cache/block/esiHTTP エンドポイントで処理する レイアウトハンドル の最大数を指定します。 サイズを制限すると、セキュリティとパフォーマンスが向上します。 デフォルトは100です。 -
「設定を保存」をクリックします。
また、C コマンドラインインターフェイスツールを使用して、管理者にログインする代わりに、コマンドラインからVarnishをアクティベートすることもできます。
bin/magento config:set --scope=default --scope-code=0 system/full_page_cache/caching_application 2
Varnish設定ファイルの書き出し
管理者からVarnish設定ファイルを書き出すには:
-
Varnishで使用できる
varnish.vclを作成するには、いずれかの書き出しボタンをクリックします。例えば、Varnish 4がある場合、「VCLをVarnish 4用に書き出し」をクリックします
次の図は、例を示しています。
-
既存の
default.vclをバックアップします。 次に、default.vclに書き出したvarnish.vclファイルの名前を変更します。 次に、ファイルを/etc/varnish/ディレクトリにコピーします。code language-shell cp /etc/varnish/default.vcl /etc/varnish/default.vcl.bak2code language-shell mv <download_directory>/varnish.vcl default.vclcode language-shell cp <download_directory>/default.vcl /etc/varnish/default.vcl -
Adobeでは、
default.vclを開き、acl purgeの値をVarnish ホストのIP アドレスに変更することをお勧めします。 (複数のホストを別々の行に指定することも、CIDR表記を使用することもできます)。以下に例を挙げます。
code language-conf acl purge { "localhost"; } -
Vagrant ヘルスチェック、猶予モードまたはsaint モード設定をカスタマイズする場合は、高度なVarnish設定を参照してください。
-
Varnishとweb サーバーを再起動します。
code language-shell service varnish restartcode language-shell service httpd restart
静的ファイルをキャッシュ
静的ファイルはデフォルトではキャッシュされませんが、キャッシュする場合は、VCLのセクション Static files cachingを編集して、次のコンテンツを得ることができます。
# Static files should not be cached by default
return (pass);
# But if you use a few locales and do not use CDN you can enable caching static files by commenting previous line (#return (pass);) and uncommenting next 3 lines
#unset req.http.Https;
#unset req.http./* {{ ssl_offloaded_header }} */;
#unset req.http.Cookie;
Varnishを使用するようにCommerceを設定する前に、これらの変更を行う必要があります。