問題タブ [varnish]
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.
css - CSSURLのみが変更されたときにキャッシュされたページを期限切れにする方法
シナリオ:CSSファイルを更新し、CDNにプッシュし、クエリ文字列のバージョン番号を変更して、ユーザーのブラウザーが最新のコピーをダウンロードできるようにする必要があります
問題は次のとおりです。すべてのページがVarnishの背後にあり、CSSファイルの絶対URLがmemcachedから取得されています。
更新をトリガーするためだけにページ全体を期限切れにする必要がありますか?
c - Varnish の小文字の URL (インライン C)
Varnish (3.0)では、URL は大文字と小文字を区別して処理されます。つまり、http://test.com/user/a4556
は とは異なる扱いを受けhttp://test.com/user/A4556
ます。私の Web サーバーでは、それらは同じ URL として扱われます。私がやりたいのは、着信時にすべてのリクエスト URL を小文字にすることです。
私はなんとかこの議論を見つけましたが、Varnish の作成者は、それを行うにはインライン C を使用する必要があることを示しています。複数の正規表現を使用して単純な方法でこれを実現できますが、それは失敗するに決まっているようです。
理想的には、これを行うための VCL 構成が必要です (この例はここconst char *
にあります) const char *
。構文が間違っている場合)。
linux - plone.app.caching と設定 キャッシュをパージする Varnish
Ubuntu 10.04 で Plone 4.1 を実行しています。設定方法
Varnish (パブリック IP:80) - Ubuntu/Debian の default.vcl
plone.app.caching
...パージが正しく機能するように
ページごとのキャッシュをクリアすることにはあまり興味がありませんが、サイト コントロール パネルで [パージ] ボタンが機能すると、編集者は緊急時にキャッシュを簡単にクリアできるようになります。
(別の方法として、varnishadm の使用方法を示すこともできますが、Varnish と Plone をセットアップして互いに議論することはそれほど難しくないと思います)
varnish - 誰かがこのワニスエラーを修正する方法を教えてもらえますか?
これが私が得るエラーです:
VCCコンパイラからのメッセージ:
で終了していない文字列
(入力行39位置19)
------------------ ################################ ###############
VCCコンパイラの実行に失敗し、1を終了しますVCLコンパイルに失敗しました
これがdefault.vclです
regex - コンテンツをキャッシュしないロードバランサーの背後にあるワニス
この行を使用して Cookie を削除しdefault.vcl
、Varnish キャッシュを許可しています
しかし、それは機能していないようです。
Varnish はロード バランサーの背後にあり、ロード バランサーはヘッダーに次の形式で表示される永続 Cookie を設定します。
この正規表現をエミュレーターで実行したところ、上記の行がキャッチされました (最初の ";" まで)。したがって、この正規表現はそれをキャッチする必要があると思いますが、そうではないようですか? このロード バランサーをバイパスすると、コンテンツがキャッシュされます。
何か案は?私は何が欠けていますか?
ruby-on-rails - 「Vary: If-None-Match」を使用して、モバイルとデスクトップのリクエストを別々にキャッシュします
注:私の仮定が間違っている場合は修正してください。これについてはよくわかりません...
私は Heroku で HTTP キャッシングをいじっており、Heroku で Varnish を使用してキャッシングするときにモバイルとデスクトップのリクエストを区別するための良い方法を見つけようとしています。
私の最初のアイデアはVary
、キャッシュが Vared on になるようにヘッダーを設定できるということでしたIf-None-Match
。Rails はコンテンツのハッシュから生成された etag を自動的に送り返すため、etag はデスクトップとモバイルの要求 (異なるテンプレート) の間で異なり、最終的には 2 つのバージョンをキャッシュします (事実ではなく、私の最初の考えです)。私はこれで遊んでいますが、うまくいかないと思います。
まず、何かがキャッシュされるとき/場合に頭を包み込むことはできませIf-None-Match
ん。次に、実際には新しいリクエスト (If-None-Match のないリクエスト) がモバイル サイトを受信することがあります。If-None-Match
これは、ヘッダーが存在しないため、モバイルまたはデスクトップのキャッシュ バージョンを提供するかどうかをキャッシュが認識していないためですか?
おそらく聞こえるかもしれませんが、私はかなり混乱しています。このアプローチは何らかの方法で機能しますか、それとも私はばかげていますか? また、(Heroku を使用しているため) Varnish 構成にまったくアクセスできない場合、個別のキャッシュ バージョンを取得する方法はありますか?
Railsでキャッシュヘッダーを設定するために使用している正確なコードは次のとおりです。
編集:使用できることは承知しVary: User-Agent
ていますが、ミス率が高いため(多くのユーザーエージェント)、可能であれば回避しようとしています。
python - Varnish で ESI フラグメントのキャッシュを停止するにはどうすればよいですか
repoze.bfg プロジェクトで Varnish 3.0 で ESI を使用すると問題が発生します。ESI タグを介して含まれる、ログインしているユーザーの通知を表示する ESI フラグメントがあります。ただし、varnish は含まれている ESI フラグメントをキャッシュするため、手動で、またはセッションの結果としてフラグメントに加えられた変更は、含まれている (およびキャッシュされた) Web ページには反映されません。
使用されている ESI タグ:
VCL 構成:
私の仮定は次のとおりです。
1) Varnish は、特に beresp.ttl がすべての .esi フラグメントに対して 0 に設定されているため、キャッシュ ストアから取得するたびに「path/to/fragment.esi」と再構築するキャッシュ Web ページに要求を行います 2) Varnish ESIフラグメントをWebページとともにキャッシュストアに保存しません**
drupal-6 - Drupal6 のモバイル ツール モジュールをワニスで使用していますか?
Drupal6 の Mobile Tools モジュールを Varnish で使用できますか? ワニスがインデックス ページをキャッシュし、ページのモバイル バージョンへのリダイレクトを許可しないとは思えません。
回避策はありますか?