こんな感じです。 VCLの記載の仕方は環境それぞれだとおもうのでなんともいえないのですが、 default.vclを起点として、includeしていくやり方であればdefault.vclを一旦4.1にしておくと良いのかなと思います。 とはいえ、4.0から4.1へのアップデートはそんなに難しくないのでやってしまったほうがいいんじゃないかなとは思います。 VCL変更点 4.0での変更点と4.1での変更点があります。 まずは共通の変更点から 変更点(4.0/4.1共通) return(fetch)がvcl_hitで使えなくなりました 個人的にはまだ残っていたのかといった感じですが(結構前からdeplicatedになってた) return(miss)を使いましょう req.storage / hash_ignore_busy / hash_always_missをclientスレッド側でアクセスで
現在この方法は必要なくなりました。 下記のように backend 毎に設定できる override host 設定を使うことが推奨されています。 先に結論 directorを使ってset req.backend = autodirector_;のような処理を入れた場合、各サブルーチンからreq.backendの変数を参照することが出来ません。理由としては、最終的にbackendが決定されるのがvcl_missを通りオリジンにリクエストを発行する直前であるため、例えvcl_missの内部であっても変数の値を知ることができません。 これにより、例えばオリジンに2つのS3バケットが設定されており、それぞれのS3バケットにアクセスする際にHostヘッダを書き換えたい場合、実際にset req.backend = autodirector_;によってどちらのbackendが選択されたか知ることが出来
4.0.0及び3.0.xは先に述べた通り、そもそも今回の機能がないので対象外です。 回避方法(VCL) VCLでの暫定的な回避方法があります。 これらはchunkedでリクエストしてきたものを503で落とすことで回避します。 大抵のブラウザの場合はTransfer-Encodingを指定したリクエストは行わない事が多いのですが、念のため確認すると良いでしょう。 varnishlog -cq ReqHeader:Transfer-Encoding -i ReqMethod -i ReqURL これで何かしら出てきて、正規のリクエストの場合はVCLでの回避は不可能ですのでバージョンを上げる必要があります。 なおここで紹介している回避コードは公式そのままなので公式も参考にしてください(VSV00001) 4.0.x向け インラインCを利用します。 そのためvcc_allow_inline_cをt
4.1系の最新版の4.1.6がリリースされました。 [changelog] [公式のリリース文] [パッケージDL] [ソースDL] 今回の変更内容は基本的にバグフィックスと5.1.1/5.1.2で追加された一部機能の取り込みになります。 追加された機能 すべて5.1.1/5.1.2で追加された機能です。 vmod_stdにgetenv(STRING)の追加 varnishtestにsetenvの追加 vsl-queryでvxid指定が可能に バグ修正 Ageレスポンスヘッダの数値が実経過時間より大きな数値になるケースがあったのを修正しました(#2216) Ageレスポンスヘッダの小数点の丸めをsprintfの%.0fで行っていたため、実際の経過時間より大きな数値になることがあったんですが 切り捨て(floor)を行うようにした感じです。 std.querysortでワークスペースが足りな
5.1.2がリリースされました。 5.1.1の記事で4月中旬まで様子を見たほうがよいと言っていたのはこの件です。 (まだ確定じゃなかったので微妙にぼかした表現でしたが・・) 今回のリリースは1件の機能強化と主にHTTP/2関連のバグフィックスです。 [changelog] [リリース文] [パッケージDL] [ソースDL] 機能強化 std.collectでセパレータを指定できるようになりました std.collectは同一名のヘッダが複数行送られてきた場合に1行にまとめる関数ですが今までは[, ]でまとめられていました。 通常の場合は特に問題ないのですが、Cookieの場合は[; ]でまとめる必要があり、追加で置換が必要など面倒でした。 デフォルト値には[, ]が指定されているので、既に使用している場合は特に追加指定は不要ですが Cookieで使用する場合は以下のように指定するとよいです
5.0.0の後継の5.1.1がリリースされました。 [changelog] [リリース文] [changes] [Upgrading] また、今回からパッケージがpackagecloudで提供されるようになりました。(packagecloud) 5.1.0はどうなったの?という話ですが、ちょっと問題となるバグがあったため翌日にすぐ5.1.1を出した感じです。 今回のリリースでは4.1.4/4.1.5で変更された内容と細かい機能修正(VCL変更含む)があります。(それについては割愛してます) VCLの変更はあるものの修正しないと動かないような変更はないのでよほどのことがない限りそのまま動作するはずです。 なお、VMODについては動かなくなるものもあるので事前に使用しているものが動くかを確認したほうが良いでしょう。 また、累積バグも修正されているのですが、よほど修正されているバグで困ってない限
Varnishのリリースは少し前に半年に一回行う様になりました。 もちろんその間にBugfixなどがされたりするのですが、その場合でも半年待つ必要があります。(クリティカルなバグについてはその限りではないはず) では、どうしてもすぐに修正されたものを使いたかったりする場合はどうすればよいでしょうか? 今回はpkg-varnishcacheを利用してパッケージを作成する方法を紹介します。 今回の環境はUbuntu16.04LTS(Xenial)で作成するパッケージの対象はXenialとしてます (2017-08-09追記)なお、記事中で修正箇所の記載がありますが、masterのものを使用する場合はまだpkg-varnish-cacheが追い付いてないことが多く当時は修正が必要だったということです。 バージョンにより修正が不要になったり、また別の修正が必要になったりするので注意が必要です。 s
4.1系の最新版の4.1.5がリリースされました。 [changelog] [公式のリリース文] 公式でも触れられてる通りほぼバグフィックス(あとドキュメント周り)なのですが、1点パフォーマンスに影響する修正があります。 個人的に重要かなと思うのは#2106の修正です バグ修正 workspaceが溢れた場合にpanicしていたのを修正 #1834 Basic認証でAuthorizationのフォーマットがおかしい場合varnishncsaでデコードできない問題の修正 #2148 VCLでバックエンドの比較が動いていなかったのを修正 #2168 VSMの使用状況のカウンタ(vsm_free)がおかしかったのを修正 #2188 ESIのincludeでパスが存在しない場合にpanicしたのを修正 #2197 「http://foo/」の場合は問題なかったのですが「http://foo」の場合
少し前にスロットルでサイトを守る(vmod-vsthrottle)で異常なリクエストに対してスロットルをかける方法を紹介しました。 しかしこれはあくまでリクエストレートのみで、そのリクエストがどれだけ帯域を使うかは制限しません。 例えば特定のリソースについては帯域を制限をかけたい場合や(動画のようにDL中でも再生できるのであれば、必要なビットレート+αでもいいかなとか) ユーザの属性(課金状況など)や、はたまたリクエストが多いユーザに対しては制限をかけたい場合などいろいろあるかと思います。 今回は帯域制限を行うvmod-tcp(ドキュメント)を紹介します。 環境について vmod-tcpでの帯域制限はtc-fqのSO_MAX_PACING_RATEを指定することによって実現しています。 これはカーネル3.13からの機能のためUbuntuであればTrusty以降が必要です、CentOSの場合
Standard Configuration Note: This feature is currently experimental. Options and configuration described here are subject to change in future releases. Please subscribe to the announcements mailing list to keep yourself informed of updates to this feature. By default PageSpeed serves HTML files with Cache-Control: no-cache, max-age=0 so that changes to the HTML and its resources are sent fresh on
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く