昨夜、日記がケータイモードで表示されているとの報告を受けて気がついたんだけど、リバースプロキシを使って tDiary をキャッシュする場合、
の三つでキャッシュと表示を切り替えないと、どこかのタイミングでキャッシュされた内容が一定時間どの端末からも表示され続けてしまう。
そんなわけで、proxy_cache_key を使って キャッシュを切り替えるようにしてみた。
http {
(省略)
proxy_cache_path /var/nginx/cache levels=1:2 keys_zone=cache:4m max_size=50m inactive=120m;
proxy_temp_path /var/nginx/tmp;
proxy_cache_key "$scheme://$host$request_uri";
(省略)
location / {
proxy_redirect off;
(省略)
if ($http_user_agent ~* '(DoCoMo|J-PHONE|Vodafone|MOT-|UP\.Browser|DDIPOCKET|ASTEL|PDXGW|Palmscape|Xiino|sharp pda browser|Windows CE|L-mode|WILLCOM|SoftBank|Semulator|Vemulator|J-EMULATOR|emobile|mixi-mobile-converter)') {
set $do_not_cache 1;
}
if ($http_user_agent ~* '(iPhone|iPod|Opera Mini|Android.*Mobile|NetFront|PSP)') {
set $do_not_cache 2;
}
proxy_cache_key "$scheme://$host$request_uri $do_not_cache";
(省略)
iPod touchからしか確認してないけど、動いているっぽい。変なとこがあったら @hsbt とかツッコミで連絡してもらえると助かります。
今日の参加者は12人くらい。
で盛り上がりつつ、それぞれがもくもくと何かをやってた。
オレは ursm と二人でひたすら carrierwave x rack-gridfs x mongo というトライアングルと戦っていた。この辺についてはもうちょい話をまとめてから書きます。