問題タブ [varnish-4]
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 - Varnish: キャッシュから削除されないようにオブジェクトを保存します
キャッシュがいっぱいになった場合にキャッシュから削除されないように、ワニス キャッシュ内のオブジェクトをマークすることは可能ですか? サーバー上の一部のリクエストは、レンダリングに非常に時間がかかり、小さな xml レスポンスになります。このリソースはそれほど頻繁に呼び出されるわけではないため、キャッシュに保持する必要があります。キャッシュ ニスのスペースがなくなると、古くて頻繁に呼び出されないオブジェクトの削除が開始されます。キャッシュされたオブジェクトに優先順位を割り当て、オブジェクトをキャッシュから削除するアルゴリズムに影響を与えたいと考えています。それは可能ですか?はいの場合、どのように?
varnish - ワニス、ヒットフォーパスの原因は?
これはvarnishlogです(編集-詳細情報を提供するために展開されています):
これは、set-cookie ヘッダーが設定されている場合、または cache-control: max-age=0 が設定されている場合に作成されることを読みました。
さて、私はサブ vcl_backend_response にこれを入れて、パスのヒットを回避しようとしています。かなり失礼ですが、バックエンドの何がこのヒットの原因なのかわかりません。
タイムスタンプ 0 に設定されていたため、Expire を削除しています。次に、キャッシュコントロールで遊んでみましたが、同じでした。この速度ですべてのヘッダーの設定を解除しようとしています...
結局のところ 304 応答なので、キャッシュしないのはなぜですか?
詳細: バックエンドは Drupal アプリです。
編集1:vcl_recvについて
はい、私はものを持っています、私はいくつかのパス(私がチェックしているものではありません)のパスを返しています.ファイルのCookieを設定解除しています.残りのdrupalセッションではないすべてのCookieを設定解除しています. これは、mroe 以下のコピー/貼り付けの drupal デフォルト サブ vcl_recv です。必要に応じて、ここにコピーできます。
ところで、私は他のものを変更しましたが、今では応答 200 でもパスにヒットします (ただし、ベンチマーク ツールを使用している場合)。応答 304 が原因かもしれないという回答を誰かが削除しました。
ここに vcl_recv があります。
ほとんどの場合、すべての http でヒットフォーパスになっています。304 の応答と 200 の応答。上記の varnishlog を編集して、詳細な情報を提供する完全な例を示しました。
編集:これは、パスのヒットを示す前のリクエストのログです。パスのヒットを設定したことで間違いなく罪を犯したもの:
caching - Varnish のバックエンド応答のサイズに基づいてキャッシュを防止することは可能ですか?
適切な応答ではなく空の応答 (0 バイト) を送信することがある、問題のある IIS サーバーをキャッシュしています。これらの応答をキャッシュすることは大惨事であり、それは私たちのサーバーではないため、問題を解決する方法がありません. 代わりに、バックエンドからの応答が空 (0 バイト) の場合はキャッシュしないように Varnish に指示したいと思います。
VCL リファレンス ( https://www.varnish-cache.org/docs/4.0/reference/vcl.html ) を読んでも、これを解決する明確な方法がわかりません。
それはできますか?
magento2 - magento2 の varnish-4.1.2 構成
magento2 CE 用に varnish-4.1.2 を構成しようとしています。ダウンロードした varnish 4 構成ファイルを default.vcl に置き換えました。/etc/default/varnish
以下のように/etc/varnish/default.vcl
構成されています。
/etc/default/ニス
/etc/varnish/default.vcl/
しかし、私はエラーが発生しています
Error: Message from VCC-compiler: Unterminated string at ('/etc/varnish/default.vcl' Line 19 Pos 32) return (synth(400, "X-Magento-Tags-Pattern header -------- -----------------------############################ ####
VCC コンパイラの実行に失敗しました。2 で終了しました VCL コンパイルに失敗しました
この問題を解決するにはどうすればよいですか?
caching - Varnish 4: キャッシュ ヒットが多いがバックエンド トラフィックが多い
Varnish 4.0.3 を実行して varnishstat を見ると、約 0.9 - 0.95 のキャッシュ ヒット率が報告されますが、これは私が 90-95% のキャッシュ ヒット率 (正しくない?) と解釈します。ヒットパス カウントが非常に少ないため、キャッシュできないトラフィックが大量にあることがわかりません。私を悩ませているのは、これにもかかわらず、バックエンド サーバーがかなり機能していることです。iftop を見ると、サーバー (他のアプリケーションを実行していない) が約 19Mbit (クライアントへの応答とバックエンド サーバーへの要求ヘッダーを含む) で送信し、バックエンド サーバーから約 14Mbit を受信していることがわかります。
また、キャッシュにわずかな猶予期間があり、1 秒あたり約 1 ~ 2 のリクエストがヒットとしてカウントされますが、バックエンドへのリクエストはまだ行われていますが、それは取るに足らない数のリクエストです。
明らかなはずの何かが欠けているに違いありません。しかし、何?
編集:
※メッセージ制限のため、ログから一部(平穏な部分)を削除する必要がありました。
これで、client_req - (cache_hit + cache_hitpass + cache_miss) = 436880 で「その他のキャッシュ不可のリクエスト」を計算しました。これに、キャッシュされていない cache_hitpass とキャッシュ ミス (または単に client_req-cache-hit) を加えると、合計は 586699 になります。または約18.7%。それらが重いリクエストである場合、それがトラフィックの原因である可能性があると思います. しかし、私は少し納得していません。
varnish-vcl - Varnish VCL "シンボルが見つかりません: std.querysort"
この便利なテンプレートからいくつかの VCL ルールをコピーし、最新の安定した Varnish4 で実行しています。ただし、VCL のこのセクション:
このエラーを返します:
mod を含めるか、std
何らかの方法で定義する必要がありますか?
varnish - rpm からワニスをインストールするときに vmod を使用する方法は?
私はしばらくの間、ワニスで vmods を使用しようとしています。しかし、vmod を統合したい場合は、ソースからワニスをビルドする必要があるようですstatsd
。しかし、centos7 マシンに rpm 経由でワニスをインストールすることで、すでにワニスを正常に実行しています。
私の質問は、ワニスを rpm からインストールするときに vmod を使用することは可能ですか? どうやってするの?
caching - Cookie をキャッシュせずに Cookie を使用してキャッシュする
Cookie に関するヨーロッパの規則に従って、Cookie を使用していることをユーザーに知らせるメッセージを表示する必要があります。
彼らが受け入れると、私たちはクッキーを設定します! トラッキング Cookie に大きく依存しているため、この Cookie が必要です:(
アセットとランディング ページの両方をキャッシュするように Varnish をセットアップしました。これは当然、速度に大きな影響を与えます。アセットは夢のように機能しており、ホームページはサーバーから Set-Cookie を受け取ることはありません。
Varnish サーバーは Centos 7 で、Varnish 4 がインストールされています。私たちの目標は、最終的に Fastly に移行することです。Fastly には、私がやりたいことを正確に実行するためのガイドがあり、Cookie を使用してキャッシュを回避することができます。
https://www.fastly.com/blog/how-to-cache-with-tracking-cookies
ただし、req 変数はvcl_deliver
、Varnish 4 ではスコープ外になりました。
誰かがこれを回避する方法を見つけることができましたか?
varnish - Varnish-4.0.3 でインライン C が機能しない
私はvarnish-4.0.3で作業しておりvcc_allow_inline_c
、off
デフォルトです。私がやったことは次のとおりです。
そして、default.vcl では、
しかし、それは機能していません。systemd が正しく起動していません。
も使用してみDAEMON_OPTS="-p vcc_allow_inline_c=on"
ましたが、それもうまくいきませんでした。
ここで何が欠けていますか?