問題タブ [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.
caching - ESIでSymfony2アプリを構築するには?
大量のトラフィックを伴う新しいプロジェクトで、Symfony2 アプリを構築してキャッシュを活用し、将来的により積極的になる準備をする方法を考えています。あなたの意見を知りたいです。
ユーザーがページに場所のリストをリクエストしたとします。このページには次のものがあります。
HTML は次のようになります。
HTML はゲートウェイ (Symfony または Varnish) にキャッシュされます。ほとんどの場合、場所のリストもゲートウェイにキャッシュされます。ユーザーデータリクエストは、呼び出されてキャッシュされないものになります (少なくとも最初はそうではありません)。
質問:
- この構造をどう思いますか?
- ユーザーが匿名の場合、ユーザー データの esi-includes を作成しないようにすることはできますか? また、anonユーザーのCookieを持っている場合は? どのように?
- ユーザーメニューの esi-include は理にかなっていますか?
- それとも、ESI を忘れて、常にコントローラーを経由する必要がありますか (たとえば、共通データのレンダリングされたビューをキャッシュします)?
- サーバーで待機する代わりに、ユーザー データを AJAX 呼び出しにするよう要求する 2 つの ESI 要求を移動する必要がありますか?
- 迅速に行う必要がある場合、これはスケーリングするための良いアプローチですか? 何が一番いいでしょうか?
どうもありがとう!
caching - ユーザーメニューにESIを使用するのは理にかなっていますか?
ユーザーメニューのESIは理にかなっていますか?
s-maxageでキャッシュされた私のメインページ:
ESIユーザーメニューに含める場所:
サインインしたユーザーとそうでないユーザーでは、ユーザーメニューが異なります。
これにESIを使用するのは理にかなっていますか?
wordpress - Wordpress3.5ウィジェットでESIにニスを塗る
単一のWordpressウィジェットのキャッシュを回避するためにVarnishESIステートメントを使用しようとしています。
サイドバー全体にESIを使用するプロセスを説明する優れたガイドをここで見つけました:http://timbroder.com/2012/12/getting-started-with-varnish-edge-side-includes-and-wordpress.htmlしかし、単一のウィジェットに対してどのように行われるかを理解しようとするのは困難です。
その他の情報:
- サイトのURL: livefeeedietravelling(dot com)
- ニス: 3.0.3 Wordpress
- バージョン: 3.5
- サーバー: nginx / 1.2.6(APC付き)
php - 外部/独立したPHPファイル(Wordpressの外部)でWordpressスニペットを呼び出す方法
現在インストールされているプラグインのショートコードを使用できる独立したPHPファイルを設定しようとしています。このファイルは、現在のWordpressインストールから完全に外部にあります。
私のウェブサイトはVarnishによって処理されているため、phpファイル(および最終的にはプラグインのショートコード機能)をESIが呼び出す必要があるため、これを行っています。
私が使用しているプラグイン:http ://wordpress.org/extend/plugins/custom-content-by-country/
この作業を行うための私の現在の失敗した試み:
どんな助けでも大歓迎です。ありがとう
caching - エッジサイドの制限は1ページに含まれますか?
現在、さまざまなgetパラメーターに基づいてXMLページを作成するサービスがあります。パラメータの数が増え、さまざまな組み合わせの数も増えているため、ニスキャッシュのヒット率が低下しています。TTLを増やしたため、ヒット率は上がりましたが、私は次のことを考えています。
Edge Side Includesに出くわし、考えています。毎回50個の要素を含むXMLのページを作成する場合、ニスが1つのドキュメントに結合される50個のESIを含むページを生成できますか?
なぜあなたが尋ねる50のESI要素?各XML要素自体は1つのURLによって非常に簡単にキャッシュされますが、フィルターの組み合わせにより、多数の異なる完全なXMLドキュメントが生成されるためです。
したがって、1つのリクエストが最初の10個のXML要素を除外したとしても(get paramsを確認しないため)、ESIが使用されるため、各要素はキャッシュからフェッチされます。
これはサーバー上でどのくらい重いでしょうか?これを行うのは理にかなっていますか?ESIは非常に高価であり、その場合は意味がありません。
アップデート
まず、メモリが不足することはなく、Nukeはゼロです。現在、ヒット/ミスの比率は0,4で、ttlは4時間です。これは、私の意見ではひどいものです...これらすべての組み合わせ(国、ロケールなど)が原因です。さらに悪いことに、Tomcatは100%の使用率になり、ワニスが1〜3%の調査に留まっている間にハングしました。私の直感では、ESIにニスを塗ると、サブドキュメントによってTomcatがさらに保護され、容量が増えることを覚えておいてください。アイテムを奇妙にNukeする必要はありませんでした。つまり、最大1GBのキャッシュでは、キャッシュエントリの有効期限が切れる前にアイテムがいっぱいになることはありません。各サブドキュメントをキャッシュすると、メモリ制限に達してアイテムの削除を開始する可能性があると確信しています...しかし、ニスは、最近使用されていないアルゴリズムを使用していませんか?
apache - Mac osx または Windows への ESI のインストール (ローカルホストのテスト用)
サーバー側の専門家がこれに答えるか、正しい方向に向けてくれることを願っています。
私たちは、企業のウェブサイト設定で Akamai を使用しています。そのため、「ESI」ファイルが広く使用されています。
bitnami のパッケージを使用して Mac osx に「mamp」をインストールしました。Apache の上に esi 機能を追加するにはどうすればよいですか?
多くのグーグルは、おそらくsquidプロキシまたはvarnishプロキシがこの機能を許可できることを示唆しています. これは正しいでしょうか?ドメイン名がなく、ライブで公開されているものがなく、自分のマシンだけの「ローカルホスト」の状況でこれらを使用できますか?
洞察力に感謝します。多分私はこれを間違ってグーグルしています。
ありがとう!
caching - Symfony2 では、キャッシュされた応答内の ESI タグが無視されるのはなぜですか?
私はキャッシング用にセットアップしようとしている e コマース アプリケーションを持っています。Apache2 で Symfony 2.1.8 を使用しています。
私の問題は、プライマリ コントローラー アクションがキャッシュされている場合 (バスケット コンテンツのようなプライベート コンテンツにとって重要)、要求ごとに ESI タグを再チェックできないことですが、その理由がわかりません。
たとえば、次のコードでホームページをキャッシュします。
レンダリングされたテンプレートは、次の ESI を含むベース レイアウト テンプレートを拡張してバスケットを表示します。
(編集:ディエゴの答えを読んだ後、推奨される構文も使用しました:
残念ながら、これは何の違いもありませんでした。)
バスケット サマリーのコードをかなりいじりましたが、これが現在持っているものです。
ホームページ以外のページ (まだキャッシュされていない) では、バスケット サマリーのキャッシュは正常に機能し、常に正しいデータが表示されます。古い情報が表示されるのは、ホームページに戻ったときだけです。ログは、実際にレンダリングしsummaryAction
ない限り、ホームページで呼び出されないことを確認します。indexAction
編集
error_log($kernel->getLog())
各ページ要求の後に使用すると、キャッシュされていないページに対して次のようになります。
そして、これはキャッシュされたホームページの場合:
明らかな何かが欠けているに違いありませんが、ドキュメントはこれをカバーしていないように見えますが、ESI が使用されることになっているようなものであることを暗示しています。
caching - Symfony2.2 レンダリング ESI テンプレート
ドキュメントから、 ESI を使用してテンプレート内でテンプレートをレンダリングする方法の例はありません。それは可能ですか?
たとえば、テンプレートがあり、テンプレートを ESI でindex.html.php
レンダリングしたいとします。form.html.php
どうやってするか?
caching - Symfony2 esiキャッシュユーザー情報
ホームページをキャッシュする必要があります。これまでのところ、問題はありません。リバース プロキシを使用するだけで十分です。
ただし、ユーザーが接続されているかどうかを確認し、「こんにちは Vincent」という情報を表示できるように、スタンドアロン (ESI) のヘッダー部分も含める必要があります。
問題は、そうすると、ホームページ (すべてのページと同様) でセッションをテストする必要があり、PDO ストレージを使用しているため、MySQL ですべてのユーザー/ページに対して 2 つのクエリが実行されていることがわかります。
そのため、単純な「is_connected」Cookie を追加して、その不在をチェックして、セッションを要求せずにログアウト バージョンをレンダリングしようとしましたが、匿名ユーザーを許可するファイアウォールがある限り、セッションを要求するようです。
私は考えが尽きかけています。人々がこれのために何をしているのか見たいのですが、目標はホームページでまったくクエリを実行しないことです。
ありがとう
php - symfony 2.1.8 で ESI を有効にすると Twig 構文エラーが発生する
小枝テンプレートの 1 つに {'standalone': true} で ESI レンダーを追加しようとしましたが、次の TWIG 構文エラーが発生しています。
Unexpected token "punctuation" of value "," ("end of statement block" expected) in AccommMiddleBundle:Home:layout.html.twig at line 155
関連する twig テンプレート ブロックは次のとおりです。
{'standalone': true} を削除すると、テンプレートが正常にレンダリングされます。
クリーンなベンダーで Symfony 2.1.8 を使用していますが、標準のエディションの依存関係との違いはないようです。これをデバッグする方法についてのアイデアはありますか?
助けてくれてありがとう
マイクB
psここに私のインストール済みパッケージがあります