アンテナサイトの新着に突如載らなくなって困っているとお客様から相談ががが。
アンテナサイト
まとめサイトを、さらにまとめているサイトであり、RSSフィードとという機能を使って、まとめサイトの更新情報を自動で取得して、一覧に並べてくれているサイトの事です。
リンク先を見て見るとあーあれかって思うはず。まとめブログを見る事がある人なら一度お世話になってたりするかも。
LivedoorやFC2のfeedはHTTPのヘッダーにETagを出力しないので、ETagを消してみてアンテナの具合を確認すべきという情報を受け最適化してみた。
ETag(エンティティタグ)
HTTPにおけるレスポンスヘッダの1つである。これは、HTTPにおけるキャッシュの有効性確認の手段の1つであり、ETagを利用してクライアントから条件付きのリクエストを行うことができる。そうすることで、コンテンツが変わらなければレスポンスをすべて返す必要がなくなるので、キャッシュを効率化し、回線帯域を節約できるようになる。
@see wikipedia ETag
ETagはブラウザキャッシュの索引き。
現状のHTTPヘッダーを確認
1 2 3 4 5 6 7 8 9 10 11 12 13 |
# curl -I http://hogematome.com/feed HTTP/1.1 200 OK Server: nginx Date: Sat, 17 Oct 2015 14:04:10 GMT Content-Type: text/xml; charset=UTF-8 Connection: keep-alive Vary: Accept-Encoding X-Powered-By: PHP/5.5.27 Vary: Cookie X-Pingback: http://hogematome.com/xmlrpc.php ETag: "ba759q7igauaAAAAAXXXjfla33d6" WP-Super-Cache: Served legacy cache file |
NginxのEtagを非出力させる
バーチャルホスト設定ファイルに以下を挿入する。
1 2 3 4 5 6 7 |
location /feed { #add_header Cache-Control public; add_header Cache-Control no-cache; etag off; add_header ETag ""; proxy_pass http://backend; } |
1 2 3 4 5 |
# nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful # service nginx restart |
Apacheの場合
1 2 3 4 5 6 7 8 |
# vi /etc/httpd/conf/httpd.conf ※以下を追加 ### ETagの無効化 FileETag None #※あるならバーチャルホストファイルで指定するのがスマート |
早速HTTPヘッダーチェック٩(๑❛ᴗ❛๑)۶
1 2 3 4 5 6 7 8 9 10 11 12 13 |
# curl -I http://hogematome.com/feed HTTP/1.1 200 OK Server: nginx Date: Sun, 18 Oct 2015 04:40:01 GMT Content-Type: text/xml; charset=UTF-8 Connection: keep-alive Vary: Accept-Encoding X-Powered-By: PHP/5.5.27 Vary: Cookie X-Pingback: http://hogematome.com/xmlrpc.php WP-Super-Cache: Served legacy cache file Cache-Control: no-cache |
WP-Super-Cacheのタグもいらなそうだ。これが表示されているという事はキャッシュされてしまっている事。feedをキャッシュする必要もないだろう。
WP Super Cacheでfeedをキャッシュさせない設定
フィード(is_feed)にチェックをつける。設定の反映を行うだけでもいいかもしれないけど、一応キャッシュの削除もしておいたほうがいいかも。
早速HTTPヘッダーチェック
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
# curl -I http://hogematome.com/feed HTTP/1.1 200 OK Server: nginx Date: Sun, 18 Oct 2015 05:26:43 GMT Content-Type: text/html; charset=UTF-8 Connection: keep-alive Vary: Accept-Encoding X-Powered-By: PHP/5.5.27 Vary: Cookie X-Cached: Sun, 18 Oct 2015 05:26:43 GMT X-Pingback: http://hogematome.com/xmlrpc.php Last-Modified: Sun, 18 Oct 2015 05:21:05 GMT Link: <http://pubsubhubbub.appspot.com>; rel="hub" Link: <http://pubsubhubbub.superfeedr.com>; rel="hub" Link: <http://hogematome.com/feed>; rel="self" Cache-Control: no-cache |
新規で記事を投稿して貰い確認
各アンテナサイトの新着に流れるようになったようで良かった٩(๑❛ᴗ❛๑)۶
今回の件で自分でもアンテナサイトを作ってみるのもおもしろいかも!