問題タブ [esi]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
678 参照

symfony - Symfony2: ESI setMaxAge キャッシュ

アクションが小枝でレンダリングされるコントローラーがあります

{{ render_esi(controller('MyWebsiteBundle:Element:header')) }}

アクション自体は次のようになります。

ブラウザをリロードすると、"myTime"毎回変更されます。

setShardeMaxAge()MaxAge の有効期限が切れた後にのみ Twig がレンダリングされるように、を使用するにはどうすればよいですか?

0 投票する
1 に答える
676 参照

php - Symfony ESI キャッシュ/サロゲート リスナーの問題

ライブの Ubuntu 14.04 サーバーに展開した製品を持っていますapp_dev。ただし、アプリで実行すると、アプリのログ ファイルに以下の 503 エラーが表示されます。

Vagrant セットアップ、同じ OS バージョンでまったく同じコードを取得しましたが、アプリとアプリの両方で正常に動作します。app_dev

誰もこれに遭遇したことがありますか?

Symfony 2.7.0 / Ubuntu 14.04 / Distro PHP / mySQL - キャッシュをクリアして、すべての composer パッケージを再インストールしようとしました。

[2015-06-09 16:36:43] request.INFO: 一致したルート「fos_user_security_login」。{"route_parameters":{"_controller":"FOS\UserBundle\Controller\SecurityController::loginAction","_route":"fos_user_security_login"},"request_uri":" http://xxxx/app.php/login "} []

[2015-06-09 16:36:43] security.INFO: TokenStorage に匿名トークンを入力しました。[] []

[2015-06-09 16:36:43] request.CRITICAL: Uncaught PHP Exception Symfony\Component\Debug\Exception\ContextErrorException: "Catchable Fatal Error: Argument 1 passed to Symfony\Component\HttpKernel\EventListener\SurrogateListener::__construct () は Symfony\Component\HttpKernel\HttpCache\SurrogateInterface のインスタンス、Symfony\Component\HttpKernel\HttpCache\Esi のインスタンスである必要があり、オンラインで /var/www/xxxx/app/cache/prod/appProdProjectContainer.php で呼び出されます557 and defined" at /var/www/xxxx/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/EventListener/SurrogateListener.php line 33 {"exception":"[object] (Symfony\Component\Debug\Exception \ContextErrorException(コード: 0): キャッチ可能な致命的なエラー: 引数 1 が Symfony\Component\HttpKernel\EventListener\SurrogateListener に渡されました::__construct() は Symfony\Component\HttpKernel\HttpCache\SurrogateInterface のインスタンスである必要があり、指定された Symfony\Component\HttpKernel\HttpCache\Esi のインスタンスであり、/var/www/xxxx/app/cache/prod/appProdProjectContainer.php で呼び出されます。行 557 および /var/www/xxxx/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/EventListener/SurrogateListener.php:33)"} [] で定義

(ログ行をフォーマットするコードを提案する人にとっては、それらを1行にフォーマットします。これは基本的に、それらをスクロールして読む必要があることを意味します。これは上記よりも悪いことです)。

0 投票する
1 に答える
1564 参照

php - Varnish ESI リクエスト -- 送信される Cookie は?

HTTP の新機能ではなく、varnish の新機能です。これが初心者/明白な領域である場合はお詫びしますが、グーグルについては答えが明らかにされていません。

ワニスがesiインクルードURLにリクエストを行うとき

  1. デフォルトで送信される Cookie (およびその他の要求情報)

  2. vclこれは、構成ファイルを介してプログラムで制御できますか。

つまり、ワニスに含まれるesiのポイントは、キャッシュから取得されたページにステートフルな情報を入力できるようにすることであると私は理解しています。このステートフルな情報は、(おそらく) セッション ID を使用してアプリケーションによってフェッチされます。セッション ID は通常、Cookie で送信されるデータを介して実装されます。

私にははっきりしないのは、ワニスがただ通過するかどうかです

  • 元のリクエストの Cookie 情報
  • アプリケーションの応答Cookie
  • 他の何か

また、デフォルトで渡されるワニスに関係なく、これをワニスvclファイルで制御できますか?

(問題があればPHPアプリ)

0 投票する
1 に答える
543 参照

varnish - ワニスでESIコンテンツを禁止/無効化できますか?

esi:include タグを使用してモジュールをインクルードするコンテンツ ページがあるので、

/content.html

含む

どちらの URL も、応答で cache-control ヘッダーを送信します。/content.html の場合は

Cache-Control: public, max-age=86400

/_esi/module.html の場合は

Cache-Control:public, max-age=3600

/content.html をロードすると、varnish からキャッシュされた応答を取得していることがわかります。また、module.html マークアップが適切に含まれていることがわかります。ただし、module.html を変更して禁止すると、次のようになりますban req.url == /_esi/module.html。 :ban req.url ~ _esiブラウザのページはまだ変更されません。

これについては、ワニスのドキュメントではあまり見つけられないようです。含まれているコンテンツ (つまり、ESI URL からのフラグメント) を明示的に無効にすることはできますか? それとも、有効期限が切れるまで待つ必要がありますか?

また、これを実現するために PURGE を実装して使用しようとしましたが、そのインクルードから新しいコンテンツを取得できないようです。

0 投票する
0 に答える
165 参照

php - ネストされた esi タグを機能させるにはどうすればよいですか?

Symfony と Varnish で ESI を使用しています。私がやろうとしていることは..

esiブロックを別のブロック内にレンダリングしesiます。

残念ながら、ネストされたesiタグは置き換えられません。

理由はありますか?

0 投票する
1 に答える
201 参照

varnish-vcl - キャッシュから esi タグを含むページを取得するときに、Varnish が ESI 要求を処理していませんか?

ページのフラグメントをキャッシュしないために ESI を使用しています。フラグメントをキャッシュしないように、vcl ファイルに次の構成を記述しました。

ニスがバックエンドからページ全体を初めて取得するとき、「/fragment」の個別のリクエストを送信し、ページの適切な場所に配置します。ただし、ページを更新すると、ワニスはメインページのみを再要求し、キャッシュでそれを見つけます。次に、このページでesiフラグメントを検索せず、リクエストを送信しません。代わりに、メイン ページのキャッシュ中にメイン ページ自体に格納され、ルックアップ中にそこから取得されます。メインページの残りのコンテンツをキャッシュから提供しながら、メインページのリクエストが行われるたびに、バックエンドからフラグメントを取得する方法を知りたいです。

0 投票する
1 に答える
926 参照

c# - c# mvc と Varnish でドーナツ キャッシングを行うには?

ワニス構成に追加しました

}

私のmvcアプリケーションでは、childactionがあります

Requestヘッダーを追加しました

しかし、Varnish はページ全体をキャッシュし続けます。

何が恋しいですか?ブラウザでリクエスト ヘッダー X-Esi が存在しないことに気付きました。また、ワニスはタグを適切に削除します<esi:include

アクション GetHour のコードは非常に単純で、SQL Server から 10 進数を取得するだけです。

0 投票する
1 に答える
707 参照

html - esi:include src を html ページの esi 変数として使用できますか

例:

akamai cdn を介してレンダリングされた html ページの esi:assign および esi:include に関する問題

0 投票する
0 に答える
475 参照

symfony - Symfony 2.7 _fragment にアクセスするには?

何時間も検索した後、この問題に対する答えが見つからなかったと思うので、ここでこの質問をします。

問題は非常に単純です。twig の render_esi 関数で正常に動作する twig の外部の _fragment にアクセスしようとしています。

config.yml で信頼できるプロキシ エントリを無効にしました。

そして、security.yml に次のように記述します。

Web ブラウザー経由でフラグメントにアクセスしようとすると、プロファイラーに「ログインしていません」というメッセージで AccessDenied Exception が発生しました。

これの問題は何ですか?なぜプロファイラーは私がログインしていないと言っているのですか?

最後のエラー ログは次のとおりです。

ありがとうございました