レンタルサーバー
BIG-server.com
簡単・はやい・大容量・どんな目的にもマッチするレンタルサーバー
HOME プライス お見積もり・プラン選択 お申し込み ユーザーサポート お問い合わせ

■ レンタルサーバー BIG-server.com オプションサービス

CGI高速化チューニング(C言語用)
名称 mod_cgidso

CGIプログラムの起動を高速にするためのApacheモジュール。

特徴 mod_cgidso はCGIをApacheのモジュールとして動かします。

CGIをApacheのモジュールとして動かすことでApacheのプロセス内で実行するので、 CGI自体をプロセスとして起動する必要がなくなります。よってCGIの起動コストが無くなり パフォーマンスの向上に繋がります。

CGIそのものをモジュール化するとプログラム変更のたびにモジュールの入れ替えのため Apacheの再起動が必要になりますが、mod_cgidso 実行した場合は動的にモジュールが 呼び出される為、Apacheの再起動は必要ありません。

仕組み mod_cgidso はCGIをApacheのモジュールとして動かす為の方法です。

mod_cgidso を利用するには、C/C++で書かれたソースコードを Apacheのモジュール用に書き直す必要があります。 プログラムの最初に呼び出される main() を dso_main() に変更します。

mod_cgidso の場合は dso_main() が main() の代わりに呼び出されます。

プログラムをコンパイルするには、apxsを使用します。 apxsはApacheパッケージに含まれる、Apacheモジュールを作成するプログラムです。 apxsを使ってコンパイルするには次のように行います。

$ apxs -c foo.c

コンパイルが通ると、カレントディレクトリの .libs というディレクトリに foo.so というファイルが生成されます。

この foo.so というファイルがApacheのモジュールです。 foo.soを呼び出すことで、mod_cgidsoがfoo.soをApacheモジュールとして実行してくれます。

概要
#include "httpd.h"

/* main() の代わりに dso_main() が最初に呼びされる */
int dso_main(request_rec *r, int argc, char **argv)
{
	/* Content-Type の設定例 */
	ap_set_content_type(r, "text/html");

	/* コンテンツ出力例 */
	ap_rprintf(r, "Hello, world!\n");

	return(0);
}
効果 mod_cgidso を利用することでCGIの起動コストがなくなるため、 1秒間に何十回もCGIが呼び出されるような場合ですと 飛躍的にパフォーマンスが向上します。
使用上の注意 プログラム自体の処理が遅い場合は、mod_cgidso を利用してもパフォーマンスは向上しません。 逆に、パフォーマンスの低下になる場合もあります。

プログラムはApacheのモジュールとしてメモリ上に常駐する形になりますので、 メモリリークには注意してください。malloc等で明示的に確保したメモリは、必ず開放を行ってください。

BIG-serverでは mod_cgidso 対応の専用サーバをご用意いたします。

専用サーバーコース をご利用のお客様で mod_cgidso の使用をご希望のお客様はメールにてお気軽にお問い合わせ下さい。

BIG-server.com オプションサービスに戻る

ご質問などございましたらお気軽にお問い合せください。
server@maido3.com


Copyright (C) 1997-2008, big-server.com. All Rights Reserved. server@maido3.com
レンタルサーバー BIG-server.com
Powered By Maido3.com