2017-09-28

Fastly memo

Fastly
https://www.fastly.com/

キャッシュの設定がそれぞれ変更される都度version管理されている

VCL(Varnish Configuration Language)というのに記載する。

sub vcl_recv {

  /* unset state tracking header to avoid client sending it */
  if (req.restarts == 0) {
    unset req.http.X-Authed;
  }

  if (!req.http.X-Authed) {
    /* stash the original URL and Host for later */
    set req.http.X-Orig-URL = req.url;

    /* set the URL to what the auth backend expects */
    set req.url = "/authenticate";

    /* Auth requests won't be cached, so pass */
    return(pass);
  }

  if (req.http.X-Authed == "true") {
    /* were authed, so proceed with the request */
    /* reset the URL */
    set req.url = req.http.X-Orig-URL;

  } else {
    /* the auth backend refused the request, so 403 the client */
    error 403;
  }

Authenticating before returning a request - VCL | Fastly Help Guides
https://docs.fastly.com/guides/vcl/authenticating-before-returning-a-request

# Pass through all requests for /login/* and /admin/*
if (req.url ~ "^/(hoge|fuga|login)/") {
  return(pass);
}

こんなかんじでかけばキャッシュさせないURLの設定とかできる様子。

特定のリクエストをキャッシュ対象外に設定する - Japanese - Fastly's Community
https://community.fastly.com/t/topic/875

Cache を返しているかどうかの確認

キャッシュ関係のヘッダは「Cache-Control」「Expires」「Pragma」。

ブラウザのdeveloper tools とかで Network で該当ページのHTMLなりを選択して、Response headers を確認する。

キャッシュヒットしてるとこの辺で返ってくる。

X-Cache-Hits : 1
X-Cache	: HIT

FastlyにキャッシュされたオブジェクトのTTL確認方法 - Japanese - Fastly's Community
https://community.fastly.com/t/fastly-ttl/867

そのほか Response headers

Cache-Control	: no-store, no-cache, must-revalidate
Pragma : no-cache

Cache-Control ヘッダ
https://qiita.com/karore/items/2dc6ab8347c940ea4648#arrow_right-cache-control-ヘッダ


参考リンク