5分でできる!AMPキャッシュを update-cache で更新する方法

WordPress
スポンサーリンク

AMP(Accelerated Mobile Pages)に対応したウェブページは、ドキュメントや画像を Google などの AMPキャッシュプロバイダがキャッシュするため、ウェブページを高速に表示することができます。しかし問題となるのは、ウェブページの内容を更新しても、AMPキャッシュが更新されるまでは古い内容が配信されてしまうことです。そこで今回は、Google の AMPキャッシュを update-cache という仕組みを使って更新する方法をご紹介します。

参考記事:AMP ページのキャッシュの仕組み – AMP

AMPキャッシュを更新するための手順

Google の AMPキャッシュを更新するための手順です。RSA鍵は一度作成してサーバーに設置してしまえば何回でも使えます。

  • RSA鍵を作成する(秘密鍵と公開鍵)
  • 公開鍵をサーバーに設置する
  • update-cache リクエストを作成する
  • 秘密鍵で update-cache リクエストに署名する
  • update-cache リクエストを実行する

参考記事:AMP コンテンツを更新する | Google AMP キャッシュ

RSA鍵を生成する

まずはじめに RSA鍵(秘密鍵と公開鍵)を適当な場所に作成します。秘密鍵「private-key.pem」はその名のとおり秘密にして管理しましょう。

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

公開鍵をサーバーに設置する

公開鍵「apikey.pub」をサーバーの以下の場所に設置します。

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

公開鍵「apikey.pub」は、コンテンツタイプに「text/plain」を指定する必要がありますので、WEBサーバーの設定ファイルにコンテンツタイプの設定を追加して再起動しておきます。(以下は Apache httpd サーバーでの設定例です)

sudo vim /etc/httpd/conf/httpd.conf

AddType text/plain .pub

Apache httpd を再起動

sudo systemctl reload httpd

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

curl -I https://wwww.example.com/.well-known/amphtml/apikey.pub
 
HTTP/2 200 ←アクセス可能
date: Sat, 02 Mar 2019 20:36:19 GMT
server: Apache
(略)
content-type: text/plain ←コンテンツタイプが「text/plain」

update-cache リクエストの実行

update-cache リクエストを作成して秘密鍵で署名するのですが、手作業ではなかなか大変なので「AMPコンテンツを更新する」の手順をシェルスクリプトにまとめてみました。よければ使ってみてください。(下のリンク先の「Clone or download 」ボタンの「Download ZIP」からダウンロードできます)

https://github.com/sizaki30/google-amp-update-cache

スクリプトをダウンロードしたら、スクリプトの「private_key」に作成した秘密鍵の場所をフルパスで指定してください。

vim google-amp-update-cache.sh

private_key='/home/sample/private-key.pem'
 ↓
private_key='/<秘密鍵の場所をフルパスで指定>/private-key.pem'

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

bash google-amp-update-cache.sh 'https://wwww.example.com/article'
 
OK ← update-cache リクエスト成功

おわりに

AMPキャッシュは、なにもしなくても更新されるそうなのですが、このブログのようにアクセスが少ないページでは、AMPキャッシュが更新されるまでに数日かかるようです(^^;) 同じような悩みを持っている方はぜひ update-cache を試してみてくださいね。

コメント

  1. dekiruyone より:

    この操作をどこで行えばよいのでしょうか。ちなみに私はmixhostのcPanel内ターミナルから操作していますが、秘密鍵が読めないとの事でエラーが出てしまいます。最後の手段でドキュメントルートに秘密鍵を置いてやったりしてみましたがダメです

    • あぱーブログあぱーブログ より:

      >dekiruyoneさん

      コメントありがとうございます。
      たしかにこの記事の内容ではどこで操作を行えばいいか、わからないですね(^^;) スミマセン

      RSA鍵の生成は手元のパソコンで行い、秘密鍵は手元のパソコンに置いたままにしておいてください。「公開鍵のみ」を mixhost の「/<ドキュメントルート>/.well-known/amphtml/apikey.pub」にアップロードします。(アップロードした秘密鍵は削除してください)

      そして update-cache リクエストは、秘密鍵のある手元のパソコンから実行します。

タイトルとURLをコピーしました