上部のナビゲーションパネルがストアフロントに読み込まれない
この記事では、Varnish をキャッシングに使用している場合、特定のページ(通常は上部のナビゲーションパネル)のコンテンツがストアフロントに表示されない Varnish Edge Side Includes (ESI)の問題に対する設定ソリューションを提供します。
影響を受ける製品とバージョン
- Adobe Commerce 2.X.X
- すべてのワニスのバージョン
問題
前提条件 :
Adobe Commerceストア用に Varnish をインストールして設定します。
再現手順 :
- ストアフロントに移動します。
- ストアページを参照します。
期待される結果 :
すべてのコンテンツとすべてのページブロックが正常に読み込まれます。
実際の結果 :
カテゴリを含む上部のナビゲーションパネルなどの一部のコンテンツブロックが読み込まれないことがわかります。 代わりに空白が表示されます。
原因:
この問題の考えられる理由を次に示します。
- ESI インクルードタグは HTTPS アクセスプロトコルで生成されますが、ワニスは HTTP でのみ機能します。
- ワニスは JSON 内の ESI を処理しません。
- 応答ヘッダーは、Varnish には大きすぎます。処理できません。
解決策
問題を解決するには、追加の Varnish 設定を実行し、Varnish を再起動する必要があります。
-
root
権限を持つユーザーとして、Vanish 設定ファイルをテキストエディターで開きます。 このファイルが別のオペレーティングシステムのどこに配置されているかの情報については、開発者向けドキュメントの Varnish システム設定の変更を参照してください。 -
DAEMON_OPTS variable
で、-p feature=+esi_ignore_https
、-p feature=+esi_ignore_other_elements
、-p feature=+esi_disable_xml_check
を追加します。 次のようになります。code language-bash DAEMON_OPTS="-a :6081 \ -p feature=+esi_ignore_other_elements \ -p feature=+esi_disable_xml_check \ -p feature=+esi_ignore_https \ -T localhost:6082 \ -f /etc/varnish/default.vcl \ -S /etc/varnish/secret \ -s malloc,256m"
-
変更を保存し、テキストエディターを終了します。
-
VCL 構成ファイルで、
http_resp_hdr_len
、http_resp_size
、workspace_backend
のパラメータの値を増やして応答ヘッダーを増やします。 最後の 2 つの値が類似していることを確認します。 -
これを変更する場合、変更を有効にするには
service varnish restart
を実行する必要があります。