月曜日, 3月 31, 2008

[Linux] ブラウザの挙動

サイトの閲覧快適度(ユーザがさくさく感を感じる)を上げるには、amazonなどでもやられているように、主に画像部品は複数のドメインに分割するのがよい。
こうすることで、ブラウザはドメイン単位(これが同じIPのホストにアクセスしてもよい)に2本は並列でファイルをとりに行ってくれるため。ただし3ドメイン以上はやっても無駄(セッションは同時に6本まで、という制限もあるため)。
さらに注意としては、Javascriptファイルはシーケンシャルに取る仕様である(IEは確認)ので、".js"を分けるときはほどほどに。

日曜日, 3月 30, 2008

[Linux] サイト設定をProxyでテスト

mod_proxyを用いて、apacheにプロキシ機能を組み込んでおく。
このあとで、(例えば)以下のようなLocationディレクティブを読み込ませておき、ブラウザでこのプロキシを通してr25.jpを見ると、
<LocationMatch "(.*)css.r25.jp/common/(.*)">
ExpiresActive on
ExpiresDefault "access plus 4 weeks"
</LocationMatch>

オリジナルのレスポンスに追加する形で、Expireヘッダが返されることが確認できる。
Location便利。

金曜日, 3月 28, 2008

[Linux] AOL Pagetest

ブラウザでのサイトアクセスを可視化してくれるツール。"IBM Page Detailer"というほうが有名だけど、"AOL Pagetest"のほうが扱いやすい(GIF画像としてエクスポートできること、ブラウザでのページレンダリング開始のタイミングも表示してくれる(緑の縦棒)こと等)。
 blog it

月曜日, 3月 24, 2008

[Linux] nginxのServerヘッダとか

nginxのデフォルトなHTTPレスポンスヘッダには、"Server"ヘッダがバージョン付きで表示されているので、セキュリティホールになりかねない。
HTTP/1.1 200 OK
Server: nginx/0.5.35
・・以下略・・

これはしかし、ソースを変えなくともngx_http_headers_moduleのディレクティブ指定で消すことができる(正確には"nginix"とだけ出してバージョンを消す)。
server {
listen 8090;
server_tokens off;
server_name divershigh;

#charset koi8-r;
charset utf-8;
・・以下略・・

ちなみに、404ページでもデフォルト(404ページの指定無し)だとバージョンが表示されてしまうのでキチンと自分用のページを指定して置くことが必要。

日曜日, 3月 23, 2008

[Linux] SlideShare

SlideShareというパワポ共有サイト(?)では、そのバックヤードにAWS(というかS3)が使われている。



同サイトではブラウザ上でのスライド表示にFlashを使っているが、こいつは裏でS3に対し一枚づつデータを取得しているようだ(LiveHeadersで確認)。
http://s3.amazonaws.com/slideshare/high-performance-web-pages-20-new-best-practices-120577522992998-3-slide-1.swf
http://s3.amazonaws.com/slideshare/high-performance-web-pages-20-new-best-practices-120577522992998-3-slide-2.swf
・・・
http://s3.amazonaws.com/slideshare/high-performance-web-pages-20-new-best-practices-120577522992998-3-slide-76.swf

同サイトでは、PPT自体のダウンロードもS3から行われるようになっている、、が、ここにはスライドの公開非公開をユーザ側で操作できるよう、一段の制御が掛かっている(ユーザ側でPublic指定していれば、SlideShareのサイトで正しくS3へのリダイレクトを行ってくれる、Private指定ならこのリダイレクトが行われずダウンロード不可(ファイル名と認証キーを混ぜ込んだSHA1キーを正しく持ってゆかないとS3的に通してくれない≒他のPPTでURL作ってファイル名を変えてもダメ))。

上手く使ってますな(丸ごとダウンロードは出来なくても上記みたいに1枚づつならswfで取れるけどね)。

木曜日, 3月 20, 2008

[Linux] fdm

procmailの代替ツールにfdmというのがあります。procmailrcは独自色が強いですが、これは比較的キレイな正規表現による制御が可能です。

月曜日, 3月 17, 2008

[Linux] Tomcatを本番で使うには

Tomcatは、かなり素人なので、チューニングの情報が少なくて困ります。
でも、その中でも当然やるべきなものがいくつかありました。

$TOMCAT_HOME/conf/web.xml

・JspServletの"development "は"false"にするべし(Trueにしちゃうと毎回更新確認する)
・checkIntervalはまぁ"5"程度に(5秒に一度更新確認)
元ネタはこちら.

金曜日, 3月 14, 2008

[Linux] sharedance

memcachedは結構汎用的な使われた方を意図しているようですが、ウェブサイトのセッション管理用メモリDBでsharedanceというのがあるそうです。名前のセンスがよいです。
PHPのAPIを標準搭載していますが、、今みたら2006年が最終更新なのですね。。。解説ページはこちらを参照。
libevent回りを調べていて見つけました。

月曜日, 3月 10, 2008

[Linux] tethereal

tetherealというパケットキャプチャ解析ミドルのCUIがあり、これを使うことで実はPV分析なんかも上手くすると出来るハズです(今更ですが"I, newbie"さんのブログを見てこんなことを考えていたのを思い出しました。RTメトリクス高いですし)。

[Amazon] images-amazon.com

アマゾンで買い物をしていて、ブラウザのステータスバーに出ているドメイン名が気になった(ec2.images-amazon.com)。ec2はクラウドをバックに使ったシステムであると公にしている(それはそれですごいけど)のだろうが、それより驚くべきはここに当てられるURL。
aaugh.comによると、このURLをいろいろいじることで特価マークを出したり消したり、画像サイズを変更したり出来るらしい。さすが。
まぁ単発で見るとたいしたRESTではないけれど、あれだけの商品数を捌いていることを考えると・・・。

日曜日, 3月 09, 2008

[Linux] Y!で書かれたblogは

Yahoo!ブログをRSSで読むと、画像が「表示できません」になります。これは直リンク禁止なのかなんなのか分かりません(知りません)が、google/readerで読んでいて不便なので、以下のプロキシを作って読むように変更しました。

・rss.xmlを本プロキシ経由で読み取ることにする
・このプロキシさんは言われたURLで結果を取得する
・また、そのときはY!のリファラを付けて取りに行く
・さらに、結果内の画像リンクは自分経由になるよう書き換える


これで綺麗に見えるようになりました。いちおうソースを置いておきます。ご覧いただければ分かるとおり、たっきーさんのProxyを改変させて頂いて作ってみました。

金曜日, 3月 07, 2008

[Linux] LDAPの認証エラー

以下が出て、原因がいまいち検索しても見当たらなかったが、解決したのでメモ。
Invalid credentials

pam_check_host_attrを使っているのに、当該ユーザのhostアトリビュートに記述が無かったことが原因。

木曜日, 3月 06, 2008

[Linux] SquidGuard

Squidで、配下の人に対して禁止URLを設定する場合、SquidGuardというのを使うのが一般的なんですね。。知りませんでした(設定で無理にやったことはあります)。