LoginSignup
2
1

More than 3 years have passed since last update.

AMPキャッシュを手動で更新する方法

Posted at

はじめに

AMPに対応したページは、Google側のプロバイダにキャッシュし、そこからキャッシュされたページが配信され、ウェブページの高速化を実現しています。
そこで、キャッシュされたページをどのように更新するのかというのが問題となってきます。
この記事では、そのAMPキャッシュをupdate-cacheという仕組みを使い、手動で更新する方法を記載します。
WordPressなんかでは、記事を更新したときにAMPページのキャッシュも更新するようにしたり対応する必要があります。

手順

  1. 秘密鍵、公開鍵を作成する
  2. 公開鍵をアプリケーションサーバーに設置する
  3. update-cache をリクエストするプログラムの作成
  4. update-cache を実行

秘密鍵、公開鍵を作成する

ローカルで秘密鍵、公開鍵を作成する。

$ openssl genrsa 2048 > private-key.pem
$ openssl rsa -in private-key.pem -pubout > apikey.pub

公開鍵をアプリケーションサーバーに設置する

公開鍵をサーバーに設置します。以下の場所に置いてください。

/ドキュメントルート/.well-known/amphtml/apikey.pub

WEBサーバーの設定ファイルに、コンテンツタイプに「text/plain」を追加する必要があります。
Nginxの場合の設定方法です。

/etc/nginx/mime.types
types {
     # 末尾に追加
     text/plain    pub;
}

nginx再起動

$ sudo systemctl restart nginx

公開鍵「apikey.pub」にアクセス可能であること、コンテンツタイプが「text/plain」になっていることを確認します。

$curl -I https://example.com/.well-known/amphtml/apikey.pub

HTTP箇所とcontent-type箇所が、以下のように表示されていれば問題なく設定できています。

HTTP/2 200
content-type: text/plain

update-cache をリクエストするプログラムの作成

本来であれば、Googleの公式ドキュメント「AMPコンテンツを更新する」を参照して、手動で作成した鍵を使いupdate-cacheリクエストを行うのですが、一連の流れをシェルスクリプトで作成してくれている先人がいるので、ありがたく使用させていただきましょう。
https://github.com/sizaki30/google-amp-update-cache

スクリプトをダウンロードしたら、秘密鍵の場所を変更します。

# private_keyの部分を変更する。
private_key='/秘密鍵の場所をフルパスで指定/private-key.pem'

スクリプトをサーバーの任意の場所にアップロードしてください。

update-cache を実行

AMPキャッシュを更新したいページのURLを指定して、スクリプトを実行します。(URLはクオートすることをオススメします)「OK」と表示されれば update-cache リクエスト成功です。

$sudo sh google-amp-update-cache.sh 'https://example.com/test.html'
OK
2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1