お使いのデバイスに保存されるページキャッシュ。ブラウザ「戻る」などの2回目に見る時、サーバにわざわざ行かずブラウザ側で保存したものをそのまま読み込む。
・サーバのオープンファイルキャッシュ
サーバがファイルにアクセスする際に取得するタイムスタンプや場所情報を一時的tempファイルに保存するキャッシュ。
・サーバのプロキシキャッシュ
サーバがアクセスされたページに返した情報をまるごと保存して、以降削除されない限り恒久的に同じものを表示させるキャッシュ。
他にもCDNやAMPキャッシュ、データベースのキャッシュなどありますが割愛します。
サーバのプロキシキャッシュは誰かがAの記事にアクセスすると、Aはその時点でキャッシュが作られるので以降他の人がAにアクセスした際に同じキャッシュを返します。これが非常に強力であり、サーバへの負担は軽減されますが削除されない限り同じHTMLを表示し続けます。よってコメントを付けても反映されることはありません。
このプロキシキャッシュは本来削除するのに全てのキャッシュを削除するしかなかったので、crontabで3時間毎に削除していました。そのためコメントしても3時間の間反映されません。
このモジュールを利用することによって、URLに/purge/のついた同じページのキャッシュを削除することが可能になりました。コメントをした時、fetchで勝手にアクセスさせてあげることで、付与されます。JavaScriptの使えないAMPモードでは、投稿ボタンを押した直後にキャッシュ削除させるボタンを付与することによって実現しました。 purgeモジュールを利用するにはNginx Plus、もしくはhttp://labs.frickle.com/から取得できます。
Nginxをソースからコンパイルしたときに./configureに
を追加します(2.3のバージョンは時代によって変えてください)。元々コンパイルでインストールした人はnginx -Vででてくるものをコピペして、最後尾に追加すればよいです
Nginx /etc/nginx.confで
あとはコメント投稿ボタンを押したときにさっき書いたpurgeのURLへアクセスさせます。JavaScriptならこう書きます
無事成功すればNginxから200ステータスのレスポンスを返してくれます。
タイトル、本文、タグに加え、記事に書かれたコメント本文までヒットします。 このサイトは2種類の表示形式に分かれており通常版とAMP版があります。(厳密には3種類)通常版はJavaScriptが使える一般的な形式のHTMLですが、AMP版はGoogleにコンテンツをキャッシュさせサイトの表示をシームレスに軽快にすることができますが、いろいろな制約に基づいて書いていかなければなりません。そこで生じるさまざまなバグに対応していきます。 12月30日、一通り作業が終わってエラーログをtailでリアルタイムにみていると404のURLがズラズラと表示されていきます。 URL(eromanga/summarjourney)の後ろにハテナをつけてデタラメな文字列が並んでいます。 URLの文字数を1000文字ほど打ってサーバの負担を増やしていく嫌がらせかと思ったんですが、どうやらGoogle検索からAMPページに訪れた場合のリファラーURLだったんです。 サーバに https://erozine/jp/eromanga/XXXXXX のページを通った場合、太字のようにエロ漫画カテゴリ/スラッグの記事をデータベースで探して表示させていました。 上記で厳密には3種類あるといったのは、自分で作ったAMP版の他に「Google検索から訪れた場合のAMP版」というのが存在します。それぞれソースとURLが異なります。これは普通に作っていたらまず気づくことはない(自分のサイトはブックマークに入れているはずなのでアクセスする際にエロジンとわざわざ検索しない、あるいはURLにerと打ち込んだだけで候補でエロジンにアクセスできる) https://erozine-jp.cdn.ampproject.org/v/s/erozine.jp/amp?usqp=mq331AQCKAE%3D&_js_v=0.1 [未完]AMPバグ奮闘記
クエリーバグ
eromanga/quickorslow?_gl=1*1vtdtpi*_ga*RlNsdE40bmdTVVpITml5YUoxQVR6REtnN0kzUzjc...
eromanga/greed_of_the_aoki?_gl=1*1mdj35y*_ga*dlRZM3dpN2xpQ1I3U1NHeUJVNGZHaGc3M3...
eromanga/shoujikigirlparty?_gl=1*1be16km*_ga*QTVHNUdubEdJbHZ0TVRSeTRCRG5mRi1ReV...
つまり上記のように?の次に変な文字列が続くとサーバはeromanga/XXXXX?_gl=1*1be16km*_ga*QT...のURLを探します。
当然そのようなURLは無いので404を返してしまうということです。 URLはURLとしてクエリはクエリとして分けるよう定義することで解決しました。bodyが二つ入れ子になるバグ
この記事は未完で終わりましたがもったいないので公開だけします日付 2020-01-08T13:02:00 分類 お知らせ 画像 2枚 訪問数
Thank you for watching until the end似たような記事
涼しくなりかけの夏に110APPLEに保存されていた比較的優れた画像集132枚
面白画像速報100選
夏休み前半に水風呂の中で集めておいた122枚の画像集
平成二十九年度 新秋二学期画像祭135枚
前しか見ない男が保存した、次へ行くための画像集133枚のネクストシーズンへの切符
2020年7月12日(日)の画像のやつ
【成年向け同人誌】恋愛サンプル[なぱた]
【なぱた】週末早朝のエロ漫画部【Blush Kiss】
あれから何年か経った日に保存した曰く付きの画像集119枚
心地よい秋に保存した色とりどりの名画集152枚