« 2008年6月 | トップページ | 2008年9月 »

2008年8月

Mac OS X Server:Webサーバ設定の問題

【問題】
Mac OS X Server 10.4.x(Tiger Server)にて,OS付属のWebサーバApache)を稼動させて,これにWebブラウザでアクセスすると,一部のコンテンツが表示されないことがあります。また,ApacheのKeepAlive機能(「サーバ管理」ツールでの表記は「持続的な接続を許可する」)をONにすると,Webクライアントからアクセスしたときに,すべてのコンテンツの表示が完了するのに時間がかかることがあります。

【原因】
Mac OS X ServerのWebサーバには「パフォーマンスキャッシュ」という機能が組み込まれており,デフォルトでONになっています。
このパフォーマンスキャッシュは,通常Webサーバが使用するポート番号80でリクエストを受け付けます。Webサーバ(Apache)は,パフォーマンスキャッシュがONのときはポート番号16080でリクエストを受け付けます。
外部からのリクエストはまずポート番号80が受け取り,パフォーマンスキャッシュでコンテンツがキャッシュされていなければポート番号16080へリダイレクトされます。そのためポート番号16080が外部からアクセスできないとキャッシュにないコンテンツを表示させることができません。

また,パフォーマンスキャッシュがONのときにKeepAlive機能もONだった場合,KeepAliveで設定されたタイムアウト時間がリダイレクト時のウエイトタイムになってしまうようです。そのためたとえばタイムアウト時間が15秒だった場合,Webページ上の画像が1枚表示されるごとに15秒待たされる,ということになってしまいます。

【対策】
パフォーマンスキャッシュをOFFにすれば,とりあえず問題は解消します。パフォーマンスキャッシュをONにしたまま問題が出ないようにするには以下のようにします。

  1. ルータなどの設定により,ポート番号16080を外部からアクセスできるようにする。
    →ポート番号16080にアクセスできるかどうかは,HPのURLがたとえば「http://www.example.co.jp/」だった場合,この URLを「http://www.example.co.jp:16080/」と変更してWebブラウザからHPにアクセスできるかどうかで確認することができます。
  2. KeepAlive機能(「持続的な接続を許可する」)をOFFにする。
    パフォーマンスキャッシュとKeepAliveの両方をONにすると,上記のような問題が生じるので,「自分達のサイトにとってどちらの機能がより恩恵があるか」を検討し,どちらをONにするかを決定することになるかと思います。
■関連情報
Appleサポート:Webパフォーマンスキャッシュについて学習する
Appleサポート:Webサービスがデフォルトでポート80と16080を使用する
Appleサポート:Appleソフトウエアで使用するTCP/UDPポート
Appleサポート:Mac OS X Server 10.4Web サイトを管理する
Apple Server 製品ドキュメント:Webテクノロジーの管理[PDF]

■関連書籍をAmazonで検索:[Apache][Mac OS X Server]
Apacheセキュリティ

にほんブログ村 IT技術ブログへ にほんブログ村 IT技術ブログ ネットワーク・SEへ にほんブログ村 IT技術ブログ Webサイト構築へ 人気ブログランキングへ ←この記事が役に立ったという方はクリックお願いします。
ノートンシリーズ新登場バナー

| | トラックバック (0)

« 2008年6月 | トップページ | 2008年9月 »