3. 定義情報

WebOTX Webサーバの定義情報は、定義情報ファイル(httpd.conf)に格納され、WebOTX Webサーバ起動時に読み込まれます。
定義情報を更新した場合には、WebOTX Webサーバの再起動が必要になります。

3.1. 定義情報ファイル

WebOTX Webサーバの定義情報は、httpd.confファイルに格納されます。

定義情報ファイルは、WebOTX のドメイン毎に格納されるため、ドメイン毎に 定義情報を変更する必要があります。

格納場所
  <domain フォルダ>/config/WebServer/httpd.conf

なお、SSL通信用ライブラリをインストールした場合、SSL設定に関する 定義情報は、ssl.confファイルに格納されます。

SSL通信で利用するポート番号や証明書/秘密鍵ファイルを設定/変更する場合、 このファイルに定義された情報を変更する必要があります。

格納場所
  <domain フォルダ>/config/WebServer/ssl.conf

3.2. 基本定義

ここでは、WebOTX Webサーバが動作するために必要となる定義情報について 説明します。
定義情報ファイルには、次の定義が最低でも含まれている必要があります。

3.2.1. ServerRoot

名前 ServerRoot
説明 WebOTX Webサーバが動作するために必要となるディレクトリを設定します。 この値は既定値以外の値に変更することはありません。
書式 ServerRoot directory-path
設定例
(既定値)
(Windows)
 ServerRoot "C:/WebOTX/domains/domain1"

(UNIX)
 ServerRoot /opt/WebOTX/domains/domain1

3.2.2. Listen

名前 Listen (または Port)
説明 WebOTX Webサーバが利用するリクエスト受付用のポート番号を指定します。 Listen 指示子は、Apache 1.3/2.0 共に設定可能で、ポート番号だけを設定する 方法と、IPアドレスとポート番号を一緒に設定する方法があります。
Port 指示子は、Apache 1.3 のみ有効で、ポート番号のみを設定します。
UNIX 版において、インストール時に「WebOTX 運用ユーザを利用する」を指定した 場合、1024 以下のポート番号を設定することはできません。
書式 Listen [IPアドレス:]port
Port port
設定例

(ポート番号 8080 を利用する場合の設定)
  Listen 8080

(特定のIPアドレスに対して待ち合わせを行う場合の設定)
  Listen 192.168.0.1:80

(IPv4アドレスとIPv6アドレスで同一のポート番号を 指定する場合の設定(Apache2.0))
  Listen 0.0.0.0:80
  Listen [::]:80

3.2.3. User/Group

名前 User
Group
説明 (UNIXでのみ有効)
User/Group 指示子は UNIX 版においてのみ有効です。 WebOTX Webサーバがリクエストに応答する際に用いる ユーザID および グループID を指定します。
WebOTX Application Server のインストール時に「WebOTX 運用ユーザ」を 利用する選択をした場合には、この設定値を「WebOTX 運用ユーザ」に変更する 必要があります。
書式 User unix-user-id
Group unix-group-id
設定例 User otxadmin
Group otxadm

3.2.4. DocumentRoot

名前 DocumentRoot
説明 ブラウザが WebOTX Webサーバ にアクセスした場合の ルートディレクトリを指定します
書式 DocumentRoot directory-path
設定例
(既定値)
(Windows)
  DocumentRoot "C:/WebOTX/domains/domain1/docroot"

(UNIX)
  DocumentRoot /opt/WebOTX/domains/domain1/docroot

3.2.5. ErrorLog

名前 ErrorLog
説明 WebOTX Webサーバ の内部で発生したエラー情報を記録する ファイル名を指定します。
書式 ErrorLog errorlog-path
設定例
(既定値)
(Windows)
  ErrorLog logs/WebServer/error.log

(UNIX)
  ErrorLog logs/WebServer/error_log

3.2.6. LoadModule

名前 LoadModule
説明 様々な機能を提供するモジュールをロードし、使用モジュールリストに 追加します。
書式 LoadModule module-name module-path
設定例 (Windows)
  LoadModule ssl_module  "C:/WebOTX/WebServer2/modules/mod_ssl.so""

(UNIX)
  LoadModule ssl_module  /opt/WebOTX/WebServer2/modules/mod_ssl.so

3.3. サーバ動作に関する設定

ここでは、WebOTX Webサーバの動作プロセス数に関する設定を説明します。

Windows版は、1つの子プロセス上で複数スレッドが動作し、各スレッド上で クライアントからのリクエストを受け付けます。つまり、1リクエストに対して、 1スレッドが割り当てられます。

UNIX 版は、Apache 1.3 の場合、複数の子プロセスが動作し、各子プロセス上で クライアントからのリクエストを受け付けます。つまり、1リクエストに対して 1プロセスが割り当てられます。
Apache 2.0 の場合は、複数の子プロセスが動作し、さらに、その子プロセス上で 複数のスレッドが動作し、各子プロセスのスレッド上でクライアントからの リクエストを受け付けます。つまり、1リクエストに対して、1スレッドが 割り当てられます。

上記のような動作の違いにより、Windows 版と UNIX 版では、定義内容が 異なります。また、Apache 1.3 と 2.0 でも定義内容が異なります。
動作プロセスに関連する主な設定は次の指示子となります。

3.3.1. MaxClients

名前 MaxClients
説明 (UNIXでのみ有効)
WebOTX Webサーバが処理できる最大同時接続コネクション数を設定します。 クライアントは、この値を超えて同時に接続することはできません。
UNIX 版の Apache 1.3 の場合、この値はリクエストに応じるために起動される 子プロセスの最大数となります。
UNIX 版の Apache 2.0 の場合、この値はリクエストに応じることのできる 全スレッドの総数となります。
Windows 版の場合、この設定値は無効です。
書式 MaxClients number
設定例
(既定値)
MaxClients 150

3.3.2. ThreadsPerChild

名前 ThreadsPerChild
説明 Windows版と UNIX版で意味が異なります。
Windows版の場合、プロセス内で動作するスレッド数となり、WebOTX Webサーバが処理できる最大同時接続コネクション数を意味します。
UNIX版の Apache 1.3 の場合、この設定値は無効です。
UNIX版の Apache 2.0 の場合、1つのプロセス内で動作するスレッド数を 意味します。
書式 ThreadsPerChild number
設定例
(既定値)
(Windows: Apache 2.0)
  ThreadsPerChild 250

(Windows: Apache 1.3)
  ThreadsPerChild 150

(UNIX: Apache 2.0)
  ThreadsPerChild 25

3.3.3 MinSpareThreads / MaxSpareThreads

名前 MinSpareThreads
MaxSpareThreads
説明 (UNIX Apache2.0 でのみ有効)
アイドル状態であるスレッドの最小値、最大値を設定します。 アイドル状態とは、リクエストを処理していない状態の ことです。アイドル状態では、この範囲内に総スレッド数が 収まるように、起動しているプロセス数が調整されます。
書式 MinSpareThreads number
MaxSpareThreads number 
設定例
(既定値)
MinSpareThreads 25
MaxSpareThreads 75

3.3.4. StartServers

名前 StartServers
説明 (UNIX でのみ有効)
起動時に生成される子プロセス数を設定します。
書式 StartServers number 
設定例(既定値) (UNIX Apache 2.0)
  StartServers 2

(UNIX Apache 1.3)
  StartServers 5

3.3.5. ServerLimit / ThreadLimit

名前 ServerLimit
ThreadLimit
説明 (UNIX Apache2.0 でのみ有効)
子プロセスの上限値(ServerLimit)、子プロセス内で 動作するスレッドの上限値(ThreadLimit)を設定します。
書式 ServerLimit number
ThreadLimit number
設定例 ServerLimit 16
ThreadLimit 64

3.3.6. MaxRequestsPerChild

名前 MaxRequestsPerChild
説明 個々の子サーバプロセスが稼働中に扱うリクエスト数の 上限を設定します。ここで指定した数のリクエストを受け付けた後で、 その子プロセスは終了します。
0を指定した場合、そのプロセスはリクエスト数の 上限を超えたことにより終了することはありません。
書式 MaxRequestsPerChild number
設定例 MaxRequestsPerChild 0

3.3.7. MinSpareServers / MaxSpareServers

名前 MinSpareServers
MaxSpareServers
説明 (UNIX Apache1.3 のみ有効)
アイドル状態である子プロセスが動作する最大/最小数を 指定します。
アイドル状態とは、リクエストを処理していない状態 のことです。アイドル状態では、この範囲内に総プロセス数 が収まるように、起動しているプロセス数が調整されます。
書式 MinSpareServers number
MaxSpareServers number
設定例
(既定値)
MinSpareServers 5
MaxSpareServers 10

3.4. SSL 定義

ここでは SSL通信を行う場合、定義情報ファイルに定義する 主な設定を説明します。
SSLに関する設定は、ssl.confファイルに格納されています。 ssl.confファイルは、SSL通信用パッケージをインストール することで追加されます。

3.4.1. SSLEngine

名前 SSLEngine
説明 SSLを有効にする。通常、<VirtualHost> 内で使用され、特定の仮想ホストに対してSSLを有効にします。
書式 SSLEngine On|Off
設定例 <VirtualHost _default_:443>
  SSLEngine on
  ...
</VirtualHost>

3.4.2. SSLCertificateFile

名前 SSLCertificateFile
説明 SSLで利用する証明書ファイルを設定します。
書式 SSLCertificateFile path
設定例 SSLCertificateFile /opt/WebOTX/WebServer2/conf/ssl.crt/sample.crt

3.4.3. SSLCertificateKeyFile

名前 SSLCertificateKeyFile
説明 SSLで利用する秘密鍵ファイルを設定します。
書式 SSLCertificateKeyFile path
設定例 SSLCertificateKeyFile /opt/WebOTX/WebServer2/conf/ssl.key/sample.key

3.4.4. SSLCACertificateKeyFile

名前 SSLCACertificateKeyFile
説明 クライアント認証を行う場合、SSLで利用する秘密鍵ファイルを設定します。
書式 SSLCACertificateKeyFile path
設定例 SSLCACertificateKeyFile /opt/WebOTX/WebServer2/conf/ssl.key/client.key

3.4.5. SSLVerifyClient

名前 SSLVerifyClient
説明 クライアント認証を行う場合、クライアント側での証明書の提示方式を設定します。
書式 SSLVerifyClient level
設定例 (クライアント認証を行わない場合)
  SSLVerifyClient none

(クライアントに有効な証明書を提示させる場合)
  SSLVerifyClient require

3.5. ユーザ認証、アクセス制御

ここでは WebOTX Webサーバがサポートするユーザ認証機能と、 クライアントのアクセス制御に関する設定を記述します。

3.5.1. AuthType

名前 AuthType
説明 ユーザ認証の種類を設定します。Basic と Digest が設定可能です。
書式 AuthType Basic|Digest
設定例 AuthType Basic

3.5.2. AuthName

名前 AuthName
説明 HTTP認証の認可領域の名前を指定します。 ここで指定した文字列は、ほとんどのブラウザの「パスワードダイアログ」 に表示されます。
書式 AuthName auth-domain
設定例 AuthName "Top Secret"

3.5.3. AuthUserFile

名前 AuthUserFile
説明 認証に使用するユーザとパスワードの一覧が格納されている テキストファイルを指定します。
通常、htpasswd コマンドで作成したパスワードファイルへの パスを指定します。
書式 AuthUserFile file-path
設定例 AuthUserFile /usr/local/apache/passwd/passwords

3.5.4. Require

名前 Require
説明 認証済みユーザがリソース(ディレクトリ)に アクセスすることができるかを指定します。
書式 Require entity-name [entity-name] ...
設定例 (全ての認証されたユーザにディレクトリへのアクセスを許可する場合)
  Require valid-user

(指定されたユーザ(admin)のみディレクトリのアクセスを許可する場合)
  Require user admin

3.5.5. Order

名前 Order
説明 デフォルトのアクセス可能な状態と、Allow と Deny が評価される順番を制御します。
書式 Order ordering
設定例 (以下の例では、Allow from all の後で Deny from foo.domain.com が設定されるため、 foo.domain.com 以外のクライアントからの アクセスを許可します。)
  Order Allow,Deny
  Allow from all
  Deny from foo.domain.com

(以下の例では、Deny from foo.domain.com の後で Allow from all が設定されるため、すべてのクライアント からのアクセスを許可します。)
  Order Deny,Allow
  Allow from all
  Deny from foo.domain.com

3.5.6 Allow / Deny

名前 Allow
Deny
説明 サーバの特定の領域にアクセスできるホスト(クライアント)を制御します。
Allow はアクセスを許可するクライアントを、 Deny はアクセスを拒否するクライアントを指定します。
すべてのクライアント(all)、ドメイン名(domain.com)、 IPアドレス(12.34.56.78)、IPアドレスの一部(12.34) およびネットワーク/ネットワークマスクの対 (12.34.0.0/255.255.0.0または12.34.0.0/16)を 指定することができます。
書式 Allow from all|host|env=env-variable
Deny from all|host|env=env-variable
設定例 (以下の例では、foo.domain.com サブドメインにある クライアント以外の domain.com ドメインのすべてのクライアントから アクセスが許可されます。)
  Order Allow,Deny
  Allow from domain.com
  Deny from foo.domain.com

(次の3つの設定は同じアドレス群に対するアクセス許可 の設定となります。)
  Allow from 10.1
  Allow from 10.1.0.0/255.255.0.0
  Allow from 10.1.0.0/16

3.6. LDAP 連携

LDAP連携する場合に必要となる定義情報を記載します。 なお、LDAP連携機能はApache2.0でのみ有効です。

3.6.1. AuthLDAPUrl

名前  
  AuthLDAPUrl
説明 (Apache 2.0 のみ有効
LDAP連携で使用するLDAPサーバのDN情報をURLで指定します。
書式 AuthLDAPUrl ldap://host:port/basedn?attributes?scope?filter
設定例 (ドメインのdocrootに対するアクセスに対して LDAP認証をかける場合、次の設定を行います。連携するLDAPサーバ上に、 DN情報として、dc=users, dc=webotx, o=NEC, c=JP が設定されているとします。)

<Directory /opt/WebOTX/domains/domain1/docroot>
  AuthType Basic
  AuthName "Input a username and password."
  AuthLDAPUrl ldap://ldap-server/dc=users,dc=webotx,o=NEC,c=JP?uid?sub
  Require valid-user
</Directory>
 

3.7. ログ出力

WebOTX Webサーバが出力するログ情報に関する定義情報について説明します。

3.7.1. ErrorLog

名前 ErrorLog
説明 エラーログファイルの出力先と名前を設定します。
エラーログには、リクエスト処理中に発生したエラーがすべて出力されます。 また、サーバ起動時やサーバ動作に問題が発生した場合にも、このファイル にエラーが出力されます。
書式 ErrorLog file-path
設定例
(既定値)
(Windows)
  ErrorLog logs/WebServer/error.log

(UNIX)
  ErrorLog logs/WebServer/error_log

3.7.2. CustomLog

名前 CustomLog
説明 アクセスログファイルの出力先と名前、書式を設定します。
書式 CustomLog file-path|pipe format|nickname
設定例
(既定値)
(Windows)
  CustomLog logs/WebServer/access.log common
  CustomLog  "C:/WebOTX/domains/domain1/logs/WebServer/ssl_request.log" \
  "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x  \"%r\" %b"

(UNIX)
  CustomLog logs/WebServer/access_log common
  CustomLog  /opt/WebOTX/domains/domain1/logs/WebServer/ssl_request_log \
  "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x  \"%r\" %b"

3.7.3. LogFormat

名前 LogFormat
説明 アクセスログに出力するログの出力書式を設定します。 アクセスログ情報には、クライアントのIPアドレス、URL、送信バイト数、 処理時間等を出力することができます。
書式 LogFormat format|nickname
設定例
(既定値)
LogFormat "%h %l %u \"%r\" %>s %b" common

上記の設定値の意味は以下の通りです。
設定値 説明
%h アクセスを行ったマシンのホスト名(または IPアドレス) が表示される。
%l リモートログ名。通常は’-‘が表示される。
%u 認証リモートユーザ名。 認証処理を行った場合に、そのユーザ名が表示される。
%r リクエストの最初の行。
%>s HTTP ステータス。リクエストが正常終了の場合、 200 が出力される。
%b HTTPヘッダ以外のサーバからクライアントに送られた バイト数。
common このログフォーマットを表すニックネーム。 CustomLog指示子に、このニックネームを指定することで このニックネームで設定されたログフォーマット情報が出力される。
設定可能なフォーマット
設定値 説明
%a リモートIPアドレス
%A ローカルIPアドレス
%b サーバからクライアントに送信されたバイト数(HTTPヘッダ以外)。 CLF書式。
1バイトも送信されなかった場合は 0 ではなく、 '-' が出力される。
%B サーバからクライアントに送信されたバイト数(HTTPヘッダ以外)
%D (Apache 2.0 のみ)リクエストを処理するのにかかった時間、 ミリ秒単位
%{FOOBAR}e 環境変数 FOOBAR の内容
%f ファイル名
%h リモートホスト
%H リクエストプロトコル
%{Foobar}i サーバに送られたリクエストの Foobar: ヘッダの内容
%l (もしあれば、identd からの)リモートログ名
%m リクエストメソッド
%{Foobar}n 他のモジュールからのメモ Foobar の内容
%{Foobar}o 応答の Foobar: ヘッダの内容
%p リクエストを扱っているサーバの正式なポート番号
%P リクエストを扱った子プロセスのプロセスID
%q 問い合わせ文字列(存在する場合は前に ? が追加される。そうでない場合は空文字列)
%r リクエストの最初の行
%s HTTPステータスコード。
内部でリダイレクトされたリクエストは、元々のリクエスト のステータスが表示される。 最後のステータスを表示する場合は %>sと設定する。 正常終了の場合200が出力される。
%t 時刻。CLFの時刻の書式(標準の英語の書式)
%{format}t Formatで与えられた書式による時刻。
%T リクエストを扱うのにかかった時間を 秒単位で切り捨て表示する。
例えば、リクエストの処理時間が 1秒未満の場合は ’0’ が表示される。
%u リモートユーザ(authによる認証されたユーザ。 ステータス(%s)が401の場合は意味がない可能性がある)
%U リクエストされたURLパスで、クエリ文字列は含まない
%v リクエストを扱っているサーバの正式なサーバ名
%V UseCanonicalNameの設定によるサーバ名

3.7.4. LogLevel

名前 LogLevel
説明 エラーログに出力するログレベルを設定します。
書式 LogLevel level
設定例
(既定値)
LogLevel warn

なお、level には次のレベルを設定可能です。
レベル 説明 error.logへの出力例
emerg 緊急-
システムが
利用できない
Child cannot open lock file. Exiting
(子プロセスがロックファイルを開けないために終了した)
alert 直ちに対処
が必要
getpwuid: couldn’t determine user name from uid
(getpwuid: UIDからユーザ名を特定できない)
crit 致命的な
状態

socket: Failed to get a socket, exiting child
(socket: ソケットの取得に失敗したため、子プロセスが終了した)

error エラー Permature end of script headers
(スクリプトのヘッダが足りないままで終了した)
warn 警告 child process 1234 did not exit, sending anther SIGHUP
(子プロセス1234が終了しないため、SIGHUPを再送した)
notice 重要な情報 httpd: caught SIGBUS, attempting to dump core in …
(httpd: SIGBUSシグナルを受け、…へコアダンプを出力した)
info 追加情報 Server seems busy, (you may need to increase MaxClients) …
(サーバ負荷が高い、MaxClientsの値を増やす必要があるかも)
debug デバッグ Opening config file…
(設定ファイルを開いている…)

3.8. その他の定義情報

その他の定義情報の詳細については、次のURLを参照してください。