From: Yoshiki Hayashi
Date: Mon, 14 Jul 2003 07:07:34 +0000 (+0000)
Subject: Update Japanese translation.
X-Git-Tag: pre_ajp_proxy~1441
X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=e05621b4c13df7638a055fa64e85f11d014fabab;p=thirdparty%2Fapache%2Fhttpd.git
Update Japanese translation.
Submitted by: Hiroaki KAWAI , Yoshiki Hayashi
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@100586 13f79535-47bb-0310-9956-ffa450edef68
---
diff --git a/docs/manual/mod/mod_dav.xml.ja b/docs/manual/mod/mod_dav.xml.ja
index c2046d5cf0c..98a6577140f 100644
--- a/docs/manual/mod/mod_dav.xml.ja
+++ b/docs/manual/mod/mod_dav.xml.ja
@@ -1,7 +1,7 @@
-
+
mod_dav
@@ -37,14 +37,19 @@
LoadModule
を使用して実行時にロードされている必要があります。
- 動作させるには、httd.conf ファイルの
- グローバルセクションに次を加えて、ウェブサーバが書き込みできる
- DAV ロックデータベースファイル名を指定します。
+ さらに、DAV ロックデータベースの場所が
+ DavLockDB ディレクティブを使って
+ httd.conf ファイルのグローバルセクションに指定されている
+ 必要があります。
- DavLockDB /tmp/DavLock
+ DavLockDB /usr/local/apache2/var/DavLock
+ ロックデータベースファイルのあるディレクトリは Apache が実行されている
+ User と Group に書き込み権限がある必要があります。
+
Limit
節を Location
ディレクティブ内部に追加して、DAV が有効な場所への
@@ -56,7 +61,7 @@
ディレクティブは DAV リクエストに対しては効力を持ちません。
完全な例
- DavLockDB /tmp/DavLock
+ DavLockDB /usr/local/apache2/var/DavLock
<Location /foo>
@@ -66,7 +71,7 @@
AuthName DAV
AuthUserFile user.passwd
- <LimitExcept GET HEAD OPTIONS>
+ <LimitExcept GET OPTIONS>
require user admin
@@ -75,13 +80,73 @@
</Location>
- セキュリティ
- HTTP 基本認証の使用は推奨できません。少なくとも
- mod_auth_digest モジュールで提供される HTTP
- ダイジェスト認証を用いるべきです。WebDAV クライアントのほとんどは
- この認証方法に対応しています。もちろん、SSL
- 有効なコネクションを通した基本認証でもセキュリティが確保できます。
-
+ mod_dav は Greg Stein さんの Apache 1.3 用の mod_dav に
+ 由来するものです。そのサイトからより多くの情報を手に入れることができます。
+
+
+セキュリティの問題
+
+ DAV のアクセスメソッドは遠隔クライアントがサーバのファイルを
+ 操作することを可能にしますので、 mod_dav を使用する
+ 前に、サーバが安全であることを特に注意して確認しなければなりません。
+
+ サーバ上の DAV が使用可能になっている場所はすべて認証で保護してください。
+ HTTP 基本認証の使用は推奨できません。少なくとも
+ mod_auth_digest モジュールで提供される HTTP
+ ダイジェスト認証を用いるべきです。WebDAV クライアントのほとんどは
+ この認証方法に対応しています。代わりに、SSL が
+ 有効なコネクションを通した基本認証を使うこともできます。
+
+ mod_dav がファイルを操作できるようにするためには、
+ 管理下のディレクトリとファイルとに Apache が実行されている User と Group で書き込み可能である必要があります。
+ 新しく作成されるファイルもこの User
+ と Group に所有される
+ ことになります。この理由から、そのアカウントへのアクセスを制御することは
+ 重要です。DAV リポジトリは Apache 専用のものだとみなされています。
+ Apache 以外の方法でファイルを修正すること (例えば FTP やファイルシステム
+ 用のツールなどを使って) は許可されていません。
+
+ mod_dav はいろいろな種類のサービス拒否攻撃にさらされる
+ かもしれません。LimitXMLRequestBody ディレクティブを使うと
+ 大きな DAV リクエストを解析するときに消費されるメモリの量を制限することが
+ できます。DavDepthInfinity ディレクティブは
+ PROPFIND リクエストが巨大リポジトリで大量のメモリを消費するのを
+ 防ぐことができます。他のサービス拒否攻撃には単純に使用可能なディスク領域を
+ 多くの大きなファイルで埋めてしまうんものがあります。これを直接防ぐ方法は
+ Apache にはありませんので、信用できないユーザに DAV アクセスを提供するのは
+ 避けた方が良いでしょう。
+
+
+複雑な設定
+
+ よくある要求に、mod_dav を使って動的なファイル
+ (PHP スクリプト、CGI スクリプトなど) を操作したいというものがあります。
+ これの実現は、GET リクエストはスクリプトの内容をダウンロードさせる
+ 代わりに、スクリプトを常に実行させてしまうので難しくなっています。
+ これを回避する方法には、二つの違う URL を同じコンテンツにマップし、
+ 一つはスクリプトを実行させ、もう一つはダウンロードさせたり、DAV から
+ 操作されたりするように設定するというものがあります。
+
+
+Alias /phparea /home/gstein/php_files
+Alias /php-source /home/gstein/php_files
+<Location /php-source>
+
+ DAV On
+ ForceType text/plain
+
+</Location>
+
+
+ この設定により、http://example.com/phparea を PHP スクリプトの
+ 出力をアクセスするために使うことができ、
+ http://example.com/php-source を DAV クライアントによる
+ が操作のために使うことができます。
diff --git a/docs/manual/mod/mpm_common.xml.ja b/docs/manual/mod/mpm_common.xml.ja
index 7d92b14a132..b21edf41d81 100644
--- a/docs/manual/mod/mpm_common.xml.ja
+++ b/docs/manual/mod/mpm_common.xml.ja
@@ -2,13 +2,87 @@
-
+
mpm_common
二つ以上のマルチプロセッシングモジュール (MPM)
で実装されているディレクティブのコレクション
MPM
+
+AcceptMutex
+複数の子プロセスがネットワークソケットでリクエストを
+accept しようとしているときに、Apache がそれらの子プロセスを直列化するために
+使う方法
+AcceptMutex default|method
+AcceptMutex default
+server config
+leaderperchild
+preforkthreadpoolworker
+
+
+
+ AcceptMutex ディレクティブは、
+ ネットワークソケットのリクエストを accept しようとしている複数の子プロセスを
+ Apache が直列化するために使う方法を設定します。
+ Apache 2.0 以前は、このメソッドはコンパイル時にのみ選択できました。
+ 最適な方法は、アーキテクチャやプラットホームに大きく依存します。
+ 詳細に関しては、性能のチューニング
+ ドキュメントをご覧下さい。
+
+ このディレクティブが Default
+ に設定されていれば、コンパイル時に選択されたデフォルト値が使われます。
+ 他の使用可能なメソッドの一覧は下にあります。
+ 全てのメソッドが全てのプラットホームで使用可能であるわけではない、
+ ということに注意してください。
+ 使用可能でないメソッドが指定された場合は、
+ 使用可能なメソッドの一覧を含んだメッセージが
+ エラーログに出力されます。
+
+
+ flock
+ - LockFile
+ ディレクティブで定義したファイルのロックに、
+
flock(2) システムコールを使います。
+
+ fcntl
+ - LockFile
+ ディレクティブで定義したファイルのロックに、
+
fcntl(2) システムコールを使います。
+
+ posixsem
+ - 排他処理の実装に POSIX 互換セマフォを使用します
+
+ pthread
+ - POSIX Threads (PThreads) 規格で実装されている
+ POSIX 排他処理を使います。
+
+ sysvsem
+ - 排他処理の実装に SySV 形式のセマフォを使います。
+
+
+ コンパイル時にシステムのデフォルトに選ばれたものが何かを見たい場合は、
+ LogLevel を debug
+ に設定するとよいでしょう。デフォルトの AcceptMutex
+ が ErrorLog に書き込まれます。
+
+ 警告
+ ほとんどのシステムにおいては、pthread オプションが
+ 選ばれていると、子プロセスが ApacheCntl mutex を
+ 保持しているときに異常終了した場合、サーバはリクエストへの応答を
+ 停止してしまいます。これが発生した場合は、サーバを復旧させるためには
+ 手動で再起動させる必要があります。
+
+ Solaris は例外で、Apache も使用している、子プロセスが mutex を
+ 保持して異常終了した後に mutex を復旧させるための機構を提供をしています。
+ 御使用のシステムが pthread_mutexattr_setrobust_np() 関数を
+ 実装している場合は、pthread オプションを安全に使用できる
+ 可能性があります。
+
+
+
+
CoreDumpDirectory
Apache がコアダンプする前に移動を試みるディレクトリ
@@ -16,18 +90,26 @@
CoreDumpDirectory directory
デフォルトの設定は説明文を読んでください
server config
-workerperchild
-preforkmpm_winnt
-
+beosleader
+mpm_winntperchildprefork
+threadpoolworker
-
Apache がコアダンプする前に移動を試みるディレクトリを制御します。
デフォルト値は ServerRoot
ディレクトリですが、このディレクトリはサーバの実行されているユーザ権限で
書き込み可能であるべきではないので、通常はコアダンプは書き込まれません。
デバッグのためにコアダンプが必要であれば、
このディレクティブを使って他の位置にコアダンプを書き出すようにできます。
+
+ Linux でのコアダンプ
+ Apache が root として起動されて、別のユーザの権限に以降した場合は
+ Linux のカーネルはディレクトリがプロセスの権限で書き込み可能な場合でさえも
+ コアダンプを無効にします。Apache (2.0.46 以降) は
+ Linux 2.4 以降ではコアダンプを行なうように再指定しますが、それは
+ CoreDumpDirectory を明示的に設定したときに
+ 限ります。
+
@@ -36,46 +118,56 @@
リクエストに応答する際に所属するグループ
Group unix-group
Group #-1
-server config
-virtual host
-
-workerperchild
-prefork
+server config
+beosleader
+mpmt_os2perchildprefork
+threadpoolworker
+Apache 2.0 以降で、グローバル設定でのみ有効です。
Group ディレクティブで、
リクエストに応答する際に所属しておくグループを設定します。
- このディレクティブを使用するためには、スタンドアロン型の
- サーバは最初に root 権限で起動されている必要があります。
+ このディレクティブを使用するためには、
+ サーバは最初に root 権限で起動されている必要があります。
+ 非 root ユーザでサーバを起動した場合は、指定したグループに変化できずに、
+ 結果的に起動したユーザの属するグループで実行されることになります。
unix-group は次のうちのいずれかです:
- グループ名
+ - グループを名前で参照します
- - グループを名前で参照します。
+ # に続いてグループ番号
+ - グループをを番号で参照します。
+
- # に続いてグループ番号
+ 例
+ Group www-group
+
- グループを番号で参照します。
-
サーバを実行するために特定の新しいグループを設定することを
お薦めします。nobody を使用する管理者もいますが、
- これは常に可能であったり望ましい訳ではありません。
+ 可能であったり望ましい訳では必ずしもありません。
- Group www-group
-
- 注意: サーバ開始を非 root ユーザで行った場合は、
- 指定されたグループに変わることができなくて、代わりに
- 起動を行ったユーザの所属するグループとして実行され続けます。
+ セキュリティ
+ 正確にどんなことをやっているのか、その危険性を知らないで、
+ Group (や User) を
+ root に 設定しないでください。
+
- 特記事項: このディレクティブを <VirtualHost>
+
特記事項: このディレクティブを
+ VirtualHost
で使用することはサポートされなくなりました。Apache 2.0 で
- suEXEC ラッパーを実現したい場合は、
+ suexec を設定したい場合は、
SuexecUserGroup
- を使用してください。
- セキュリティ: セキュリティ上の注意点に関しては、
- User
- をご覧下さい。
+ を使用してください。
+
+ 注意
+ Group ディレクティブは
+ beos と mpmt_os2 MPM
+ にも存在しますが、実質的に無効で、互換性のためだけに存在します。
+
@@ -85,15 +177,15 @@
をサーバが記録するためのファイル
PidFile filename
PidFile logs/httpd.pid
-server config
-workerperchild
-preforkmpm_winnt
-
+beosleader
+mpm_winntmpmt_os2
+perchildprefork
+threadpoolworker
PidFile ディレクティブで、
デーモンのプロセス ID をサーバが記録するファイルを設定します。
- もしファイル名がスラッシュ (/) で始まらない場合は、
+ ファイル名が絶対パスでない場合は、
ServerRoot
からの相対的なものとして扱われます。
@@ -102,15 +194,23 @@
サーバが ErrorLog
- や TransferLog を閉じて開き直したり、設定ファイルを
+ や TransferLog
+ を閉じて開き直したり、設定ファイルを
再読込したりさせるために、サーバにシグナルを送ることができると
便利なことがあります。
- これは SIGHUP (kill -1) シグナルを PidFile
+ これは SIGHUP (kill -1) シグナルを PidFile
に書かれているプロセス ID に送ることでできます。
- PidFile には、ログファイルの設置位置や
+
PidFile には、ログファイルの設置位置や
セキュリティ
と全く同じ注意点があります。
+
+ 注意
+ Apache 2 では、
+ apachectl
+ スクリプトのみを使用してサーバの (再) 起動や停止を
+ 行なうことを推奨しています。
+
@@ -119,19 +219,23 @@
サーバが listen するIP アドレスとポート番号
Listen [IP-address:]portnumber
server config
-workerperchild
-preforkmpm_winnt
+beosleader
+mpm_netwarempm_winnt
+mpmt_os2perchild
+preforkthreadpoolworker
+Apache 2.0 から必要なディレクティブ
Listen ディレクティブは Apache
が特定の IP アドレスやポート番号だけを listen するように指定します。
デフォルトでは全ての IP インターフェースのリクエストに応答します。
- Listen ディレクティブは現在では必須のディレクティブとなりました。
+ Listen ディレクティブは
+ 現在は必須のディレクティブとなりました。
もし設定ファイルになければ、サーバは起動に失敗します。
これは以前のバージョンの Apache から変更のあった部分です。
- Listen ディレクティブでは、特定のポートあるいは
+
Listen ディレクティブでは、特定のポートあるいは
アドレスとポートの組み合わせから入ってくるリクエストに対して
応答するように指定します。
もしポート番号だけが指定された場合は、サーバは全インターフェースの
@@ -141,7 +245,7 @@
します。
複数のアドレスとポートに対して listen するように、
- 複数の Listen ディレクティブを使うこともできます。
+ 複数の Listen ディレクティブを使うこともできます。
サーバは列挙されたアドレスとポート全てからのリクエストに対して
応答します。
@@ -171,7 +275,7 @@
DNS の問題
Apache
- が使用するアドレスとポートの設定
+が使用するアドレスとポートの設定
@@ -180,9 +284,10 @@
ListenBacklog backlog
ListenBacklog 511
server config
-workerperchild
-preforkmpm_winnt
-
+beosleader
+mpm_netwarempm_winnt
+mpmt_os2perchildprefork
+threadpoolworker
保留状態のコネクションのキューの最大長です。
@@ -206,29 +311,31 @@
LockFile filename
LockFile logs/accept.lock
server config
-workerperchild
-prefork
+leaderperchild
+preforkthreadpoolworker
+
- USE_FCNTL_SERIALIZED_ACCEPT または USE_FLOCK_SERIALIZED_ACCEPT
- のいずれかを使って Apache をコンパイルした際に使用することになる、
- ロックファイルのパスを LockFile
- は設定します。
- このディレクティブは通常はデフォルト値のままにしておくべきです。
- これを変更する際の主な理由は、logs
- ディレクトリが NFS マウントされたものであるという理由です。
- ロックファイルはローカルディスクに保存しなければならない
- からです。
- メインサーバプロセスの PID が自動的にファイル名に付加されます。
-
- セキュリティ:
- /var/tmp
- といった、誰でも書き込めるディレクトリにファイルを
- 置かない方がよいです。なぜなら、サーバが起動時に作成する
- ロックファイルの作成自体を妨害することによって、
- 誰でもサービス拒否アタックを引き起こすことができるからです。
+ AcceptMutex
+ が fcntl や flock
+ に設定されて使用されている場合に、使用されるロックファイルへのパスを
+ LockFile ディレクティブで設定します。
+ このディレクティブは通常はそのままにしておきます。
+ 主に logs ディレクトリが NFS
+ でマウントされている場合などに値を変えます。
+ なぜならロックファイルはローカルディスクに
+ 保存されなければならないからです。
+ メインサーバプロセスの PID がファイル名に自動的に付加されます。
+
+ セキュリティ
+ /var/tmp
+ といった、誰でも書き込めるディレクトリにファイルを
+ 置かない方がよいです。なぜなら、サーバが起動時に作成する
+ ロックファイルの作成自体を妨害することによって、
+ 誰でもサービス拒否アタックを引き起こすことができるからです。
+AcceptMutex
@@ -236,8 +343,10 @@
リクエストに応答するために作成される
子プロセスの最大個数
MaxClients number
+詳細は使用法をご覧下さい。
server config
-workerprefork
+beosleader
+preforkthreadpoolworker
@@ -249,20 +358,24 @@
他のリクエストの最後まで達して子プロセスが空くと、
次のコネクションに応答します。
- スレッドを用いないサーバ (すなわち prefork)
+
スレッドを用いないサーバ (すなわち prefork)
では、MaxClients
は、リクエストに応答するために起動される
子プロセスの最大数となります。
- デフォルト値は 256 で、これを増加させたい場合は、
+ デフォルト値は 256 で、これを増加させたい場合は、
ServerLimit
の値も増加させる必要があります。
- スレッドを用いるサーバ (すなわち worker)
+
スレッドを用いるサーバや、ハイブリッドサーバ (すなわち
+ beos worker)
では、MaxClients
は、クライアントに応答できるスレッドの総数を制限します。
- デフォルト値は
- ThreadsPerChild
- を 16 倍した値になります。MaxClients
+ beos でのデフォルト値は 50 です。
+ ハイブリッド MPM でのデフォルト値は 16
+ ServerLimit
+ の 25 倍 (ThreadsPerChild) です。
+ MaxClients
を 16 プロセス以上必要な値まで増加させたい場合は、
ServerLimit
も増加させる必要があります。
@@ -271,16 +384,18 @@
MaxMemFree
-主メモリアロケータが free() を呼ばずに保持し続けられるメモリの
-最大量
-MaxMemFree number
+free() が呼ばれない限り、
+主メモリアロケータが保持し続けられるメモリの最大量
+MaxMemFree KBytes
+MaxMemFree 0
server config
-workerprefork
-mpm_netware
-
+beosleader
+mpm_netwareprefork
+threadpoolworker
- MaxMemFree ディレクティブは free() を呼ばずに
+
MaxMemFree ディレクティブは
+ free() が呼ばれない限り、
主アロケータが保持できる空のメモリの最大値をキロバイト単位で設定します。
設定されていないか、零に設定されているときは、無制限になります。
@@ -292,18 +407,24 @@
MaxRequestsPerChild number
MaxRequestsPerChild 10000
server config
-workerperchild
-preforkmpm_winnt
-
+leadermpm_netware
+mpm_winntmpmt_os2
+perchildprefork
+threadpoolworker
MaxRequestsPerChild ディレクティブは、
個々の子サーバプロセスが扱うことのできるリクエストの制限数を
設定します。MaxRequestsPerChild
個のリクエストの後に、子プロセスは終了します。
- MaxRequestsPerChild が 0
+ MaxRequestsPerChild が 0
に設定されている場合は、プロセスは期限切れにより終了することはありません。
+ その他のデフォルト値
+ mpm_netware と mpm_winnt
+ でのデフォルト値は 0 です。
+
+
MaxRequestsPerChild
を非ゼロに制限することには、二つの利点があります:
@@ -315,11 +436,11 @@
サーバ負荷が下がった時にプロセス数を少なくすることができる
- 注意:
- KeepAlive リクエストの場合は、
- 一つ目のリクエストだけがこの制限に該当します。
- 実効的には、一つの子プロセスあたりのコネクション数を
- 制限するように挙動が変化します。
+ 注
+ KeepAlive リクエストの場合は、
+ 一つ目のリクエストだけがこの制限に該当します。
+ 実効的には、一つの子プロセスあたりのコネクション数を
+ 制限するように挙動が変化します。
@@ -328,9 +449,11 @@
MaxSpareThreads
アイドルスレッドの最大数
MaxSpareThreads number
+詳細は使用法をご覧下さい。
server config
-mpm_netware
-perchildworker
+beosleader
+mpm_netwarempmt_os2
+perchildthreadpoolworker
@@ -343,8 +466,9 @@
子プロセスにアイドルスレッドが多すぎる場合は、
サーバはその子プロセスに含まれるスレッドを終了し始めます。
- worker では、
- デフォルトは MaxSpareThreads 500 です。
+
worker, leader,
+ threadpool では、
+ デフォルトは MaxSpareThreads 250 です。
この MPM はアイドルスレッド数をサーバ全体で監視します。
サーバでアイドルスレッド数が多すぎる場合は、
この数字よりも少ない数になるまで子プロセスを終了します。
@@ -354,38 +478,47 @@
この MPM はシングルプロセスで実行されますので、
スペアスレッド数もサーバ全体で勘定します。
+ beos と mpmt_os2 は
+ mpm_netware と似た挙動をします。
+ beos でのデフォルト値は MaxSpareThreads 50
+ です。mpmt_os2 でのデフォルト値は 10
+ です。
+
+ 制限事項
+ MaxSpareThreads の取る値には制限があります。
+ Apache は次の規則に従って自動的に補正します。
+
+ - perchild では、
+ MaxSpareThreads が
+ ThreadLimit
+ と等しいかそれ以下である必要があります。
+
+ - mpm_netware は
+ MinSpareThreads
+ よりも大きい必要があります。
+
+ - leader, threadpool,
+ worker では、
+ MinSpareThreads と
+ ThreadsPerChild
+ で決まる総和と等しいか大きい必要があります。
+
+
MinSpareThreads
StartServers
-
-MaxThreadsPerChild
-子プロセス毎のスレッド数の最大数
-MaxThreadsPerChild number
-MaxThreadsPerChild 64
-server config
-workerperchild
-
-
-
- 子プロセス毎に含まれるスレッド数の最大値です。
- 子プロセス毎にスレッド数変化する MPM では、
- このディレクティブは、子プロセス内に生成されるスレッド数の
- 最大値を設定します。デフォルト値よりも大きい値にするのであれば、
- コンパイル時に定義された HARD_THREAD_LIMIT
- を変更して、サーバを再コンパイルする必要があります。
-
-
-
MinSpareThreads
リクエストに応答することのできる
アイドルスレッド数の最小数
MinSpareServers number
+詳細は使用方法をご覧下さい。
server config
-mpm_netware
-perchildworker
+beosleader
+mpm_netwarempmt_os2
+perchildthreadpoolworker
@@ -397,10 +530,15 @@
デフォルトは MinSpareThreads 5 で、
アイドルスレッド数を子プロセス毎に監視します。
もし子プロセスに十分な数のスレッドがなければ、
- サーバはその子プロセスに新しいスレッドを作り始めます。
-
- worker では、
- デフォルトは MinSpareThreads 250 で、
+ サーバはその子プロセスに新しいスレッドを作り始めます。
+ ですから、NumServers
+ を 10 に、MinSpareThreads を
+ 5 にした場合は、最小でも 50 のアイドルスレッドが
+ システム上にあることになります。
+
+ worker, leader,
+ threadpool では、
+ デフォルトは MinSpareThreads 75 で、
アイドルスレッド数をサーバ全体で監視します。
もしサーバに十分な数のアイドルスレッドがなければ、
アイドルスレッド数がこの数よりも大きくなるまで
@@ -410,27 +548,16 @@
デフォルトは MinSpareThreads 10 で、
シングルプロセス MPM ですので、サーバ全体で管理されます。
+ beos と mpmt_os2 は、
+ mpm_netwareによく似ています。
+ beos でのデフォルトは MinSpareThreads 1
+ です。mpmt_os2 でのデフォルトは
+ 5 です。
MaxSpareThreads
StartServers
-
-NumServers
-同時に起動している子プロセスの総数
-NumServers number
-NumServers 2
-server config
-perchild
-
-
- 同時に起動している子プロセスの数です。
- このディレクティブを使用する MPM は動的に新しい子プロセスを
- 生成することは行わないので、サイト全体に来るリクエスト全てを
- 十分扱える程度に大きな数に設定しておく必要があります。
-
-
-
ScoreBoardFile
子プロセスと連携するためのデータを保存する
@@ -438,8 +565,9 @@
ScoreBoardFile file-path
ScoreBoardFile logs/apache_status
server config
-workerperchild
-prefork
+beosleader
+mpm_winntperchildprefork
+threadpoolworker
Apache は親プロセスと子プロセス間の通信にスコアボードを用います。
@@ -463,24 +591,27 @@
セキュリティ
と同様の注意点があるので、注意してください。
-Apache の停止と再起動
+Apache の停止と再起動
SendBufferSize
TCP バッファサイズ
SendBufferSize bytes
+SendBufferSize 0
server config
-workerperchild
-preforkmpm_winnt
-
+beosleader
+mpm_netwarempm_winnt
+mpmt_os2perchildprefork
+threadpoolworker
サーバは TCP バッファサイズを指定されたバイト数に設定します。
高速で高レイテンシな環境で
(例 100ms 程度、大陸横断高速通信路など)
古い一般的な OS のデフォルト値を増やすのに非常に便利です。
+
+ 0にした場合、OS のデフォルト値が使用されます。
@@ -488,9 +619,10 @@
ServerLimit
設定可能なサーバプロセス数の上限
ServerLimit number
-ServerLimit 256 (prefork), ServerLimit 16 (worker)
+詳細は使用法を参照
server config
-workerprefork
+leaderperchild
+preforkthreadpoolworker
@@ -519,46 +651,66 @@
prefork MPM では、
MaxClients
- を 256 よりも大きな値に設定する必要がある時にだけ使用してください。
+ を 256 (デフォルト) よりも大きな値に設定する必要がある時にだけ使用してください。
希望の MaxClients
数とくらべて、必要以上に大きな値を指定することは避けてください。
- worker MPM では、
+
worker, leader,
+ threadpool MPM では、
MaxClients と
ThreadsPerChild
- の設定で 16 サーバプロセス以上必要になる場合にのみ使用してください。
- 希望の
+ の設定で 16 サーバプロセス (デフォルト)
+ 以上必要になる場合にのみ使用してください。希望の
MaxClients と
ThreadsPerChild
とくらべて、必要となるサーバプロセス数以上に大きな値を
設定することは避けてください。
+
+ perchild MPM では、
+ NumServers を 8 (デフォルト)
+ よろいも大きな値に設定する必要があるときにのみ使用してください。
+
+ 注意
+ ServerLimit 20000 という制限付きでコンパイルされています。
+ これはスペルミスによって誤って酷い状況になるのを、
+ 回避するための処置です。
+
+Apache の停止と再起動
StartServers
起動時に生成される子サーバプロセスの数
StartServers number
-StartServers 5
+詳細は使用方法を参照
server config
-worker
+leadermpmt_os2
+preforkthreadpoolworker
+
StartServers ディレクティブは、
起動時に生成される子サーバプロセスの数を設定します。
プロセス数は負荷に応じて動的に制御されますので、
通常はこの値を調整する理由はあまりないでしょう。
+
+ デフォルト値は MPM ごとに異なります。
+ leader, threadpool,
+ worker は StartServers 3 です。
+ prefork は 5 で、
+ mpmt_os2 は 2 です。
-MinSpareThreads
-MaxSpareThreads
StartThreads
起動時に生成されるスレッドの数
StartThreads number
+詳細は使用方法を参照
server config
-mpm_netwareperchild
+beosmpm_netware
+perchild
起動時に生成されるスレッドの数です。
@@ -574,6 +726,9 @@
この場合プロセスは一つしかないので、
起動時にリクエストに応答するスレッドの総数となります。
+ beos でのデフォルトは StartThreads
+ 10 です。
+ また、起動時に生成されるスレッドの総数にも反映されます。
@@ -582,8 +737,13 @@
設定可能な子プロセス毎のスレッド数の上限を
設定します
ThreadLimit number
+詳細は使用方法を参照
server config
-mpm_winntworker
+leadermpm_winnt
+perchildthreadpoolworker
+
+Apache 2.0.41 とそれ以降の mpm_winnt
+で利用可能
このディレクティブは
@@ -610,9 +770,16 @@
ThreadLimit のデフォルト値は
- worker のときは 64 で、mpm_winnt のときは
- 1920 です。
-
+ mpm_winnt のときは 1920 で、
+ 他の場合は 64 です。
+
+ 注意
+ ThreadLimit 20000 (mpm_winnt
+ の場合は ThreadLimit 15000 )
+ という制限付きでコンパイルされています。
+ これはスペルミスによって誤って酷い状況になるのを、
+ 回避するための処置です。
+
@@ -620,10 +787,10 @@
ThreadsPerChild
子プロセスそれぞれに生成されるスレッド数
ThreadsPerChild number
-ThreadsPerChild 50
+詳細は使用方法を参照
server config
-workermpm_winnt
-
+leadermpm_winnt
+threadpoolworker
このディレクティブは、それぞれの子プロセスで生成される
@@ -635,7 +802,11 @@
大きくなければなりません。worker のような、
子プロセスが複数あるような MPM を利用しているのであれば、
サーバの通常負荷を十分扱える程度に、
- スレッド総数が多くなければなりません。
+ スレッド総数が多くなければなりません。
+
+ mpm_winntでの ThreadsPerChild
+ のデフォルト値は 64 で、他の場合は
+ 25 です。
@@ -644,32 +815,36 @@
リクエストに応答する際に用いるユーザ ID
User unix-userid
User #-1
-server config
-virtual host
-
-workerperchild
-prefork
+server config
+leaderperchild
+preforkthreadpoolworker
+
+Apache 2.0 以降で、グローバル設定でのみ有効です。
+
User ディレクティブは
サーバがリクエストに応答する際に用いるユーザ ID を設定します。
このディレクティブを使用するためには、スタンドアロン型の
サーバは最初に root 権限で起動されている必要があります。
- unix-userid は次のどちらかです:
+ 非 root ユーザでサーバを起動した場合は、
+ 権限の低いユーザへと変わることができず、
+ 結局元のユーザのプロセスとして実行され続けます。
+ root で起動した場合に親プロセスが root
+ として実行されているのは正常な動作です。
+ Unix-userid は次のどれかです。
- ユーザ名
-
- ユーザを名前で参照します。
- # に続いてユーザ番号
-
- ユーザを番号で参照します。
このユーザは、外部に見せるように意図していないファイルに、
アクセス可能になってしまうような権限を持つべきではないですし、
- 同様に httpd リクエストに対して応答するように意図していない
+ 同様に HTTP リクエストに対して応答するように意図していない
実行コードを、実行できるような権限を持つべきではないです。
サーバを実行するために特定の新しいユーザとグループを
設定することをお薦めいたします。
@@ -678,25 +853,33 @@
なぜなら nobody ユーザは、システムで
他の役割を担っているかも知れないからです。
- 注意: 非 root ユーザでサーバを起動した場合は、
- より低い権限のユーザに変わることに失敗して、
- 代わりに起動を行ったユーザ権限のまま実行され続けるでしょう。
- root 権限で開始した場合親プロセスが root
- 権限で実行され続けますが、これは正常です。
+ セキュリティ
+ 正確にどんなことをやっているのか、その危険性を知らないで、
+ User (や Group) を root に
+ 設定しないでください。
+
+
+ perchild MPM では、異なるユーザ ID
+ で複数のバーチャルホストを動かすことを目的としていますが、
+ User は、主サーバのユーザ ID
+ と、AssignUserID
+ ディレクティブを持たない VirtualHost セクションへの
+ フォールバックとを定義することになります。
特記事項: このディレクティブを
VirtualHost
で使用することはサポートされなくなりました。
- suexec 向けにサーバを設定するのであれば、
+ suexec 向けにサーバを設定するのであれば、
SuexecUserGroup
を使用してください。
-セキュリティ
-自分が何をやっているのか正確に把握していない、
-そしてその危険性を把握していないのであれば、
-User
-(や Group)
-を root に設定しないでください。
+ 注意
+ User ディレクティブは
+ beos と mpmt_os2 MPM
+ にも存在しますが、実質的に無効で、互換性のためだけに存在します。
+