トップ «前の日記(2010/04/26 (月) ) 最新 次の日記(2010/04/28 (水) )» 編集 RSS feed

HsbtDiary


2010/04/27 (火) [長年日記]

[nginx][tDiary][proxy] nginx のリバースプロキシを構築した(2)

昨夜、日記がケータイモードで表示されているとの報告を受けて気がついたんだけど、リバースプロキシを使って tDiary をキャッシュする場合、

  • PC
  • ケータイ
  • スマートフォン

の三つでキャッシュと表示を切り替えないと、どこかのタイミングでキャッシュされた内容が一定時間どの端末からも表示され続けてしまう。

そんなわけで、proxy_cache_key を使って キャッシュを切り替えるようにしてみた。

nginx.conf

 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";
    (省略)

hsbt.org.conf

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 とかツッコミで連絡してもらえると助かります。

[ruby][asakusa.rb] asakusa.rb 46回

今日の参加者は12人くらい。

  • JRuby会議の打ち合わせ
  • RubyKaigi2010に申し込みする内容を話し合ったり決めたり
  • Ruby関西勉強会のレポート

で盛り上がりつつ、それぞれがもくもくと何かをやってた。

オレは ursm と二人でひたすら carrierwave x rack-gridfs x mongo というトライアングルと戦っていた。この辺についてはもうちょい話をまとめてから書きます。