問題タブ [varnish-vcl]
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.
varnish - If-Modified-Since ヘッダーが送信されたときに Varnish が 304 unmodified を送信しないのはなぜですか?
setを使用して GET リクエストをバックエンドに直接送信するとIf-Modified-Since: Wed, 15 Feb 2012 07:25:00 CET
、Apache はコンテンツのない 304 を正しく返します。
Varnish 3.0.2 を介して同じリクエストを送信すると、200 で応答し、クライアントが既にコンテンツを持っているにもかかわらず、すべてのコンテンツを再送信します。明らかに、これは帯域幅の有効な使用法ではありません。私の理解では、Varnish はこのヘッダーのインテリジェントな処理をサポートしており、304 を送信する必要があるため、.vcl ファイルに何か問題があったと思います。
Varnishlog はこれを与えます:
私がこれを正しく理解していれば、オブジェクトはすでに Varnish のキャッシュにあるため、バックエンドに接続する必要はありませんが、Last-Modified
304 で応答しないのはなぜでしょうか?
そして、これが私のVCLファイルです:
誰でも問題を確認できますか?
更新: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.3によると
これは Varnish の動作のようです。実際のファイルの最終更新日より前の別の日付を送信していますが、Varnish にキャッシュされているものとは正確には異なります。
c - インライン C & vcl キャッシング
私はURLを持っています
URL からcallback=jsonp999999999999&を取り除き、残りをキャッシュし(...../suggest?term=something)、完全な URL (...../suggest?callback=jsonp9999999999998&term=something)を再度渡したいと思います。バックエンドに。
2 番目のリクエストが (...../suggest?callback=jsonp000000000000&term=something)の形式で送信された場合、ワニスはcallback=jsonp000000000000を取り除き、キャッシュでヒットをチェックし、キャッシュから結果を返す必要があります。
これはインライン C と VCL で可能ですか?
varnish - 長さがゼロの場合、Varnish キャッシュ内のオブジェクトを無効にするにはどうすればよいですか?
Varnish がこれらのページの古いキャッシュ バージョンを引き続き提供するようにすることで (別名、グレース モード)、200 OK 応答で空白ページの提供を開始するバックエンド サーバーを回避しようとしています。
最初に の応答を調べてみましたvcl_fetch
が、把握できる限り、 のコンテンツの長さを把握する方法はありませんvcl_fetch
。vcl_deliver
次に、 (Content-Length ヘッダーが利用可能な場所) で作業を試みました。それは機能しますが、キャッシュされた不良オブジェクト (空白のページを持つオブジェクト) を消去する方法がわかりません。
obj.grace と obj.ttl を に設定するようにアドバイスされましたvcl_deliver
。これが現在のコードです。
しかし、Varnish はそれを好まず、VCL をロードしようとすると次のエラーが表示されます。
obj.ttl
行を削除すると、同じエラーが発生します。ドキュメントにはそうではないと書かれていますが、obj.grace
どちらも書き込み可能ではないようです。これは Varnish 3.0.2 にあります。vcl_deliver
varnish - Varnish が同じユーザーのみがアクセスしたページをキャッシュしているように感じるのはなぜですか
Varnish を始めてから、一度ウェブサイトにアクセスしました。すべてのページにデータを入力した後、すべてのページに再度アクセスするのが非常に高速になります。
しかし、別のコンピューターに切り替えてサイトにアクセスすると、このキャッシュの作成プロセスをもう一度開始する必要があるようです。
そのため、Varnish は他のユーザーがキャッシュしたキャッシュ ページを提供していないようです
私の質問に明確に答えたことを願っています。
誰が何が起こったのか知っていますか。
ここにvclファイルがあります
varnish - ワニスでクッキーを削除する
私は次のVCLを持っています:
最初にページにアクセスしたときに次のヘッダーが表示されるため、部分的に機能することはわかっています。
しかし、私も得ます:
私は次のことを間違えたと思います:
しかし、私の検索から、それは正しいように思われますか?もっと経験のある人が私を正しい方向に向けてくれたらありがたいです。
ヘルプ/ヒント/ポインタを事前に感謝します:-)
varnish - max-age リクエスト ヘッダーの使用
Varnish が「Cache-Control max-age」リクエスト ヘッダーを尊重するように VLC を設定するにはどうすればよいですか?
ブラウザで F5 を押しても、デフォルトで varnish がキャッシュされたコンテンツを配信することに気付きました (したがって、「新しい」コピーをリクエストします)。
php - ワニスキャッシュ + PHP
を使用してVarnish Cache からリソースを削除するのは非常に簡単であることがわかりましたphp_exec
。php-varnishなどの利用可能なライブラリに関しては、この方法は非常に快適です。
最速のカール ソリューションは何ですか?
node.js - ワニスの使用中に html リダイレクトがブロックされる
ubuntu 11でvarnish 3.0を使用しています-リダイレクトはexpressjs(v2.5.8-node.js 0.6の実行)によって処理されています-リダイレクトはexpressによって呼び出されます(間にvarnishなしで動作します)が、間にvarnishが使用されている場合、新しいページへのリダイレクトがブロックされます (「エラー 302 が見つかりました」と表示されます)。
ワニスの vcl 構成ファイルで、URL とリファラー (サブ vcl_recv セクション) に基づいてパス (リターン) を試みましたが、構成が間違っているようです (または構成手順を追加する必要があります)。vcl ファイルの変更に関する考えや提案は大歓迎です。これにより、varnish で expressjs が新しいページにリダイレクトできるようになります。
前もって感謝します。
varnish - Varnish クライアント IP が Apache ログに記録されない
Varnish 3 を Apache で構成しましたが、問題なく動作しています。ただし、Apache ログに記録されたクライアント IP を取得できません。私はいくつかの解決策をグーグルで試してみましたが、うまくいきませんでした。現在、私の Apache アクセス ログ ファイルは、クライアント IP アドレスではなくサーバー IP を記録しています。
あなたの親切な考慮のための私の構成は次のとおりです。
ワニス VCL: (/etc/varnish/default.vlc): http://pastebin.com/PuBqZ6fx
アパッチ構成
/etc/httpd/conf/httpd.conf
LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" varnishcombined
アパッチ仮想ホスト
...... その他 ..... ErrorLog ログ/fr-error-log CustomLog ログ/fr-custom-log varnishcombined ...... その他 .....
注: インストールされているワニスのバージョンは varnish-3.0.2-1.el5.x86_64 です。
ありがとう。ラヒール