タグ

ブックマーク / www.onflow.jp (8)

  • cyano: mod_expiresとmod_rewriteを使ってサイトの帯域節約と体感速度を向上させる方法

    普通の帯域節約術としては、mod_deflateでdeflate圧縮するとか、CSSやJSファイルのHTTPレスポンスヘッダにLast-ModifiedやEtagを追加しておいて、ブラウザがHTTPリクエストヘッダにIf-Modified-SinceやIf-None-Matchを付加するようにし、コンテンツが変更されていなかったら304 Not Modifiedを返すという方法を取るかと思います。 しかし、HTTPサーバーはコンテンツの数だけ304 Not Modifiedを返さないといけないため、その分帯域を消費しますし、またCSSや画像などのパーツの304 Not Modifiedが返ってくるまで、そのパーツのレンダリングが行えないという問題があります(つまり体感速度に影響します)。 今回紹介するのはExpiresヘッダやCache-Control: max-age=31536000を

    ques9
    ques9 2007/06/11
  • cyano: VALUE DOMAINで独自ドメインを使ったダイナミックDNSを使う

    ダイナミックDNSを使うと、ADSL接続などでIPが変わってしまう自宅でサーバーを外向けに公開できたりするのですが、大抵の無料のダイナミックDNSサービスは特定のドメインのサブドメインしか割り当ててくれません(たとえばddo.jpさんだと、a.ddo.jpなど)。 ところが、VALUE DOMAINでは自分で取得した独自ドメインをダイナミックDNSで使うことができます。また、DNSのMXレコードなども使えるので、メールサーバーをたてておけば独自ドメインでのメール受信も可能です。これは便利。 ただ、設定でいくつかつまずいたので設定ログとして残しておきます。 まず、ネームサーバーの変更を行います(取得した状態から変更してなければ、このステップは必要ないはずです)。ダイナミックDNSに使えるのはNS1.VALUE-DOMAIN.COMとNS2.VALUE-DOMAIN.COMとのことなので、ネー

  • cyano: 30万個ぐらいの静的ファイルを配信するサーバーの選び方

    naoyaさんが公開されてるInside Hatena Bookmark's Backend の資料などを読むと、mod_perlなサーバーやMySQLサーバーの選び方の参考になったりするわけですが、世の中を見渡してみても、静的コンテンツ(画像とか)を配信するサーバーの指南書らしきものはなかなか見あたりませんでした。 なので、経験を元に書いてみることにします。 弊社の画像配信サーバーには、平均10kbぐらい(たぶん)の画像が30万個ぐらいあって、それをDell PowerEdge 1750+lighttpdを使って配信してます。 以前は搭載メモリ1GBのサーバーを使っていたのですが、その時のvmstatがこのような感じ。 procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu---- r b sw

  • cyano: mod_proxy_balancerで中〜大規模サーバー運用するときの勘所 - (4) mod_deflateと組み合わせる際の注意点編

    mod_proxy_balancerで中〜大規模サーバー運用するときの勘所 - (4) mod_deflateと組み合わせる際の注意点編 Apache2.2から、ロードバランシングをしてくれるmod_proxy_balancer というモジュールが標準添付になりました。 このモジュール、その名前の通り、ApacheレベルでHTTPリクエストをバックエンドのサーバーに振り分けることでロードバランシングをしてくれるモジュールです。 Apacheの公式ドキュメントや試しに入れてみた人のBlogなどは散見されますが、実際の現場で運用している事例というのはまだ無いようです。 そこで、実際にピーク時にover 500 request/secでmod_proxy_balancerなサーバーを運用している経験をふまえ、つまずいた点などを公開していきたいと思います。 今回は、mod_deflateと組み合わ

  • cyano

    次期ColdFusionであるColdFusion 8 (Scorpio)のプレリリースプログラムに応募可能になりました。 MAX2006のScorpioセッションで披露された内容によれば、Scorpioでは今までColdFusionでブラックボックスになっていたサーバー内の様子がモニタリング可能になっているようです。例えばどのクエリに時間がかかっているとか、どのクエリが何回実行されて、キャッシュ上のサイズはどれぐらいかなど詳細に観察可能になっている模様。大規模サイトを運用するにあたっては、何が原因でパフォーマンスが出ないかを解析するのは大事なことであり、それが可能になる今回の改善は非常に嬉しく、また実用的。これでばりばりチューニングできそうです。

    ques9
    ques9 2006/02/05
  • cyano: prototype.jsによってArrayクラスに付け足される関数の解説

    prototype.jsをインクルードすると、Arrayクラスにいくつか関数が付け加えられ、拡張されます。その付け足される関数の解説です。prototype.js version 1.4.0_rc4時点でのものです。 前にも話したとおり、prototype.jsをインクルードするとprototype.jsのEnumerableで定義されてる関数群はArrayクラスで使えるようになりますが、それ以外にも以下の関数が使えるようになります。 関数

  • cyano: Google AnalyticsをHTTPS(SSL)なページで使う

    Googleがリリースしてる無料のアクセス解析ツールがGoogle Analytics。元々はUrchin社が有償で提供していたアクセス解析ツールとあって、かなり高性能。 そんなGoogle Analyticsですが、普通にHTTPS(SSL)なページに埋め込むと、IEなどでセキュリティーに関する警告が出てきてしまいます。それを防ぐ方法。 やり方はとても簡単。GoogleからのJavaScriptを読み込む際のプロトコルとドメインを変更するだけ。以下例。 <script src="https://ssl.google-analytics.com/urchin.js" type="text/javascript"></script> <script type="text/javascript"> //<![CDATA[ _uacct = "自分のアカウントID"; urchinTracker

  • cyano: prototype.js version 1.4.0系でのEnumerableの使い方

    Ruby on Railsなどのフレームワークに標準付属されていて、オブジェクト指向なJavaScriptを書く人たちの間で注目されているprototype.jsですが、Version 1.3.1時点での機能についての解説書は見つけたものの(prototype.js v1.3.1 の使い方)、1.4系で盛り込まれるであろうEnumerableについては見つけることができませんでした。なので、Version 1.4.0_rc4時点でのEnumerableについて解説してみます。 Enumerableとは、配列やハッシュなどのデータ構造に対して繰り返し処理をさせるための機能を集めたものです。たとえば配列に入っている値それぞれについて処理を行いたかった場合、従来ならば以下のように書いていたでしょう。 var data = [1,2,3,4]; for(var i=0; i<data.length

  • 1