FreeBSD

cutxout2005-08-12

Apache2 with worker.c

  • ある程度設定が落ち着いてきたので、次にやることは高速化です。
  • preforkで動いているのをthreadに変更するのが最も抜本的な対策かと思い、実行してみる。
  • FreeBSDでthreadを使うためには、明示的に--enable-threadsを指定する必要があるようだ。
            * If you are building on FreeBSD, be aware that threads will
              be disabled and the prefork MPM will be used by default,
              as threads do not work well with Apache on FreeBSD.  If
              you wish to try a threaded Apache on FreeBSD anyway, use
              "./configure --enable-threads".
  • これを踏まえて、./configureを走らせてみる。
./configure --prefix=/usr/local                          \
            --enable-layout=FreeBSD                      \
            --enable-threads                             \
            --with-mpm=worker                            \
            --enable-with-barkley-db=/usr/local/bin/db42 \
              CPPFLAGS=-I/usr/local/include/db42         \
              LDFLAGS=-L/usr/local/lib/db42              \
            --enable-dav=yes                             \
            --enable-dav-fs=yes                          \
            --enable-headers=yes                         \
            --enable-ssl=yes                             \
            --enable-proxy=yes                           \
            --enable-proxy-connect=yes                   \
            --enable-proxy-ftp=yes                       \
            --enable-proxy-http=yes                      \
            --with-ssl=/usr/bin                          \
            --enable-so=yes                              \
            --enable-mods-shared='ssl proxy proxy-connect proxy-ftp proxy-http' \
            --enable-auth-digest=yes
make
make install

httpd -l

  • 必要
    • core.c
      • 常に使用可能な Apache HTTP サーバのコア機能
    • mod_access.c
      • クライアントのホスト名、IP アドレス、その他のクライアントのリクエストの特徴に基づいたアクセス制御機能を提供する
    • mod_auth.c
      • テキストファイルを用いたユーザ認証
    • mod_auth_digest.c
      • User authentication using MD5 Digest Authentication.
    • mod_log_config.c
      • サーバへのリクエストのロギング
    • mod_env.c
    • mod_headers.c
      • Customization of HTTP request and response headers
    • mod_setenvif.c
    • prefork.c
      • スレッドを使わず、先行して fork を行なうウェブサーバを実装
    • http_core.c
    • mod_mime.c
      • リクエストされたファイルの拡張子とファイルの振る舞い (ハンドラとフィルタ)、内容 (MIME タイプ、言語、文字セット、エンコーディング) とを関連付ける
    • mod_dav.c
    • mod_dav_fs.c
    • mod_cgi.c
    • mod_dir.c
      • 「最後のスラッシュ」のリダイレクトと、ディレクトリのインデックスファイルを扱う機能を提供する
    • mod_imap.c
      • Server-side imagemap processing
    • mod_actions.c
    • mod_alias.c
      • ホストファイルシステム上のいろいろな違う場所を ドキュメントツリーにマップする機能と、 URL のリダイレクトを行なう機能を提供する
    • mod_so.c
      • 起動時や再起動時に実行コードとモジュールをサーバにロードする
    • mod_autoindex.c
      • Unix の ls コマンドや Win32 の dir シェルコマンドに似た ディレクトリインデックスを生成する
  • 不明
    • mod_asis.c
      • 自分用の HTTP ヘッダの書かれているファイルを送信する
    • mod_negotiation.c
  • 不要かも
    • mod_include.c
      • サーバがパースする html ドキュメント (Server Side Includes)
    • mod_status.c
      • サーバの活動状況と性能に関する情報を提供する
    • mod_userdir.c