Hitachi Web Server

手引書

3020-3-U17-20

目　　次

前書き

変更内容

はじめに

1.　Hitachi Web Serverとは

1.1　Hitachi Web Serverの概要

1.2　Hitachi Web Serverの特長

2.　運用の準備と起動，停止（UNIX版）

2.1　Hitachi Web Serverを運用するためのシステム構成

2.2　インストールとアンインストール

2.2.1　インストール

2.2.2　アンインストール

2.2.3　PP一覧の表示

2.3　運用環境を定義する

2.3.1　環境の定義方法

2.3.2　システムパラメタの定義方法

2.4　起動と停止

2.4.1　Hitachi Web Serverを起動，停止する（httpsdctlユティリティ）

2.4.2　Hitachi Web Serverを起動する（httpsd）

2.4.3　一般ユーザアカウントによる運用

3.　運用の準備と起動，停止（Windows版）

3.1　Hitachi Web Serverを運用するためのシステム構成

3.2　インストールとアンインストール

3.2.1　インストール

3.2.2　アンインストール

3.3　運用環境の定義ファイル

3.4　起動と停止

3.4.1　Hitachi Web Serverの起動，停止

3.4.2　一般ユーザアカウントによる運用

4.　システムの運用方法

4.1　Hitachi Web Serverの処理とディレクティブとの関係

4.1.1　Hitachi Web Serverのプロセス構造（UNIX版）

4.1.2　Hitachi Web Serverのプロセス構造（Windows版）

4.1.3　稼働管理について

4.2　ログを採取する

4.2.1　ログの種類

4.2.2　ログの採取方法

4.2.3　ログを分割する（rotatelogsユティリティ）

4.2.4　ログファイルをラップアラウンドさせて使用する（rotatelogs2ユティリティ）

4.2.5　ログファイルのIPアドレスをホスト名に変換する（logresolveユティリティ）

4.2.6　モジュールトレースの採取

4.2.7　リクエストトレースの採取

4.2.8　I/Oフィルタトレースの採取

4.2.9　内部トレースの採取（hwstraceinfoユティリティ）

4.2.10　保守情報収集機能（hwscollectユティリティ）

4.3　サーバマシンのバーチャル化（バーチャルホスト）

4.4　WebサーバでのCGIプログラムの実行

4.5　ユーザ認証とアクセス制御

4.5.1　ユーザ名およびパスワードによるアクセス制御

4.5.2　クライアントのホスト名またはIPアドレスによるアクセス制御

4.5.3　ディレクトリに対するアクセス制御

4.5.4　ディレクトリサービスを利用したユーザ認証とアクセス制御

4.6　ファイル名一覧の表示

4.7　リバースプロキシの設定

4.8　稼働状況の表示（ステータス情報表示）

4.9　流量制限機能

4.10　ヘッダカスタマイズ機能

4.11　有効期限設定機能

4.12　静的コンテンツキャッシュ機能

4.13　複数のWebサーバ環境の生成（hwsservereditユティリティ）

4.14　イメージマップ

4.15　IPv6による通信

4.15.1　サポート範囲

4.15.2　IPv6による通信の準備（httpsd.confファイルの編集）

5.　SSLによる認証，暗号化

5.1　SSLで認証，暗号化する

5.1.1　SSL通信のための準備

5.1.2　SSL通信の手順

5.1.3　SSLでの暗号強度について

5.1.4　SSLセション管理

5.1.5　SSLクライアント認証の準備

5.1.6　証明書の有効性の検証

5.2　証明書取得手順

5.2.1　Webサーバの秘密鍵の作成

5.2.2　証明書発行要求（CSR）の作成

5.2.3　証明書発行要求（CSR）の内容表示

5.2.4　証明書の内容表示

5.2.5　証明書の形式変換

5.2.6　ハッシュリンクの作成（UNIX版）

5.2.7　sslckeyユティリティおよびsslccertユティリティの使用例

5.2.8　プロンプトモードでのsslckeyユティリティおよびsslccertユティリティの実行

5.3　CRLの運用

5.3.1　CRLのダウンロード

5.4　パスワード付きサーバ秘密鍵の使用

5.4.1　sslpasswdユティリティ

6.　ディレクティブ

6.1　ディレクティブ一覧

6.1.1　ディレクティブ一覧

6.1.2　正規表現

6.1.3　ディレクティブについての注意事項

6.2　ディレクティブの詳細

6.2.1　<で始まるディレクティブ

6.2.2　Aで始まるディレクティブ

6.2.3　B，C，Dで始まるディレクティブ

6.2.4　E，F，G，H，Iで始まるディレクティブ

6.2.5　K，Lで始まるディレクティブ

6.2.6　M，N，O，P，Q，Rで始まるディレクティブ

6.2.7　Sで始まるディレクティブ

6.2.8　T，Uで始まるディレクティブ

7.　メッセージ

7.1　メッセージの形式

7.2　メッセージ一覧

7.2.1　基本機能についてのメッセージ

7.2.2　SSLについてのメッセージ

7.2.3　リバースプロキシについてのメッセージ

7.2.4　流量制限機能についてのメッセージ

7.2.5　静的コンテンツキャッシュ機能についてのメッセージ

7.2.6　LDAP連携機能についてのメッセージ

7.2.7　ユティリティについてのメッセージ

付録

付録A　ステータスコード

付録B　CGIプログラムに渡す環境変数

付録C　高信頼化システム監視機能HAモニタによるシステム監視（クラスタリングシステムの運用）

付録C.1　ハードウェア構成例とHAモニタの動作概要

付録C.2　Hitachi Web Serverの設定

付録C.3　監視コマンドの作成

付録C.4　HAモニタの設定

付録D　MC/ServiceGuardによるシステム監視（クラスタリングシステムの運用）

付録D.1　ハードウェア構成例とMC/ServiceGuardの動作概要

付録D.2　Hitachi Web Serverの設定

付録D.3　監視スクリプトの作成

付録D.4　MC/ServiceGuardの設定

付録E　HACMP for AIXによるシステム監視（クラスタ・マルチプロセッシングの運用）

付録E.1　ハードウェア構成例とHACMP for AIXの動作概要

付録E.2　Hitachi Web Serverの設定

付録E.3　監視スクリプトの作成

付録E.4　HACMP for AIXの設定

付録F　Microsoftサーバクラスタによるシステム監視

付録F.1　運用の例

付録F.2　Hitachi Web Serverの設定

付録F.3　サーバクラスタの設定

付録G　バージョン03-00以降への移行方法

付録H　用語解説

索引

[他社商品名称に関する表示]

All Rights Reserved. Copyright (C) 2008, 2010 Hitachi, Ltd.

前書き

■ 対象製品

P-2441-E184　 Hitachi Web Server　 04-10　（適用OS：Windows Server 2003 Enterprise Edition，Windows Server 2003 Standard Edition，Windows Server 2003 R2 Enterprise Edition，Windows Server 2003 R2 Standard Edition，Windows Server 2003 Enterprise x64 Edition，Windows Server 2003 Standard x64 Edition，Windows Server 2003 R2 Enterprise x64 Edition，Windows Server 2003 R2 Standard x64 Edition，Windows Server 2008 Enterprise Edition，Windows Server 2008 Standard Edition，Windows Server 2008 Enterprise x64 Edition，Windows Server 2008 Standard x64 Edition，Windows Server 2008 R2 Enterprise Edition，Windows Server 2008 R2 Standard Edition）
P-1M41-E181　 Hitachi Web Server　 04-10　（適用OS：AIX 5L V5.3，AIX V6.1）※
P-1J41-E181　 Hitachi Web Server　 04-10　（適用OS：HP-UX 11i V2（IPF），HP-UX 11i V3（IPF））※
P-9S41-E181　 Hitachi Web Server　 04-10　（適用OS：Red Hat Enterprise Linux AS 4（x86），Red Hat Enterprise Linux 5 Advanced Platform（x86），Red Hat Enterprise Linux ES 4（x86），Red Hat Enterprise Linux 5（x86），Red Hat Enterprise Linux AS 4（AMD64 & Intel EM64T），Red Hat Enterprise Linux 5 Advanced Platform（AMD/Intel 64），Red Hat Enterprise Linux ES 4（AMD64 & Intel EM64T），Red Hat Enterprise Linux 5（AMD/Intel 64））※
P-9V41-E181　 Hitachi Web Server　 04-10　（適用OS：Red Hat Enterprise Linux AS 4（IPF），Red Hat Enterprise Linux 5 Advanced Platform（Intel Itanium））※
P-9D41-E181　 Hitachi Web Server　 04-10　（適用OS：Solaris 9（SPARC），Solaris 10（SPARC））※
P-2443-7D84　 uCosminexus Application Server Standard　 08-50　（適用OS：Windows Server 2003 Enterprise Edition，Windows Server 2003 Standard Edition，Windows Server 2003 R2 Enterprise Edition，Windows Server 2003 R2 Standard Edition，Windows Server 2003 Enterprise x64 Edition，Windows Server 2003 Standard x64 Edition，Windows Server 2003 R2 Enterprise x64 Edition，Windows Server 2003 R2 Standard x64 Edition，Windows Server 2008 Enterprise Edition，Windows Server 2008 Standard Edition，Windows Server 2008 Enterprise x64 Edition，Windows Server 2008 Standard x64 Edition，Windows Server 2008 R2 Enterprise Edition，Windows Server 2008 R2 Standard Edition，Windows Vista Business，Windows Vista Enterprise，Windows Vista Ultimate，Windows XP Professional）
P-2443-7K84　 uCosminexus Application Server Enterprise　 08-50　（適用OS：Windows Server 2003 Enterprise Edition，Windows Server 2003 Standard Edition，Windows Server 2003 R2 Enterprise Edition，Windows Server 2003 R2 Standard Edition，Windows Server 2003 Enterprise x64 Edition，Windows Server 2003 Standard x64 Edition，Windows Server 2003 R2 Enterprise x64 Edition，Windows Server 2003 R2 Standard x64 Edition，Windows Server 2008 Enterprise Edition，Windows Server 2008 Standard Edition，Windows Server 2008 Enterprise x64 Edition，Windows Server 2008 Standard x64 Edition，Windows Server 2008 R2 Enterprise Edition，Windows Server 2008 R2 Standard Edition，Windows Vista Business，Windows Vista Enterprise，Windows Vista Ultimate，Windows XP Professional）
P-2443-7S84　 uCosminexus Service Platform　 08-50　（適用OS：Windows Server 2003 Enterprise Edition，Windows Server 2003 Standard Edition，Windows Server 2003 R2 Enterprise Edition，Windows Server 2003 R2 Standard Edition，Windows Server 2003 Enterprise x64 Edition，Windows Server 2003 Standard x64 Edition，Windows Server 2003 R2 Enterprise x64 Edition，Windows Server 2003 R2 Standard x64 Edition，Windows Server 2008 Enterprise Edition，Windows Server 2008 Standard Edition，Windows Server 2008 Enterprise x64 Edition，Windows Server 2008 Standard x64 Edition，Windows Server 2008 R2 Enterprise Edition，Windows Server 2008 R2 Standard Edition，Windows Vista Business，Windows Vista Enterprise，Windows Vista Ultimate，Windows XP Professional）
P-2443-7E84　 uCosminexus Developer Standard　 08-50　（適用OS：Windows Server 2003 Enterprise Edition，Windows Server 2003 Standard Edition，Windows Server 2003 R2 Enterprise Edition，Windows Server 2003 R2 Standard Edition，Windows 7 Proffesional，Windows 7 Enterprise，Windows 7 Ultimate，Windows Vista Business，Windows Vista Enterprise，Windows Vista Ultimate，Windows XP Professional）
P-2443-7F84　 uCosminexus Developer Professional　 08-50　（適用OS：Windows Server 2003 Enterprise Edition，Windows Server 2003 Standard Edition，Windows Server 2003 R2 Enterprise Edition，Windows Server 2003 R2 Standard Edition，Windows 7 Proffesional，Windows 7 Enterprise，Windows 7 Ultimate，Windows Vista Business，Windows Vista Enterprise，Windows Vista Ultimate，Windows XP Professional）
P-2443-7T84　 uCosminexus Service Architect　 08-50　（適用OS：Windows Server 2003 Enterprise Edition，Windows Server 2003 Standard Edition，Windows Server 2003 R2 Enterprise Edition，Windows Server 2003 R2 Standard Edition，Windows 7 Proffesional，Windows 7 Enterprise，Windows 7 Ultimate，Windows Vista Business，Windows Vista Enterprise，Windows Vista Ultimate，Windows XP Professional）
P-1M43-7D81　 uCosminexus Application Server Standard　 08-50　（適用OS：AIX 5L V5.3，AIX V6.1）※
P-1M43-7K81　 uCosminexus Application Server Enterprise　 08-50　（適用OS：AIX 5L V5.3，AIX V6.1）※
P-1M43-7S81　 uCosminexus Service Platform　 08-50　（適用OS：AIX 5L V5.3，AIX V6.1）※
P-1J43-7D81　 uCosminexus Application Server Standard　 08-50　（適用OS：HP-UX 11i V2（IPF），HP-UX 11i V3（IPF））※
P-1J43-7K81　 uCosminexus Application Server Enterprise　 08-50　（適用OS：HP-UX 11i V2（IPF），HP-UX 11i V3（IPF））※
P-1J43-7S81　 uCosminexus Service Platform　 08-50　（適用OS：HP-UX 11i V2（IPF），HP-UX 11i V3（IPF））※
P-9S43-7D81　 uCosminexus Application Server Standard　 08-50　（適用OS：Red Hat Enterprise Linux AS 4（x86），Red Hat Enterprise Linux 5 Advanced Platform（x86），Red Hat Enterprise Linux ES 4（x86），Red Hat Enterprise Linux 5（x86），Red Hat Enterprise Linux AS 4（AMD64 & Intel EM64T），Red Hat Enterprise Linux 5 Advanced Platform（AMD/Intel 64），Red Hat Enterprise Linux ES 4（AMD64 & Intel EM64T），Red Hat Enterprise Linux 5（AMD/Intel 64））※
P-9S43-7K81　 uCosminexus Application Server Enterprise　 08-50　（適用OS：Red Hat Enterprise Linux AS 4（x86），Red Hat Enterprise Linux 5 Advanced Platform（x86），Red Hat Enterprise Linux ES 4（x86），Red Hat Enterprise Linux 5（x86），Red Hat Enterprise Linux AS 4（AMD64 & Intel EM64T），Red Hat Enterprise Linux 5 Advanced Platform（AMD/Intel 64），Red Hat Enterprise Linux ES 4（AMD64 & Intel EM64T），Red Hat Enterprise Linux 5（AMD/Intel 64））※
P-9S43-7S81　 uCosminexus Service Platform　 08-50　（適用OS：Red Hat Enterprise Linux AS 4（x86），Red Hat Enterprise Linux 5 Advanced Platform（x86），Red Hat Enterprise Linux ES 4（x86），Red Hat Enterprise Linux 5（x86），Red Hat Enterprise Linux AS 4（AMD64 & Intel EM64T），Red Hat Enterprise Linux 5 Advanced Platform（AMD/Intel 64），Red Hat Enterprise Linux ES 4（AMD64 & Intel EM64T），Red Hat Enterprise Linux 5（AMD/Intel 64））※
P-9V43-7D81　 uCosminexus Application Server Standard　 08-50　（適用OS：Red Hat Enterprise Linux AS 4（IPF），Red Hat Enterprise Linux 5 Advanced Platform（Intel Itanium））※
P-9V43-7K81　 uCosminexus Application Server Enterprise　 08-50　（適用OS：Red Hat Enterprise Linux AS 4（IPF），Red Hat Enterprise Linux 5 Advanced Platform（Intel Itanium））※
P-9V43-7S81　 uCosminexus Service Platform　 08-50　（適用OS：Red Hat Enterprise Linux AS 4（IPF），Red Hat Enterprise Linux 5 Advanced Platform（Intel Itanium））※
P-9D43-7D81　 uCosminexus Application Server Standard　 08-50　（適用OS：Solaris 9（SPARC），Solaris 10（SPARC））※
P-9D43-7K81　 uCosminexus Application Server Enterprise　 08-50　（適用OS：Solaris 9（SPARC），Solaris 10（SPARC））※

※印の製品については，サポート時期をご確認ください。
これらのプログラムプロダクトのほかにもこのマニュアルをご利用になれる場合があります。詳細は「リリースノート」でご確認ください。

■ 輸出時の注意

本製品を輸出される場合には，外国為替および外国貿易法ならびに米国の輸出管理関連法規などの規制をご確認の上，必要な手続きをお取りください。
なお，ご不明な場合は，弊社担当営業にお問い合わせください。

■ 商標類

AIXは，米国における米国International Business Machines Corp.の登録商標です。
BSAFEは，RSA Security Inc.の米国およびその他の国における登録商標です。
GIFは，米国CompuServe Inc.が開発したフォーマットの名称です。
gzipは，米国FSF(Free Software Foundation)が配布しているソフトウェアです。
HACMPは，米国における米国International Business Machines Corp.の商標です。
HP-UXは，米国Hewlett-Packard Companyのオペレーティングシステムの名称です。
i486は，Intel Corporationのアメリカ合衆国及びその他の国における登録商標です。
IBMは，米国における米国International Business Machines Corp.の登録商標です。
Internet Explorerは，米国Microsoft Corporationの米国及びその他の国における登録商標または商標です。
Itaniumは，アメリカ合衆国および他の国におけるインテル コーポレーションまたはその子会社の登録商標です。
JavaScriptは，米国およびその他の国における米国Sun Microsystems,Inc.の商標または登録商標です。
Java 及びすべてのJava関連の商標及びロゴは，米国及びその他の国における米国Sun Microsystems, Inc.の商標または登録商標です。
Linuxは，Linus Torvaldsの米国およびその他の国における登録商標あるいは商標です。
Microsoftは，米国およびその他の国における米国Microsoft Corp.の登録商標です。
Mozillaは，Mozilla Foundationの，米国およびその他の国における商標です。
Netscapeは, 米国およびその他の国におけるNetscape Communications Corporationの登録商標です。
RC2は，RSA Security Inc.の米国およびその他の国における登録商標です。
RC4は，RSA Security Inc.の米国およびその他の国における登録商標です。
Red Hatは，米国およびその他の国でRed Hat,Inc. の登録商標若しくは商標です。
RSAは，RSA Security Inc.の登録商標です。

すべてのSPARC商標は，米国SPARC International, Inc. のライセンスを受けて使用している同社の米国およびその他の国における商標または登録商標です。SPARC商標がついた製品は，米国Sun Microsystems, Inc. が開発したアーキテクチャに基づくものです。
Solarisは，米国Sun Microsystems, Inc. の米国およびその他の国における商標または登録商標です。
Sun，Sun Microsystems，Javaは，米国Sun Microsystems,Inc. の米国およびその他の国における商標または登録商標です。
UNIXは，X/Open Company Limited が独占的にライセンスしている米国ならびに他の国における登録商標です。
Windowsは，米国およびその他の国における米国Microsoft Corp.の登録商標です。
Windows Serverは，米国Microsoft Corporationの米国及びその他の国における登録商標です。
Windows Vistaは，米国Microsoft Corporationの米国及びその他の国における登録商標です。
イーサネットは，富士ゼロックス(株)の商品名称です。
プログラムプロダクト「P-9D41-E181」には，米国Sun Microsystems,Inc.が著作権を有している部分が含まれています。
プログラムプロダクト「P-9D41-E181」には，UNIX System Laboratories,Inc.が著作権を有している部分が含まれています。
Hitachi Web Serverは，RSA Security Inc.のRSA(R) BSAFETMソフトウェアを搭載しています。
This product includes software developed by the Apache Software Foundation (http://www.apache.org/).
This product includes software developed by Ben Laurie for use in the Apache-SSL HTTP server project.
Portions of this software were developed at the National Center for Supercomputing Applications (NCSA) at the University of Illinois at Urbana-Champaign.
This product includes software developed by the University of California, Berkeley and its contributors.
This software contains code derived from the RSA Data Security Inc. MD5 Message-Digest Algorithm, including various modifications by Spyglass Inc., Carnegie Mellon University, and Bell Communications Research, Inc (Bellcore).
Regular expression support is provided by the PCRE library package, which is open source software, written by Philip Hazel, and copyright by the University of Cambridge, England. The original software is available from 　ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/
This product includes software developed by Ralf S. Engelschall <rse@engelschall.com> for use in the mod_ssl project (http://www.modssl.org/).

■ 発行

2008年 9 月 （第1版）3020-3-U17
2010年 2 月 （第2版）3020-3-U17-20

■ 著作権

All Rights Reserved. Copyright (C) 2008, 2010 Hitachi, Ltd.

変更内容

変更内容（3020-3-U17-20）Hitachi Web Server　04-10

追加・変更内容
変更個所

最低限必要なディレクティブの一覧を記載した。
2.3.1(2)，3.3(2)，6.1.3(6)

Red Hat Enterprise Linux 5 Advanced Platform (AMD/Intel64)，Red Hat Enterprise Linux 5 (AMD/Intel64)において，SSL機能の使用方法を追加した。
2.4.2，5.1，5.1.1(1)

一般ユーザアカウントによる運用方法を追加した。
2.4.3，7.2.1(6)

Windows 7とWindows Server 2008 R2上でHitachi Web Serverを動作させる場合の注意事項を追加した。
3.1(3)，3.4.1(4)，3.4.2(6)

ログファイルのサイズに関する注意事項を追加した。
4.2.1

ユティリティがシグナルを受信した場合の処理を追加した。
4.2.3(4)，4.2.4(4)

crldownloadユティリティの対象のオペレーティングシステムを記載した。
5.3.1

次のディレクティブを追加した。
HWSNotModifiedResponseHeaders
6.1.1，6.2.4(24)

ディレクティブにパス情報を指定する場合の注意事項を追加した。
6.1.3(3)

PidFileディレクティブの注意事項を追加した。
6.2.2(11)

サービス起動時のエラーメッセージを追加した。
7.2.1(3)

Hitachi Web Serverがシグナルを受信した場合に出力するエラーメッセージに，対象のシグナルを追加した。
7.2.1(6)

コネクションタイムアウトが発生した場合のエラーメッセージを追加した。
7.2.1(7)

Widnows Server 2008 のサーバクラスタの設定方法を追加した。
付録F

はじめに

このマニュアルは，次に示すプログラムプロダクトのインストール手順と環境設定について説明したものです。

P-1J41-E181　Hitachi Web Server

P-1J43-7D81　uCosminexus Application Server Standard

P-1J43-7K81　uCosminexus Application Server Enterprise

P-1J43-7S81　uCosminexus Service Platform

P-1M41-E181　Hitachi Web Server

P-1M43-7D81　uCosminexus Application Server Standard

P-1M43-7K81　uCosminexus Application Server Enterprise

P-1M43-7S81　uCosminexus Service Platform

P-2441-E184　Hitachi Web Server

P-2443-7D84　uCosminexus Application Server Standard

P-2443-7E84　uCosminexus Developer Standard

P-2443-7F84　uCosminexus Developer Professional

P-2443-7K84　uCosminexus Application Server Enterprise

P-2443-7S84　uCosminexus Service Platform

P-2443-7T84　uCosminexus Service Architect

P-9D41-E181　Hitachi Web Server

P-9D43-7D81　uCosminexus Application Server Standard

P-9D43-7K81　uCosminexus Application Server Enterprise

P-9S41-E181　Hitachi Web Server

P-9S43-7D81　uCosminexus Application Server Standard

P-9S43-7K81　uCosminexus Application Server Enterprise

P-9S43-7S81　uCosminexus Service Platform

P-9V41-E181　Hitachi Web Server

P-9V43-7D81　uCosminexus Application Server Standard

P-9V43-7K81　uCosminexus Application Server Enterprise

P-9V43-7S81　uCosminexus Service Platform

対象読者

WWW環境でHitachi Web Server（Webサーバ）を構築，管理するシステム管理者を対象としています。前提となるハードウェアとオペレーティングシステム，ネットワーク，HTTPおよびマシンの操作についての知識を持つ方を対象としています。

また，ディレクトリサービスを使用する場合には，次の前提知識を持つ方を対象としています。

LDAP（Lightweight Directory Access Protocol）

また，Hitachi Directory Server Version 2と連携する場合には，次の前提知識を持つ方を対象としています。

Hitachi Directory Server Version 2

マニュアルの構成

このマニュアルは，次に示す章と付録から構成されています。

第1章　Hitachi Web Serverとは

Hitachi Web Serverの位置づけ，製品の概要について説明しています。

第2章　運用の準備と起動，停止（UNIX版）

Hitachi Web Server（UNIX版）のプログラムのインストール，環境設定など運用前に理解しておいていただきたいことについて説明しています。

第3章　運用の準備と起動，停止（Windows版）

Hitachi Web Server（Windows版）のプログラムのインストール，環境設定など運用前に理解しておいていただきたいことについて説明しています。

第4章　システムの運用方法

起動・停止方法，Webサーバ環境を運用に合わせて実行するコマンドの使用方法について説明しています。

第5章　SSLによる認証，暗号化

SSLによる認証，暗号化について説明しています。

第6章　ディレクティブ

Webサーバ環境を運用に合わせて設定するディレクティブの文法について説明しています。

第7章　メッセージ

Hitachi Web Serverが出力するメッセージについて説明しています。

付録A　ステータスコード

Webブラウザに表示するステータスコードについて説明しています。

付録B　CGIプログラムに渡す環境変数

Hitachi Web ServerがCGIプログラムに渡す環境変数について説明しています。

付録C　高信頼化システム監視機能HAモニタによるシステム監視(クラスタリングシステムの運用)

高信頼化システム監視機能HAモニタについて説明しています。

付録D　MC/ServiceGuardによるシステム監視(クラスタリングシステムの運用)

MC/ServiceGuardを利用したWebサーバの運用例について説明しています。

付録E　HACMP for AIXによるシステム監視(クラスタ・マルチプロセッシングの運用)

HACMP for AIXを利用したWebサーバの運用例について説明しています。

付録F　Microsoftサーバクラスタによるシステム監視

Microsoftサーバクラスタを利用したWebサーバの運用例について説明しています。

付録G　バージョン03-00以降への移行方法

バージョン03-00以降へ移行する方法について説明しています。

付録H　用語解説

マニュアルの中で使用している用語について説明しています。

関連マニュアル

高信頼化システム監視機能　HAモニタ　AIX(R)編（3000-9-130）※

高信頼化システム監視機能　HAモニタ　HP-UX編（3000-9-131）※

高信頼化システム監視機能　HAモニタ　Linux(R)編（3000-9-132）※

高信頼化システム監視機能　HAモニタ　メッセージ（3000-9-134）※

日立ディレクトリサービス　導入編（3020-3-825）

注※

本文中で使用しているHAモニタのマニュアル名は，AIX(R)編，HP-UX(R)編，Linux(R)編およびメッセージを省略して表記しています。使用しているプラットフォームに応じてAIX用，HP-UX用またはLinux用のマニュアルを参照してください。また，必要に応じてメッセージのマニュアルを参照してください。

読書手順

このマニュアルでの表記

このマニュアルで使用している表記と，対応する製品名を次に示します。

表記
製品名

Internet Explorer
Internet Explorer(R)

IPF
Itanium (R) Processor Family

uCosminexus Application Server
uCosminexus Application Server Enterprise

uCosminexus Application Server Standard

UNIX
AIX
AIX 5L V5.3
AIX V6.1

HP-UX
HP-UX（IPF）
HP-UX 11i V2（IPF）
HP-UX 11i V3（IPF）

Linux
Linux（32ビット）
Red Hat Enterprise Linux AS 4（x86）
Red Hat Enterprise Linux 5 Advanced Platform（x86）
Red Hat Enterprise Linux ES 4（x86）
Red Hat Enterprise Linux 5（x86）
Red Hat Enterprise Linux AS 4（AMD64 & Intel EM64T）
Red Hat Enterprise Linux 5 Advanced Platform（AMD/Intel 64）
Red Hat Enterprise Linux ES 4（AMD64 & Intel EM64T）
Red Hat Enterprise Linux 5（AMD/Intel 64）

Linux（IPF）
Red Hat Enterprise Linux AS 4（IPF）
Red Hat Enterprise Linux 5 Advanced Platform（Intel Itanium）

Solaris
Solaris 9
Solaris 10

Windows
Windows Server 2003
Windows Server 2003 Enterprise Edition
Microsoft(R) Windows Server(R) 2003，Enterprise Edition 日本語版

Windows Server 2003 Standard Edition
Microsoft(R) Windows Server(R) 2003，Standard Edition 日本語版

Windows Server 2003 R2 Enterprise Edition
Microsoft(R) Windows Server(R) 2003 R2，Enterprise Edition 日本語版

Windows Server 2003 R2 Standard Edition
Microsoft(R) Windows Server(R) 2003 R2，Standard Edition 日本語版

Windows Server 2003 Enterprise x64 Edition
Microsoft(R) Windows Server(R) 2003，Enterprise x64 Edition 日本語版

Windows Server 2003 Standard x64 Edition
Microsoft(R) Windows Server(R) 2003，Standard x64 Edition 日本語版

Windows Server 2003 R2 Enterprise x64 Edition
Microsoft(R) Windows Server(R) 2003 R2，Enterprise x64 Edition 日本語版

Windows Server 2003 R2 Standard x64 Edition
Microsoft(R) Windows Server(R) 2003 R2，Standard x64 Edition 日本語版

Windows Server 2008
Windows Server 2008 Enterprise Edition
Microsoft(R) Windows Server(R) 2008 Enterprise 32-bit 日本語版

Windows Server 2008 Standard Edition
Microsoft(R) Windows Server(R) 2008 Standard 32-bit 日本語版

Windows Server 2008 Enterprise x64 Edition
Microsoft(R) Windows Server(R) 2008 Enterprise 日本語版

Windows Server 2008 Standard x64 Edition
Microsoft(R) Windows Server(R) 2008 Standard 日本語版

Windows Server 2008 R2
Windows Server 2008 R2 Enterprise Edition
Microsoft(R) Windows Server(R) 2008 R2 Enterprise 日本語版

Windows Server 2008 R2 Standard Edition
Microsoft(R) Windows Server(R) 2008 R2 Standard 日本語版

Windows 7
Windows 7 Professional
Microsoft(R) Windows(R) 7 Professional 日本語版

Windows 7 Enterprise
Microsoft(R) Windows(R) 7 Enterprise 日本語版

Windows 7 Ultimate
Microsoft(R) Windows(R) 7 Ultimate 日本語版

Windows Vista
Windows Vista Business
Microsoft(R) Windows Vista(R) Business 日本語版

Windows Vista Enterprise
Microsoft(R) Windows Vista(R) Enterprise 日本語版

Windows Vista Ultimate
Microsoft(R) Windows Vista(R) Ultimate 日本語版

Windows XP Professional
Microsoft(R) Windows(R) XP Professional Operating System

このマニュアルで使用している記号

文法説明をするときに使用する記号について説明します。

記号
意味

〔　〕
〔　〕内の項目を省略できます。

（例）A〔,B〕〔,C〕のとき，次の4通りの指定ができます。

A

A,B

A,B,C

A,C

｛　｝
｛　｝内のどれか一つを選んで指定します。

（例）A｛,B｜,C｝のとき，次の2通りの指定ができます。

A,B

A,C

｜
選択肢の区切りを表しています。

＿（アンダーライン）
項目の指定を省略したときに，システムが仮定する値を表しています。

…
この記号の直前に位置する項目を繰り返し指定できます。

～
この記号の直前に位置する項目をこの記号以降の文法規則に従って，記述することを示します。

《　》
項目の指定を省略したときに，システムが仮定する値を表しています。

((　))
指定できる値の範囲を表しています。

[図データ]　
UNIX版だけに有効なディレクティブを表しています。

[図データ]　
Windows版だけに有効なディレクティブを表しています。

図中で使用する記号

このマニュアルの図中で使用する記号を，次のように定義します。

Windowsの場合のフォルダとパスの表記

このマニュアルでは，Windows，HP-UX，AIX，Linux，およびSolarisで共通の内容の場合，Windowsの「フォルダ」を「ディレクトリ」と表記しています。Windowsの場合，「ディレクトリ」を「フォルダ」に置き換えてお読みください。

常用漢字以外の漢字の使用について

このマニュアルでは，常用漢字を使用することを基本としていますが，次に示す用語については，常用漢字以外の漢字を使用しています。

鍵（かぎ）

個所（かしょ）

同梱（どうこん）

汎用（はんよう）

必須（ひっす）

漏洩（ろうえい）

KB（キロバイト）などの単位表記について

1KB（キロバイト），1MB（メガバイト），1GB（ギガバイト），1TB（テラバイト）はそれぞれ1,024バイト，1,024²バイト，1,024³バイト，1,024⁴バイトです。

Hitachi Web Serverのホームページ

インターネットのホームページを開設しています。

http://www.hitachi.co.jp/Prod/comp/soft1/webserver/index.html

1.　Hitachi Web Serverとは

この章では，Hitachi Web Serverの概要について説明します。

＜この章の構成＞

1.1　Hitachi Web Serverの概要

1.2　Hitachi Web Serverの特長

1.1　Hitachi Web Serverの概要

近年のWeb関連技術はインターネット，イントラネットおよびエクストラネットへと拡大，発展しています。それに伴い，Webサーバは，トランザクション処理を含む業務システムや，基幹系システムなどの，ミッションクリティカルな環境で利用されるようになってきました。そのような環境で利用できる基幹業務システム向けWebサーバであるHitachi Web Serverは，きめ細かな保守サービス，テクニカルサービスによって，信頼性の高いシステムをサポートしています。

1.2　Hitachi Web Serverの特長

Hitachi Web Serverは，全世界で高いシェアを持つApache HTTP Serverをベースに開発しています。Hitachi Web Serverでのサポート範囲は，このマニュアルの記述範囲です。

Hitachi Web Serverで使用できる主な機能には次のものがあります。

ユーザ認証とアクセス保護

バーチャルホスト

リバースプロキシ

流量制限機能

有効期限設定機能

ヘッダカスタマイズ機能

CGIプログラムの実行

静的コンテンツキャッシュ機能

ディレクトリインデクス表示

イメージマップ

また，Hitachi Web Serverは，RSA Security社の製品であるBSAFE(R) SSL-Cを導入し，SSL（Secure Sockets Layer）を実装しています。これによって，データの改ざん，なりすまし（クライアントから見たサーバのなりすましおよびサーバから見たクライアントのなりすまし）および盗聴を防止し，情報の安全性を確保できます。

uCosminexus Application Serverでの適用例

Hitachi Web Serverは，uCosminexus Application Serverを構成する製品の一つです。

uCosminexus Application Serverでの適用例を次に示します。

図1-1　uCosminexus Application Serverでの適用例

2.　運用の準備と起動，停止（UNIX版）

この章では，Hitachi Web Serverを運用する前に，知っておいていただきたいことおよび起動と停止について説明します。

＜この章の構成＞

2.1　Hitachi Web Serverを運用するためのシステム構成

2.2　インストールとアンインストール

2.3　運用環境を定義する

2.4　起動と停止

2.1　Hitachi Web Serverを運用するためのシステム構成

Hitachi Web Serverを運用するために必要なシステム構成について説明します。

＜この節の構成＞

(1)　ハードウェア構成

(2)　ソフトウェア構成

(1)　ハードウェア構成

(a)　サーバ

Hitachi Web Serverの適用機種，使用するメモリ所要量，およびディスク占有量については，リリースノートを参照してください。

(b)　クライアント

Webブラウザが動作できる端末

(c)　ネットワーク関連

イーサネットなどのネットワーク（必須）

ドメインネームシステムサーバ（任意）

ロードバランサ（任意）

SSLアクセラレータ（任意）

ファイアウォール（任意）

(2)　ソフトウェア構成

(a)　サーバ

ディレクトリサービス（LDAPサーバ）を利用してユーザ認証およびアクセス保護をする場合に，必要なソフトウェア。

ユーザを一元管理するためのディレクトリサービスが利用できるソフトウェア
P-1B44-A121 Hitachi Directory Server Version 2　02-01以降

日立ディレクトリサービスにアクセスするためのソフトウェア

AIX版
OSに同梱されているldap.client.rteファイルセット

Linux（32ビット），Solaris版
同等の機能が製品に同梱されています。

日立ディレクトリサービスの導入方法については，マニュアル「日立ディレクトリサービス　導入編」を参照してください。

なお，同じLDAP対応のディレクトリサービスとして「Sun Java(TM) System Directory Server」も使用できます。

2.2　インストールとアンインストール

Hitachi Web Serverのインストール・アンインストールは，製品として提供されているCD-ROMに格納されている日立PPインストーラ（Hitachi PP Installer）を使用します。

日立PPインストーラは，スーパユーザ以外では実行できません。このため，インストール対象のマシンにスーパユーザ（root）でログインしてください。

Hitachi Web Serverをインストールする前に，Hitachi Web Serverのすべてのプログラムおよび関連ファイルへのすべての操作を終了してください。また，日立PPインストーラを使用すると，/optおよび/etcのディレクトリ属性が変更される場合があります。

日立PPインストーラを使ったインストールが失敗した場合は，Hitachi Web Serverのすべてのプログラムおよび関連ファイルへのすべての操作が終了していることを確認してから，再度インストールしてください。

＜この節の構成＞

2.2.1　インストール

2.2.2　アンインストール

2.2.3　PP一覧の表示

2.2.1　インストール

＜この項の構成＞

(1)　日立PPインストーラの起動

(2)　PPのインストール

(1)　日立PPインストーラの起動

(a)　CD-ROMからの起動

ここではCD-ROMからの起動方法を説明します。

CD-ROMファイルシステムのマウント
最初に，CD-ROMファイルシステムをマウントしておく必要があります。マウントするためには，次のコマンドを入力します。
下線部のデバイススペシャルファイル名およびCD-ROMファイルシステムのマウントディレクトリ名は，使用環境に合わせて変更してください。

mount /dev/dsk/c0t2d0 /cdrom

CD-ROMセットアッププログラムの起動
CD-ROMセットアッププログラムを起動して，日立PPインストーラをハードディスク上にインストールします。
次にCD-ROMセットアッププログラムのコマンドを示します。このコマンドを実行すると，同時に日立PPインストーラも起動します。
下線部には使用するCD-ROMディレクトリ名を指定してください。なお，CD-ROM内のディレクトリやファイル名は，マシンによっては，小文字に見えます。lsコマンドで確認の上，小文字であれば，小文字で入力してください。

/cdrom/OS名称/SETUP /cdrom

OS名称：HP-UXの場合はHPUX，Solarisの場合はSOLARIS，Linuxの場合はLINUX，AIXの場合はAIXと指定してください。

(2)　PPのインストール

(a)　インストーラメインメニュー

/etc/hitachi_setupコマンドを実行すると，次に示すインストーラメインメニューが表示されます。

Hitachi PP Installer  04-06

   L) List Installed Software.
   I) Install Software.
   D) Delete  Software.
   Q) Quit.

   Select Procedure ===>

   +----------------------------------------------------------------------+
     CAUTION!
     YOU SHALL INSTALL AND USE THE SOFTWARE PRODUCT LISTED IN THE
     "List Installed Software." UNDER THE TERMS AND CONDITION OF
     THE SOFTWARE LICENSE AGREEMENT ATTACHED TO SUCH SOFTWARE PRODUCT.
   +----------------------------------------------------------------------+

 All Rights Reserved. Copyright (C) 1994, 2006, Hitachi, Ltd.

(b)　PPインストール画面

インストーラメインメニューで［i］または［I］を選択すると，次に示すPPインストール画面が表示されます。

        PP-No.          VR      PP-NAME
<@>001 P-XX41-XXXX     0310    Hitachi Web Server
F)Forward B) Backward J) Down K) Up Space) Select/Unselect I) Install Q) Quit

注　P-XX41-XXXXにはインストールする製品の形名が表示されます。

インストールしたいPPにカーソルを移動させ，スペースキーで選択します。選択したPPの左側には，"＜@＞"が表示されます。

続いて，［i］または［I］を入力すると，最下行に次のメッセージが表示されます。

Install PP? (y: install,  n: cancel) ==>

ここで，［y］または［Y］を選択すると，インストールが開始されます。［n］または［N］を選択すると，インストールが中止され，PPインストール画面に戻ります。

［q］または［Q］を入力すると，インストーラメインメニューに戻ります。

2.2.2　アンインストール

アンインストール方法について説明します。

アンインストールはHitachi Web Serverを必ず停止してから，実行してください。

＜この項の構成＞

(1)　日立PPインストーラの起動

(2)　アンインストールの選択

(3)　アンインストールの開始

(1)　日立PPインストーラの起動

/etc/hitachi_setupコマンドを実行します。日立PPインストーラが起動されます。

/etc/hitachi_setup

(2)　アンインストールの選択

(a)　インストーラメインメニュー

/etc/hitachi_setupコマンドを実行すると，次に示すインストーラメインメニューが表示されます。

 Hitachi PP Installer  04-06

   L) List Installed Software.
   I) Install Software.
   D) Delete  Software.
   Q) Quit.

   Select Procedure ===>

   +----------------------------------------------------------------------+
     CAUTION!
     YOU SHALL INSTALL AND USE THE SOFTWARE PRODUCT LISTED IN THE
     "List Installed Software." UNDER THE TERMS AND CONDITION OF
     THE SOFTWARE LICENSE AGREEMENT ATTACHED TO SUCH SOFTWARE PRODUCT.
   +----------------------------------------------------------------------+

 All Rights Reserved. Copyright (C) 1994, 2006, Hitachi, Ltd.

(b)　PP削除画面

インストーラメインメニューで［d］または［D］を選択すると，次に示すPP削除画面が表示されます。アンインストールできるプログラムの一覧が表示されます。

        PP-No.           VR      PP-NAME
<@>001 P-XX41-XXXX     0310    Hitachi Web Server
       :
       :
       :
F) Forward B) Backward J) Down K) Up Space) Select/Unselect D) Delete Q) Quit

注　P-XX41-XXXXにはアンインストールする製品の形名が表示されます。

ここでアンインストールしたいPPにカーソルを移動させ（この場合はHitachi Web Server），スペースキーを押します。選択したPPの左側には，"＜@＞"が表示されます。このとき，ほかのPPを間違って選択しないように注意してください。

(3)　アンインストールの開始

アンインストールしたいPP名に"＜@＞"が表示されているのを確認して［d］または［D］を入力してください。最下行に次のメッセージが表示されます。

Delete PP? (y: delete,  n: cancel) ==>

ここで，［y］または［Y］を選択すると，アンインストールが開始されます。［n］または［N］を選択すると，アンインストールが中止され，PP削除画面に戻ります。

2.2.3　PP一覧の表示

インストーラメインメニューで［l］または［L］を選択すると，次に示すPP一覧表示画面が表示されます。これは，このマシンにインストールされているPPの一覧です。

［p］または［P］を選択すると，インストール済みのPP一覧が"/tmp/hitachi_PPLIST"に出力されます。

［q］または［Q］を選択するとインストーラメインメニューに戻ります。

    PP-No.          VR      Install date        PP-NAME
001 P-XX41-XXXX     0310    2007/04/01 12:00   Hitachi Web Server
      :
      :
      :
F) Forward B) Backward Q) Quit P) Print to /tmp/hitachi_PPLIST ==>

注　P-XX41-XXXXにはインストール済みの製品の形名が表示されます。

2.3　運用環境を定義する

Hitachi Web Serverの動作を定義するファイルについて説明します。

＜この節の構成＞

2.3.1　環境の定義方法

2.3.2　システムパラメタの定義方法

2.3.1　環境の定義方法

＜この項の構成＞

(1)　ディレクトリ構成

(2)　コンフィグファイル

(1)　ディレクトリ構成

Hitachi Web Serverをインストールしたときの，ディレクトリ構成を次に示します。この構成は変更しないでください。

図2-1　ディレクトリ構成

(2)　コンフィグファイル

Hitachi Web Serverの動作環境を定義するファイルをコンフィグファイルといいます。なお，コンフィグファイルのコメント行以外に，マルチバイト文字およびUnicodeの補助文字は指定できません。

Hitachi Web Serverの動作を定義するファイルには，httpsd.confファイル，mime.typesファイルおよびアクセスコントロールファイル（.htaccess）の三つがあります。SSLユティリティの動作を定義するファイルは，sslc.cnfファイルです。各ファイルの用途を次に示します。

表2-1　コンフィグファイルの用途

ファイル名
用途
標準提供

httpsd.conf
Hitachi Web Serverの動作環境を各種ディレクティブで定義します。システム管理者が管理します。
○

mime.types
コンテンツのファイル拡張子とコンテントタイプ（MIMEタイプ）の関連づけを定義します。システム管理者が管理します。
○

.htaccess
アクセス制御を定義するアクセスコントロールファイル。必要に応じてエンドユーザがアクセス制御するディレクトリ下に作成します（デフォルトファイル名は.htaccess）。
×

sslc.cnf
SSLのユティリティについての情報を定義します。システム管理者が管理します。sslcユティリティだけで使用できます。
認証局（CA）に提出するCSRを作成する場合，ユティリティで使用する値を指定しておくと，効率良くCSRを作成できます。
○

Includeディレクティブで指定したファイル
Hitachi Web Serverの動作環境を各種ディレクティブで定義します。システム管理者が管理します。
×

（凡例）

○：標準提供する。

×：標準提供しない。

コンフィグファイルの関連を次に示します。

図2-2　コンフィグファイルの関連

2.3.2　システムパラメタの定義方法

Hitachi Web Serverに必要なシステムパラメタの定義方法について説明します。設定方法の詳細については，ご使用のOSのマニュアルを参照してください。

＜この項の構成＞

(1)　共有メモリセグメントの最大サイズ

(2)　最大プロセス数

(3)　最大ファイル数(ファイルディスクリプタ数)

(1)　共有メモリセグメントの最大サイズ

Hitachi Web Serverでは，サーバプロセスのステータス情報と内部のトレース情報を共有メモリに採取します。OSには，共有メモリセグメント一つ当たりの最大サイズについて制限するシステムパラメタがあります。

サーバプロセスのステータス情報で使用する共用メモリの大きさ（バイト）は400KB，トレース情報は「MaxClientsディレクティブの値×7KB」です。共有メモリセグメントの最大サイズのシステムパラメタには，それら以上の値を設定してください。

システムパラメタの例を次に示します。なお，OSのシステムパラメタの種別およびその内容は，使用しているOSまたはカーネルのバージョンごとに異なります。システムパラメタの内容および設定方法の詳細については，ご使用のOSのマニュアルを参照してください。

Linux（32ビット），Linux（IPF）の場合（括弧内は設定ファイル例）

共有メモリセグメントの最大サイズ：kernel.shmmax（/etc/sysctl.conf）

Solarisの場合

共有メモリセグメントの最大サイズ（Solaris 8, 9）：shmsys:shminfo_shmmax

プロジェクト当たりの共有メモリセグメントの最大サイズ（Solaris 10）：project.max-shm-memory

AIX，HP-UX（IPF）の場合

共有メモリセグメントの最大サイズ：shmmax

(2)　最大プロセス数

システム上のプロセス数およびユーザ当たりのプロセス数は，OSのシステムパラメタによって制限されています。次に示す起動プロセス数から，運用環境における起動プロセス数の合計値を考慮し，システムパラメタを設定してください。

制御プロセス

起動プロセス数：1個

変更対象システムパラメタ：Webサーバを起動したユーザにおける最大プロセス数

サーバプロセス

起動プロセス数：MaxClientsディレクティブ指定値

変更対象システムパラメタ：Userディレクティブに指定したユーザにおける最大プロセス数

CGIプロセス

CGIプログラムの実行が許可されている場合，CGIプロセスはリクエスト処理時に各サーバプロセスから起動されます。

起動プロセス数：MaxClientsディレクティブ指定値

変更対象システムパラメタ：Userディレクティブに指定したユーザにおける最大プロセス数

gcacheサーバ

SSLセション管理機能を有効にしている場合起動します。

起動プロセス数：1個

変更対象システムパラメタ：Userディレクティブに指定したユーザにおける最大プロセス数

Hitachi Web Serverのプロセス構造については，「4.1.1　Hitachi Web Serverのプロセス構造（UNIX版）」を参照してください。

システムパラメタの例を次に示します。なお，OSのシステムパラメタの種別およびその内容は，使用しているOSまたはカーネルのバージョンごとに異なります。システムパラメタの内容および設定方法の詳細については，ご使用のOSのマニュアルを参照してください。

Linux（32ビット），Linux（IPF）の場合（括弧内は設定ファイル例）

システム全体の最大プロセス数：kernel.threads-max（/etc/sysctl.conf）

ユーザ当たりの最大プロセス数：nproc（/etc/security/limits.conf）

Solarisの場合

システム全体の最大プロセス数：max_nprocs

ユーザ当たりの最大プロセス数：maxuprc

AIXの場合

ユーザ当たりの最大プロセス数：maxuproc

HP-UX（IPF）の場合

システム全体の最大プロセス数：nproc

ユーザ当たりの最大プロセス数：maxuprc

(3)　最大ファイル数(ファイルディスクリプタ数)

システム上でオープンできるファイル数およびユーザ当たりオープンできるファイル数は，OSのシステムパラメタによって制限されています。次に示す，Hitachi Web Serverで使用するファイルディスクリプタ数を考慮して，これらのシステムパラメタを設定してください。

Linux（32ビット），Linux（IPF）の場合

ファイルディスクリプタ数 ＝

　( 50 ＋ A×B ＋ C ＋ 11×C×D ＋ 8×E ＋ (F ＋ I)×G ) × 1.2

Solaris，AIX，HP-UX（IPF）の場合

ファイルディスクリプタ数 ＝

　( 50 ＋ A×B ＋ C ＋ 3×C×D ＋ 5×E ＋ (F ＋ I)×G ) × 1.2

A：Listenディレクティブ指定数

B：ホストに割り当てられたIPアドレスの数

C：CustomLog，ErrorLog，HWSRequestLog，TransferLogディレクティブ指定の総数

D：パイプを指定する場合は1，指定しない場合は0

E：同時実行CGI数（MaxClients指定値）

F：SSLを使用する場合は3，使用しない場合は2

G：同時実行リクエスト数（MaxClients指定値）

I：リバースプロキシを使用する場合は1，使用しない場合は0

なお，CGIプログラム内およびHitachi Web Serverに同梱されていない外部モジュール内で使用するファイルディスクリプタの数は含みません。

システムパラメタの例を次に示します。なお，OSのシステムパラメタの種別およびその内容は，使用しているOSまたはカーネルのバージョンごとに異なります。システムパラメタの内容および設定方法の詳細については，ご使用のOSのマニュアルを参照してください。

Linux（32ビット），Linux（IPF）の場合（括弧内は設定ファイル例）

システム全体の最大ファイル数: fs.file-max（/etc/sysctl.conf）

Solarisの場合

Solarisでは，一つのプロセスがオープンできるファイル記述子（ファイルディスクリプタ）数を設定します。

一つのプロセスがオープンできるファイル記述子数の「弱い」限度：rlim_fd_cur
rlim_fd_curには，50以上を設定してください。

一つのプロセスがオープンできるファイル記述子の「強い」限度：rlim_fd_max
rlim_fd_maxには，rlim_fd_cur指定値以上を設定してください。

AIXの場合

AIXでは，一つのプロセスがオープンできるファイルディスクリプタ数を設定します。

ユーザ・プロセスが一度にオープンさせることができるファイル・ディスクリプタの数のソフト制限：nofiles
nofilesには，50以上を設定してください。

ユーザ・プロセスが一度にオープンさせることができるファイル・ディスクリプタの数のハード制限：nofiles_hard
nofiles_hardには，nofiles指定値以上を設定してください。

AIX，HP-UX（IPF）の場合

システム全体の最大ファイル数：nfiles

プロセスごとのファイル記述子の論理的最大数の初期値：maxfiles
maxfilesには，50以上を設定してください。

プロセスごとのファイル記述子の物理的最大数：maxfiles_lim
maxfiles_limには，maxfiles指定値以上を設定してください。

2.4　起動と停止

Hitachi Web Serverの起動および停止方法について説明します。Hitachi Web Serverはhttpsdctlユティリティでテスト，起動，停止および再起動します。デフォルト以外のhttpsd.confファイル名を指定する場合またはサーバのルートディレクトリやhttpsd.confファイルを起動時に指定する場合は，httpsdで起動します。

＜この節の構成＞

2.4.1　Hitachi Web Serverを起動，停止する（httpsdctlユティリティ）

2.4.2　Hitachi Web Serverを起動する（httpsd）

2.4.3　一般ユーザアカウントによる運用

2.4.1　Hitachi Web Serverを起動，停止する（httpsdctlユティリティ）

Hitachi Web Serverの起動および停止をするhttpsdctlユティリティについて説明します。

＜この項の構成＞

(1)　形式

(2)　オプション

(3)　起動確認方法

(4)　使用例

(5)　注意事項

(1)　形式

/opt/hitachi/httpsd/sbin/httpsdctl ｛start｜stop｜restart｜graceful｜gracefulstop｜configtest｜help｝

(2)　オプション

start
Hitachi Web Serverを起動します。暗号化した秘密鍵を使って，SSLを利用する場合は，起動時に，秘密鍵のパスワードの入力要求があります。

stop
Hitachi Web Serverを停止します。

restart
Hitachi Web Serverを再起動します。実行中のサーバプロセスは，直ちに停止します。すべてのサーバプロセス終了後に再起動します。再起動時には，MaxClientsディレクティブ指定値の変更は反映されないで，前回の値が引き継がれます。Listenディレクティブ指定値およびSSL通信で使用する秘密鍵の設定（SSLCertificateKeyFileディレクティブ）を変更した場合は，いったんHitachi Web Serverを停止してから，起動し直してください。

graceful
Hitachi Web Serverを再起動します。実行中のサーバプロセスは，実行終了後に停止します。サーバプロセスは，随時，新しいコンフィグファイルに基づいて起動します。再起動時には，MaxClientsディレクティブ指定値の変更は反映されないで，前回の値が引き継がれます。Listenディレクティブ指定値およびSSL通信で使用する秘密鍵の設定（SSLCertificateKeyFileディレクティブ）を変更した場合は，いったんHitachi Web Serverを停止してから，起動し直してください。

gracefulstop
Hitachi Web Serverを停止します。実行中のサーバプロセスは，実行終了後に停止します。実行が終了しない場合は，HWSGracefulStopTimeoutディレクティブに指定した待ち時間が経過すると終了します。

configtest
コンフィグファイルの文法チェックをします。文法エラーがあると，画面にエラーメッセージを表示します。このオプションを指定した場合は，Hitachi Web Serverは起動しません。

help
httpsdctlのヘルプを表示させます。

(3)　起動確認方法

Hitachi Web Serverの起動を確認するには，制御プロセスを確認してください。詳細は，「4.1.3　稼働管理について」の「(3)　制御プロセスの監視」を参照してください。

(4)　使用例

Hitachi Web Serverを起動します。暗号化した秘密鍵を使用している場合はパスワードを入力します。

/opt/hitachi/httpsd/sbin/httpsdctl start
Enter PEM pass phrase:

(5)　注意事項

httpsdctl stopおよびgracefulstopによるWebサーバ停止操作実行時に，Hitachi Web Serverのコンフィグファイルの定義が不正な場合，httpsdctlの実行はエラーとなりWebサーバは停止しません。

httpsdctl restartおよびgracefulによるWebサーバ再起動実行時に，Hitachi Web Serverのコンフィグファイルの定義が不正な場合，httpsdctlの実行はエラーとなりWebサーバは停止しないで再起動しません。

httpsdctlユティリティによるHitachi Web Serverの起動，再起動および停止操作を実行した場合，起動完了および停止完了を示すメッセージは出力されません。

2.4.2　Hitachi Web Serverを起動する（httpsd）

Hitachi Web Serverはhttpsdでも起動できます。普通は，この方法では起動しません。デフォルト以外のhttpsd.confファイル名称を指定する場合またはサーバのルートディレクトリやhttpsd.confファイルを指定して起動する場合に，この方法を使用します。

＜この項の構成＞

(1)　形式

(2)　オプション

(3)　再起動方法

(4)　終了方法

(5)　起動確認方法

(1)　形式

/opt/hitachi/httpsd/sbin/httpsd〔〔-d ディレクトリ〕〔-f ファイル名〕〔-R ディレクトリ〕｜-v｜-t〕〔-D HWS_OPTION_HWS2〕

(2)　オプション

-d ディレクトリ
ServerRootディレクティブがコンフィグファイルに指定されていない場合の，デフォルト値を指定できます。

-f ファイル名
httpsd.confファイルを指定できます。絶対パスまたはServerRootディレクティブの指定値からの相対パスで指定します。

-R ディレクトリ
DSO実行ライブラリが格納されているディレクトリを絶対パスで指定します。

-v
バージョン情報を表示させます。このオプションを指定した場合は，Hitachi Web Serverは起動しません。

-t
コンフィグファイルの文法チェックをします。文法エラーがあると，画面にエラーメッセージを表示します。このオプションを指定した場合は，Hitachi Web Serverは起動しません。

-D HWS_OPTION_HWS2
Red Hat Enterprise Linux 5 Advanced Platform (AMD/Intel64)，Red Hat Enterprise Linux 5 (AMD/Intel64)においてSSL機能を使用にする場合に指定します。他のプラットフォームや，SSL機能を使用しない場合は，指定しないでください。

(3)　再起動方法

killコマンドでHitachi Web Serverを再起動できます。

kill ｛-HUP｜-USR1｝ `cat PidFileディレクティブ指定値`

-HUP
httpsdctlユティリティのrestartに相当する再起動をします。

-USR1
httpsdctlユティリティのgracefulに相当する再起動をします。

PidFileディレクティブ指定値
PidFileディレクティブで指定した値(ファイル名)を指定します。

(4)　終了方法

httpsdでHitachi Web Serverを起動した場合，次に示すコマンドを実行してプロセスを終了し，Hitachi Web Serverを停止してください。

kill ｛-TERM｜-USR2｝ `cat PidFileディレクティブ指定値`

-TERM
httpsdctlユティリティのstopに相当する停止をします。

-USR2
httpsdctlユティリティのgracefulstopに相当する停止をします。

(5)　起動確認方法

Hitachi Web Serverの起動を確認するには，制御プロセスを確認してください。詳細は，「4.1.3　稼働管理について」の「(3)　制御プロセスの監視」を参照してください。

2.4.3　一般ユーザアカウントによる運用

Hitachi Web Server は，通常の運用方法として，スーパーユーザによる運用を想定しています。

インストールした状態では，スーパーユーザによる運用ができるように各種設定が施されています。

このことから，スーパーユーザ以外のユーザ（以下，一般ユーザと呼びます）で運用する場合，Hitachi Web Serverの設定ファイルや関連するディレクトリ・ファイルの各種設定内容の変更が必要になります。また，Hitachi Web Serverの一部の機能については，一般ユーザによる運用は制限事項になるものがあります。

ここでは，スーパーユーザと一般ユーザの違い，一般ユーザによるHitachi Web Serverを運用するための環境構築方法，制限事項について説明します。

＜この項の構成＞

(1)　各プロセスの権限

(2)　UNIXにおけるスーパーユーザと一般ユーザの違い

(3)　リソースの所有者・グループの変更

(4)　httpsdの起動

(5)　制限事項

(1)　各プロセスの権限

スーパーユーザまたは一般ユーザで運用した場合，Hitachi Web Serverの各プロセスの権限を次に示します。

表2-2　各プロセスの権限

項番 | プロセス | スーパーユーザによる運用 | 一般ユーザによる運用
1 | 制御プロセス | スーパーユーザ | 一般ユーザ
2 | rotatelogs，rotatelogs2プロセス
3 | サーバプロセス | User，Groupディレクティブで指定したユーザ，グループ
4 | CGIプロセス
5 | gcacheサーバ

(2)　UNIXにおけるスーパーユーザと一般ユーザの違い

UNIXにおいて，スーパーユーザは一般ユーザと異なり，システムの管理者権限を持つユーザになります。UNIXにおけるスーパーユーザと一般ユーザの権限の差異（一例）を次に示します。

表2-3　UNIXにおけるスーパーユーザと一般ユーザの権限の差異（一例）

項番 | 項目 | スーパーユーザ | 一般ユーザ
1 | 別のユーザが起動したプロセスの停止 | 可 | 不可
2 | well-knownポート（1023番以下のポート）を開く | 可 | 不可
3 | 明示的に読み取り/書き込み権限が与えられていないファイルへのアクセス | 可 | 不可

一般ユーザでHitachi Web Serverを運用する場合，Hitachi Web Serverの制御プロセスの権限が一般ユーザ権限で動作するため，このときの挙動はスーパーユーザでHitachi Web Serverを運用した場合と異なる場合があります。したがって，一般ユーザでHitachi Web Serverを運用する場合は，スーパーユーザとの権限の差異を意識しながら環境を構築する必要があります。

(3)　リソースの所有者・グループの変更

Hitachi Web Serverのコンテンツ，設定ファイル類，およびHitachi Web Serverが動作する際にアクセスする各種ファイル・ディレクトリについて，UNIX上での所有者・グループを変更します。

最低限，インストールディレクトリ（/opt/hitachi/httpsdディレクトリ）以下のリソースに対しては変更が必要です。

将来，リソースの所有者・グループを元に戻したい場合は，変更作業の前に現在のリソースに対して，所有者とグループを保存しておきます。

保存作業は，スーパーユーザで実行します。保存例を以下に示します。

（例）

/opt/hitachi/httpsdディレクトリ以下のリソースに対して，所有者とグループの一覧を作成する。

ls laR /opt/hitachi/httpsd

変更作業は，スーパーユーザで実行します。変更例を以下に示します。

（例）

/opt/hitachi/httpsdディレクトリ以下のリソースに対して，所有者(hwsuser)とグループ(hwsgroup)を変更する。

chown R hwsuser:hwsgroup /opt/hitachi/httpsd

(4)　httpsdの起動

Hitachi Web Serverを運用する一般ユーザを使用して，httpsdを起動してください。

httpsdの停止または再起動をする場合は，起動時と同じ一般ユーザで操作してください。

(5)　制限事項

以下に示すユティリティは，一般ユーザによる運用に対応していません。スーパーユーザで運用してください。

crldownloadユティリティ

htpasswdユティリティ

hwscollectユティリティ

hwsservereditユティリティ

logresolveユティリティ

sslccertユティリティ

sslckeyユティリティ

sslpasswdユティリティ

一般ユーザによる運用では以下に示すディレクティブは指定できません。指定があっても無視します。

Groupディレクティブ

Userディレクティブ

一般ユーザによる運用では，well-knownポート（1023番以下のポート）を開くことができません。

以下のディレクティブにポート番号を指定する際は注意してください。

Listenディレクティブ

Portディレクティブ

SSLCacheServerPort ディレクティブ

3.　運用の準備と起動，停止（Windows版）

この章では，Hitachi Web Serverを運用する前に，知っておいていただきたいことおよび起動と停止について説明します。

＜この章の構成＞

3.1　Hitachi Web Serverを運用するためのシステム構成

3.2　インストールとアンインストール

3.3　運用環境の定義ファイル

3.4　起動と停止

3.1　Hitachi Web Serverを運用するためのシステム構成

Hitachi Web Serverを運用するために必要なシステム構成について説明します。

＜この節の構成＞

(1)　ハードウェア構成

(2)　ソフトウェア構成

(3)　Windows 7，Windows Vista，Windows Server 2008 R2，およびWindows Server 2008使用時の注意事項

(1)　ハードウェア構成

(a)　サーバ

Hitachi Web Serverの適用機種や，使用するメモリ所要量およびディスク占有量については，リリースノートを参照してください。

(b)　クライアント

Webブラウザが動作できる端末

(c)　ネットワーク関連

イーサネットなどのネットワーク（必須）

ドメインネームシステムサーバ（任意）

ロードバランサ（任意）

SSLアクセラレータ（任意）

ファイアウォール（任意）

(2)　ソフトウェア構成

(a)　サーバ

ディレクトリサービス（LDAPサーバ）を利用してユーザ認証およびアクセス保護をする場合に，必要なソフトウェア。

ユーザを一元管理するためのディレクトリサービスが利用できるソフトウェア
P-1B44-A121 Hitachi Directory Server Version 2　02-01以降

日立ディレクトリサービスの導入方法については，マニュアル「日立ディレクトリサービス　導入編」を参照してください。

なお，同じLDAP対応のディレクトリサービスとして「Sun Java(TM) System Directory Server」も使用できます。

(3)　Windows 7，Windows Vista，Windows Server 2008 R2，およびWindows Server 2008使用時の注意事項

(a)　コマンド実行時の注意事項

Windows 7，Windows Vista，Windows Server 2008 R2，およびWindows Server 2008使用時の注意事項Windows VistaおよびWindows Server 2008上でHitachi Web Serverを動作させる場合，このマニュアルに記載されているコマンドはすべて管理者権限で実行する必要があります。Hitachi Web Serverのコマンドは，「管理者：コマンドプロンプト」で実行してください。「管理者：コマンドプロンプト」は，Windows 7，Windows Vista，Windows Server 2008 R2，およびWindows Server 2008で提供されている機能を使用して起動してください。

(b)　設定ファイル更新時の注意事項

Windows 7，Windows Vista，Windows Server 2008 R2，およびWindows Server 2008上でHitachi Web Serverの設定ファイルを更新する場合は，更新するプログラムを必ず管理者権限で実行してください。

3.2　インストールとアンインストール

Hitachi Web Serverのインストールは，製品として提供されているCD-ROMに格納されている日立総合インストーラを使用する方法と，JP1/NETM/DMおよびGroupmax Remote Installationを利用してリモートでする方法があります。JP1/NETM/DMについては，JP1/NETM/DMのシステム運用のマニュアルを参照してください。

インストールおよびアンインストールは，管理者権限を持つユーザ以外では実行できません。インストールおよびアンインストールするマシンに管理者権限を持つユーザでログインしてください。

＜この節の構成＞

3.2.1　インストール

3.2.2　アンインストール

3.2.1　インストール

日立総合インストーラによるインストール手順を以下に示します。

＜この項の構成＞

(1)　インストールする前に

(2)　インストール

(1)　インストールする前に

インストールを始める前に，次の内容を確認してください。

必要なディスクの空き容量が確保されているかを，確認してください。

動作しているアプリケーションをすべて終了させてください。

(2)　インストール

日立総合インストーラ(HCD_INST.EXE)を起動し，インストーラの指示に従ってインストールを進めてください。インストール時には次の項目を設定します。

ユーザ情報
ユーザ名，会社名を入力します。システムから取得した値をデフォルト値として表示します。

インストール先ディレクトリ
デフォルトでは，OSインストールドライブ¥Program Files¥Hitachi¥httpsdです。uCosminexus Application Serverとしてインストールしたときのデフォルトは，OSインストールドライブ¥Program Files¥Hitachi¥Cosminexus¥httpsdです。なお，インストール先ディレクトリ名として，多バイト文字は使用できません。

スタートメニューのプログラム名
デフォルトは"Hitachi Web Server"です。

3.2.2　アンインストール

アンインストール方法について説明します。

＜この項の構成＞

(1)　プログラムの終了

(2)　 サービスのアンインストール

(3)　Hitachi Web Server の削除

(4)　ユーザファイルの削除

(1)　プログラムの終了

Hitachi Web Serverを必ず停止してから，アンインストールを実行してください。

(2)　 サービスのアンインストール

httpsdコマンドで登録したサービスがある場合，それらを削除してからアンインストールを実行してください。

(3)　Hitachi Web Server の削除

［コントロールパネル］-［アプリケーションの追加と削除］から「Hitachi Web Server」を削除してください。uCosminexus Application Serverとしてインストールした場合のアンインストール方法については，uCosminexus Application Serverのマニュアルを参照してください。

(4)　ユーザファイルの削除

インストール後に作成されるファイル，コンフィグファイルは削除されません。また，その他ファイルやディレクトリが削除されないで残る場合があります。これらを削除する場合，エクスプローラを使用してください。

3.3　運用環境の定義ファイル

Hitachi Web Serverの動作を定義するファイルについて説明します。

＜この節の構成＞

(1)　ディレクトリ構成

(2)　コンフィグファイル

(1)　ディレクトリ構成

Hitachi Web Serverをインストールしたときの，ディレクトリ構成を次に示します。この構成は変更しないでください。

図3-1　ディレクトリ構成

(2)　コンフィグファイル

Hitachi Web Serverの動作環境を定義するファイルをコンフィグファイルといいます。なお，コンフィグファイルのコメント行以外に，マルチバイト文字およびUnicodeの補助文字は指定できません。

Hitachi Web Serverの動作を定義するファイルには，httpsd.confファイル，mime.typesファイルおよびアクセスコントロールファイル（.htaccess）の三つがあります。SSLCユティリティの動作を定義するファイルは，sslc.cnfファイルです。各ファイルの用途を次に示します。

表3-1　コンフィグファイルの用途

ファイル名
用途
標準提供

httpsd.conf
Hitachi Web Serverの動作環境を各種ディレクティブで定義します。システム管理者が管理します。
○

mime.types
コンテンツのファイル拡張子とコンテントタイプ（MIMEタイプ）の関連づけを定義します。システム管理者が管理します。
○

.htaccess
アクセス制御を定義するアクセスコントロールファイル。必要に応じてエンドユーザがアクセス制御するディレクトリ下に作成します（デフォルトファイル名は.htaccess）。
×

sslc.cnf
SSLのユティリティについての情報を定義します。システム管理者が管理します。sslcユティリティだけで使用できます。
認証局（CA）に提出するCSRを作成する場合，ユティリティで使用する値を指定しておくと，効率良くCSRを作成できます。
○

Includeディレクティブで指定したファイル
Hitachi Web Serverの動作環境を各種ディレクティブで定義します。システム管理者が管理します。
×

（凡例）

○：標準提供する。

×：標準提供しない。

コンフィグファイルの関連を次に示します。

図3-2　コンフィグファイルの関連

3.4　起動と停止

Hitachi Web Serverの起動および停止方法について説明します。

＜この節の構成＞

3.4.1　Hitachi Web Serverの起動，停止

3.4.2　一般ユーザアカウントによる運用

3.4.1　Hitachi Web Serverの起動，停止

Hitachi Web Serverをインストールすると，"Hitachi Web Server"という名称のサービスとしてシステムに登録されます。このとき，手動起動するサービスとして登録されるため，システム起動時には自動起動されません。

Hitachi Web Serverを起動，停止および再起動するには，次の方法があります。

スタートメニューからサービスとしての起動，停止および再起動

コントロールパネルからサービスとしての起動，停止

コマンドプロンプトからの起動，停止および再起動

Hitachi Web Serverをサービスとして実行する場合のユーザアカウントは，インストール時点では"LocalSystem"です。Hitachi Web Serverは，CGIプログラム，API接続モジュールを含め，このユーザアカウントで実行されます。それ以外のユーザアカウントで実行したい場合は，「3.4.2　一般ユーザアカウントによる運用」を参照してください。

＜この項の構成＞

(1)　スタートメニューからサービスとしての起動，停止および再起動

(2)　コントロールパネルからサービスとしての起動，停止

(3)　コマンドプロンプトからの起動，停止および再起動

(4)　ターミナルサービスを利用したリモートマシンからのHitachi Web Serverの操作

(5)　注意事項

(1)　スタートメニューからサービスとしての起動，停止および再起動

［スタート］-［プログラム］-［Hitachi Web Server］メニューのショートカットから，起動する場合は「サーバ起動」，停止する場合は「サーバ停止」，再起動する場合は「サーバ再起動」を選択して実行できます。

なお，uCosminexus Application Serverとしてインストールした場合は，［スタート］-［プログラム］-［Cosminexus］-［Hitachi Web Server］メニューのショートカットになります。

(2)　コントロールパネルからサービスとしての起動，停止

コントロールパネルからサービス画面を表示し，次に「Hitachi Web Server」を選択して，起動する場合は「開始(S)」ボタン，停止する場合は「停止(T)」ボタンを押します。サービス画面からの再起動はできません。

(3)　コマンドプロンプトからの起動，停止および再起動

コマンドプロンプトからhttpsdコマンドを入力します。httpsdコマンドについて次に説明します。

(a)　形式

"インストール先ディレクトリ¥httpsd.exe" 〔〔-d ディレクトリ〕〔-f ファイル名〕〔〔-n "サービス名"〕 〔-k ｛start | stop | restart | gracefulstop | install | uninstall｝〕〕| -v | -t 〕

(b)　オプション

-d ディレクトリ
ServerRootディレクティブがコンフィグファイルに指定されていない場合の，デフォルト値を設定できます。

-f ファイル名
httpsd.confファイルを指定できます。絶対パスまたはServerRootディレクティブの指定値からの相対パスで指定します。

-n "サービス名"
Hitachi Web Serverのサービス名を指定します。サービス名は，"（引用符）で囲んで指定してください。サービス名に指定できる文字数の上限値は，128文字です。サービス名は，ASCIIコードで指定してください。また，次に示す文字は指定できません。
'¥'，'/'，'"'，制御コード，マルチバイト文字
サービス名のデフォルト値は「Hitachi Web Server」です。
本オプションを指定する場合は，-k オプションも合わせて指定する必要があります。

-k start
Hitachi Web Serverを起動します。-n "サービス名"が指定されている場合は，該当するサービスを起動します。

-k stop
Hitachi Web Serverを停止します。-n "サービス名"が指定されている場合は，該当するサービスを停止します。

-k restart
Hitachi Web Serverを再起動します。

-k gracefulstop
Hitachi Web Serverを停止します。実行中のサーバスレッドは，実行終了後に停止します。実行が終了しない場合は，HWSGracefulStopTimeoutディレクティブに指定した待ち時間が経過すると終了します。

-k install
Hitachi Web Serverをサービスとして登録します。-n "サービス名"が指定されている場合は，該当するサービスを登録します。サービス登録時，スタートアップの種類は「手動」になります。サービス起動するHitachi Web ServerのServerRootディレクティブのデフォルト値は，このコマンド実行時のhttpsd.exeのパスまたは-dオプションで指定した値になります。

-k uninstall
Hitachi Web Serverをサービスから削除します。-n "サービス名"が指定されている場合は，該当するサービスを削除します。削除しようとしたサービスが起動中の場合は，サービスを停止してからサービスを削除します。

-v
バージョン情報を表示します。このオプションを指定した場合は，Hitachi Web Serverは起動しません。

-t
コンフィグファイルの文法をチェックします。文法エラーがあると，画面にエラーメッセージを表示します。このオプションを指定した場合は，Hitachi Web Serverは起動しません。

(4)　ターミナルサービスを利用したリモートマシンからのHitachi Web Serverの操作

Hitachi Web Serverでは，Windows 7，Widnows Vista，Windows XP Professional，Windows Server 2008 R2，Windows Server 2008，Windows Server 2003 R2，およびWindows Server 2003のターミナルサービス機能を利用して，サーバマシン上にあるHitachi Web Serverの起動・停止，ユティリティの実行などの操作をリモートマシンから実行できます。ただし，サーバマシンがWindows Server 2003の場合，クライアントプログラムはサーバマシンのコンソールセション（セション0）に接続している必要があります。

ターミナルサービスの操作については，OSのマニュアルを参照してください。

(5)　注意事項

スタートメニューまたはコントロールパネルからの停止，コマンドプロンプトからの-k stopオプションによる停止時に，サーバスレッドが実行中の場合には，実行終了を最大30秒間待った後に停止します。

3.4.2　一般ユーザアカウントによる運用

Hitachi Web Serverをサービスとして実行する場合のユーザアカウントは，インストール時点では"LocalSystem"です。Hitachi Web Serverは，CGIプログラム，API接続モジュールを含め，このユーザアカウントで実行されます。

ここでは，さまざまな権限が与えられたグループには所属しないで，Webサーバの動作に必要な権限だけが設定された一般ユーザアカウントで運用する方法について説明します。

＜この項の構成＞

(1)　一般ユーザアカウントの作成

(2)　ユーザ権利の割り当て

(3)　サービスのログオンアカウントの変更

(4)　ディレクトリおよびファイルのアクセス権限の設定

(5)　サービスの起動

(6)　注意事項

(1)　一般ユーザアカウントの作成

Hitachi Web Serverサービスを起動する一般ユーザアカウントを作成する方法について説明します。

一般ユーザアカウントの作成方法

コントロールパネルから［管理ツール］－［コンピュータの管理］を開きます。

［コンピュータの管理］－［システムツール］－［ローカルユーザーとグループ］－［ユーザー］を開きます。

操作メニューから［新しいユーザー］を選択し，必要事項を入力します。
パスワードは必ず入力してください。

新規作成した一般ユーザアカウントは，デフォルトではグループの設定が付加されています。次の手順に従って，グループの設定を削除してください。

グループの設定の削除方法

コントロールパネルから［管理ツール］－［コンピュータの管理］を開きます。

［コンピュータの管理］－［システムツール］－［ローカルユーザーとグループ］－［ユーザー］を開きます。

新規作成したユーザの［プロパティ］を開き，［所属するグループ］タブを表示します。

登録されているグループを削除します。

(2)　ユーザ権利の割り当て

新規作成した一般ユーザアカウントに，ユーザ権利を割り当てる方法について説明します。

ユーザ権利の割り当て方法

コントロールパネルから［管理ツール］－［ローカルセキュリティポリシー］を開きます。

［セキュリティの設定］－［ローカルポリシー］－［ユーザー権利の割り当て］を開きます。

［サービスとしてログオン］をダブルクリックして開きます。

「ユーザーまたはグループの追加」ボタンで該当するユーザアカウントを追加します。

［サービスとしてログオン］の権限を明示的に設定しない場合でも，サービスのログオンアカウントを変更した一般ユーザアカウントには，権限が自動的に付加されます。サービスのログオンアカウントの変更については，「(3)　サービスのログオンアカウントの変更」を参照してください。

(3)　サービスのログオンアカウントの変更

Hitachi Web Serverサービスのログオンアカウントを一般ユーザアカウントに変更する方法について説明します。

サービスのログオンアカウントの変更方法

コントロールパネルから［管理ツール］－［サービス］を開きます。

Hitachi Web Serverの［プロパティ］－［ログオン］タブを開きます。

「アカウント」ラジオボタンを選択し，一般ユーザアカウントを設定します。このとき，「(1)　一般ユーザアカウントの作成」で設定したパスワードを正しく入力してください。また，パスワードを無期限にするかどうかを指定してください。

(4)　ディレクトリおよびファイルのアクセス権限の設定

Hitachi Web Serverがアクセスするディレクトリおよびファイルのアクセス権限に，作成した一般ユーザアカウントのフルコントロール権限を追加してください。

(5)　サービスの起動

サービス起動権限を持つユーザアカウントでHitachi Web Serverサービスを起動してください。一般ユーザアカウントには，サービス起動権限はありません。

(6)　注意事項

hwstraceinfoユティリティを使用する場合は，「(3)　サービスのログオンアカウントの変更」で指定した一般ユーザアカウントで実行してください。Administrators権限を持つユーザアカウントでは実行できません。なお，Windows 7，Windows Vista，Windows Server 2008 R2およびWindows Server 2008の場合は，hwstraceinfo.exe.manifestファイルを一時的に別名で保存してから，「(3)　サービスのログオンアカウントの変更」で指定した一般ユーザアカウントで実行してください。hwstraceinfoユティリティを実行したあと，hwstraceinfo.exe.manifestファイル名を元に戻してください。

4.　システムの運用方法

この章では，Webサーバ環境を運用に合わせて設定するディレクティブおよびユティリティの使用方法について説明します。

＜この章の構成＞

4.1　Hitachi Web Serverの処理とディレクティブとの関係

4.2　ログを採取する

4.3　サーバマシンのバーチャル化（バーチャルホスト）

4.4　WebサーバでのCGIプログラムの実行

4.5　ユーザ認証とアクセス制御

4.6　ファイル名一覧の表示

4.7　リバースプロキシの設定

4.8　稼働状況の表示（ステータス情報表示）

4.9　流量制限機能

4.10　ヘッダカスタマイズ機能

4.11　有効期限設定機能

4.12　静的コンテンツキャッシュ機能

4.13　複数のWebサーバ環境の生成（hwsservereditユティリティ）

4.14　イメージマップ

4.15　IPv6による通信

4.1　Hitachi Web Serverの処理とディレクティブとの関係

Hitachi Web Serverの処理とディレクティブとの関係について，説明します。

＜この節の構成＞

4.1.1　Hitachi Web Serverのプロセス構造（UNIX版）

4.1.2　Hitachi Web Serverのプロセス構造（Windows版）

4.1.3　稼働管理について

4.1.1　Hitachi Web Serverのプロセス構造（UNIX版）

＜この項の構成＞

(1)　プロセス構造

(2)　プロセス数の遷移

(1)　プロセス構造

Hitachi Web Serverのプロセス構造を次に示します。

図4-1　Hitachi Web Serverのプロセス構造（UNIX版）

Hitachi Web Serverを起動すると，制御プロセスが起動します。制御プロセスは，リクエストを処理するサーバプロセスを起動し，その稼働を監視します。制御プロセスは，最初にStartServersディレクティブで指定した個数のサーバプロセスを生成します。その後のサーバプロセス数は，MinSpareServers，MaxSpareServersディレクティブ指定値に基づいて増減していきます。サーバプロセス数の最大値は，MaxClientsディレクティブで指定します。サーバプロセス数の増減は，制御プロセスが管理します。この処理をメンテナンスと呼びます。

クライアントからのTCP接続は，Listenディレクティブで指定したIPアドレスとポートからOSが受信し，OS内のListenキューに保留します。Listenキューのサイズは，ListenBacklogディレクティブで指定できます。Listenキューに格納できなかったTCP接続は確立されません。Listenキューに格納されたTCP接続は，サーバプロセスの一つが取り出して処理を行います。

一つのサーバプロセスは，一つのTCP接続を取得して処理します。また，一つのサーバプロセスは，MaxRequestsPerChildディレクティブに指定した個数のHTTPリクエストを処理すると終了します。このときは，制御プロセスが新たなサーバプロセスを生成して処理を続行します。

制御プロセスは，Hitachi Web Serverを起動したユーザ，グループ権限で動作します。サーバプロセスは，User，Groupディレクティブで指定したユーザ，グループ権限で動作します。制御プロセスおよびサーバプロセスともに，プロセス名（実行プログラム名）はhttpsdです。制御プロセスのプロセスIDは，PidFileディレクティブに指定したファイルに出力します。

(2)　プロセス数の遷移

メンテナンスは，サーバの負荷集中を避けるために，1秒ごとに2ｎ－１(nは連続メンテナンス実行回数,6以上はn=6)個ずつサーバプロセスを生成します。サーバプロセスは，MinSpareServersディレクティブで指定した数の待ちプロセスができるかまたは全プロセス数がMaxClientsディレクティブで指定した数になるまで生成されます。1回のメンテナンスで8個以上のサーバプロセスを生成した場合は，エラーログ（infoレベル）にその旨出力します。

リクエストの処理が終了すると，サーバプロセスは待ち状態になります。待ち状態のプロセスが増加すると，メンテナンスのタイミングで，MaxSpareServersディレクティブで指定した数だけ残して，サーバプロセスを終了させます。

(a)　留意点

StartServersディレクティブには，Webサーバの起動・再起動直後から大量のリクエストを処理しなければならないような場合は，大きな値を指定してください。

Webサーバを起動した後のプロセス数は，MaxSpareServersおよびMinSpareServersディレクティブによって制御されるため，StartServersディレクティブ指定値は意味がありません（HWSKeepStartServersディレクティブでOnを指定した場合を除く）。MinSpareServersおよびMaxSpareServersディレクティブは，急にリクエストが多発しても対応できるように待ち状態のプロセスを準備するために指定します。プロセスのメンテナンスでエラーログ（infoレベル）が頻繁に出力されるような場合には，待ちプロセス数を増やすよう調整してください。

より多くのサーバプロセスを常時待ち状態にしておくと，より多くのクライアントからの同時接続要求を受け付けられます。しかし，それだけサーバリソースを消費するために注意が必要です。

CGIプログラムの負荷が高くCPUを使い尽くしているような場合は，MaxClientsディレクティブの値を小さくしリクエストを受け付けないようにする必要があります。MaxClientsディレクティブで指定した数のプロセスがすべて処理中の場合は，ListenBacklogディレクティブの指定によって，キューに保留されます。

一つのサーバプロセスは，MaxRequestsPerChildディレクティブで指定された回数のリクエスト処理を実行した後，終了します。ただし，MaxRequestsPerChildディレクティブに０を指定した場合，リクエスト処理の回数でサーバプロセスが終了することはありません。MaxRequestsPerChildディレクティブの指定は，エンドユーザが作成したアプリケーションプログラムなどでメモリリークを起こすおそれがある場合に有効です。

サーバプロセスに異常終了シグナルが送信された場合（API接続モジュールで障害になった場合も含む），プロセスは，エラーログ（noticeレベル）にそのことを出力します。noticeレベルのエラーログは，LogLevelディレクティブの指定に関係なく出力されます。

StartServersディレクティブで指定した数のサーバプロセスを，MaxSpareServers，MinSpareServersディレクティブの指定に関係なく，常に起動しておきたい場合，HWSKeepStartServersディレクティブでOnを指定してください。サーバプロセス数がStartServersディレクティブで指定した数を下回った場合に，新しいプロセスを生成して回復します。

Hitachi Web Serverが停止するとPidFileディレクティブに指定したファイルは削除されます。しかし，Hitachi Web Serverを停止しないでマシンをシャットダウンした場合など，Hitachi Web Serverが外部から強制的に終了させられたときには，PidFileディレクティブに指定したファイルは削除されないで残るため，注意してください。

(b)　プロセス数の遷移例

HWSKeepStartServersの指定がOffの場合の，プロセス数の遷移例を図4-2に示します。

ディレクティブの指定値（HWSKeepStartServersの指定がOffの場合）

StartServers 8
MaxSpareServers 10
MinSpareServers 5
MaxClients 15
HWSKeepStartServers Off
MaxRequestsPerChild 10000
KeepAlive Off

図4-2　プロセス数の遷移例（HWSKeepStartServersの指定がOffの場合）

HWSKeepStartServersの指定がOnの場合の，プロセス数の遷移例を図4-3に示します。

ディレクティブの指定値（HWSKeepStartServersの指定がOnの場合）

StartServers 8
MaxSpareServers 10
MinSpareServers 5
MaxClients 15
HWSKeepStartServers On
MaxRequestsPerChild 10000
KeepAlive Off

図4-3　プロセス数の遷移例（HWSKeepStartServersの指定がOnの場合）

4.1.2　Hitachi Web Serverのプロセス構造（Windows版）

Hitachi Web Serverのプロセス構造を次に示します。

図4-4　Hitachi Web Serverのプロセス構造（Windows版）

Hitachi Web Serverを起動すると，制御プロセスが起動します。制御プロセスは，サーバプロセスを起動しその稼働を監視します。サーバプロセスが起動すると同時にメインスレッドが起動します。メインスレッドは，リクエストを受信するアクセプトスレッドを一つと，リクエストを処理するサーバスレッドをThreadsPerChildディレクティブで指定した個数だけ起動します。

クライアントからのTCP接続は，Listenディレクティブで指定したIPアドレスとポートからOSが受信し，OS内のListenキューに保留します。ListenキューのサイズはListenBacklogディレクティブで指定できます。Listenキューに格納できなかったTCP接続は確立されません。アクセプトスレッドはListenキューからTCP接続を取り出し，HWSMaxQueueSizeディレクティブで指定した大きさのリクエストキューに登録します。それをサーバスレッドの一つが取り出してHTTPリクエストを受信し処理します。HWSMaxQueueSizeディレクティブ指定値を超えたためリクエストキューに格納できなかったTCP接続は，アクセプトスレッドによって閉じられます。

サーバスレッド数が増減することはありません。

4.1.3　稼働管理について

サーバプロセス（Windows版の場合はサーバスレッド）の稼働状況を管理する上で必要となる，持続型接続の動作原理とタイマ監視機能について，説明します。

＜この項の構成＞

(1)　持続型接続（KeepAlive）

(2)　タイマ監視

(3)　制御プロセスの監視

(1)　持続型接続（KeepAlive）

持続型接続（KeepAlive）は，クライアントからのリクエストに対してレスポンスを返した後もTCPコネクションを切断しないで，同じクライアントからの次のリクエストを待つ機能です。

この機能は，KeepAliveディレクティブにOnを指定し，かつクライアント側が対応している場合に使用できます。TCPコネクションを切断しないため，クライアントが複数のリクエストを連続して送信する場合にはレスポンス時間を短縮できます。

次のリクエストを待つ間はサーバプロセスがクライアントに占有されますが，この待ち時間はKeepAliveTimeoutディレクティブで設定できます。また，1クライアントが持続型接続を利用して何回までリクエストを処理できるかをMaxKeepAliveRequestsディレクティブで設定します。

(2)　タイマ監視

次の場合，Timeoutディレクティブに設定された値によって，タイマ監視ができます。

クライアントからのリクエスト受信（コネクション確立後，HTTPプロトコルの受信）時

クライアントへのレスポンス送信時

CGIプログラムへのリクエスト送信時

CGIプログラムへのリクエスト送信後からレスポンス受信まで

CGIプログラムからのレスポンス受信時

リバースプロキシを使用している場合，Webサーバへのリクエスト送信後からレスポンス受信まで

リバースプロキシを使用している場合，Webサーバからのレスポンス受信時

Timeoutディレクティブに設定された値を過ぎてもレスポンスがない（タイムアウトになった）場合は，その旨エラーログ（infoレベル）に出力し，コネクションを切断します。

(3)　制御プロセスの監視

PidFileディレクティブで指定したファイルに出力されるIDのプロセスを監視すると，Hitachi Web Serverの制御プロセスを監視できます。監視するプロセス名（実行プログラム名）はWindows版の場合httpsd.exe，UNIX版の場合httpsdです。

制御プロセスを監視する際には，PidFileディレクティブで指定したファイルに格納されたIDのプロセスがHitachi Web Serverのプロセスであることを必ず確認してください。Hitachi Web Serverのプロセスであることを確認するには，プロセスの実行プログラム名が，Windows版の場合httpsd.exe，UNIX版の場合httpsdであることを確認してください。

4.2　ログを採取する

＜この節の構成＞

4.2.1　ログの種類

4.2.2　ログの採取方法

4.2.3　ログを分割する（rotatelogsユティリティ）

4.2.4　ログファイルをラップアラウンドさせて使用する（rotatelogs2ユティリティ）

4.2.5　ログファイルのIPアドレスをホスト名に変換する（logresolveユティリティ）

4.2.6　モジュールトレースの採取

4.2.7　リクエストトレースの採取

4.2.8　I/Oフィルタトレースの採取

4.2.9　内部トレースの採取（hwstraceinfoユティリティ）

4.2.10　保守情報収集機能（hwscollectユティリティ）

4.2.1　ログの種類

ログの種類を次に示します。

表4-1　ログの種類

ログの種類
指定するディレクティブ
機能

アクセスログ
TransferLog

デフォルトフォーマットのログを採取します。

rotatelogsユティリティまたはrotatelogs2ユティリティを使用して，定期的または定量的に分割できます。

LogFormatディレクティブでフォーマットを変更できます。

CustomLog

カスタマイズしたフォーマットでログを採取します。

rotatelogsユティリティまたはrotatelogs2ユティリティを使用して，定期的または定量的に分割できます。

LogFormatディレクティブで定義したフォーマットをCustomLogディレクティブに指定できます。

エラーログ
ErrorLog

エラー発生時のメッセージのログを採取します。

rotatelogsユティリティまたはrotatelogs2ユティリティを使用して，定期的または定量的に分割できます。

LogLevelディレクティブで，採取するログのレベルを指定できます。

HWSRequestLogディレクティブを指定していない場合に，モジュールトレースを採取できます。
モジュールトレースの詳細については「4.2.6　モジュールトレースの採取」を参照してください。

ScriptLog

CGIスクリプトのエラーログを採取します。

リクエストログ
HWSRequestLog

リクエストログを採取します。リクエストログとして，次のトレースを採取できます。
モジュールトレース
モジュールの各関数の実行時およびCGIプログラムの実行時に採取されるトレースです。モジュールトレースの詳細については「4.2.6　モジュールトレースの採取」を参照してください。
リクエストトレース
リクエスト処理開始時や完了時などで採取されるトレースです。リクエストトレースの詳細については「4.2.7　リクエストトレースの採取」を参照してください。
I/Oフィルタトレース
モジュールが実装している入出力フィルタ関数の実行時に採取されるトレースです。I/Oフィルタトレースの詳細については「4.2.8　I/Oフィルタトレースの採取」を参照してください。

rotatelogsユティリティまたはrotatelogs2ユティリティを使用して，定期的または定量的に分割できます。

プロセスIDログ
PidFile

制御プロセスIDのログを採取します。

イベントログ
なし

サービスから起動する際に発生するエラーを記録します（Windows版）。

内部トレース
HWSTraceLogFile

共有メモリのトレース情報を出力します。

共有メモリIDログ
HWSTraceIdFile

共有メモリIDを格納します。

コアファイル※
CoreDumpDirectory

Hitachi Web Server障害発生時のコアダンプの出力先を指定します（UNIX版）。

SSLCacheServerRunDir

gcacheサーバ（SSLで利用）障害発生時のコアダンプの出力先を指定します（UNIX版）。

注※

OSでコアファイルを出力する設定を行った場合に出力されます。

設定方法については各OSのマニュアルを参照してください。

アクセスログ，エラーログ，リクエストログのサイズが2GBを超えた場合，Hitachi Web Server が異常終了したり，再起動できない場合があります。定期的にログファイルを退避するか，「4.2.3　ログを分割する」や「4.2.4　ログファイルをラップアラウンドさせて使用する」を参照してログファイルのサイズが2GBを超えないように設定してください。

4.2.2　ログの採取方法

アクセスログ，エラーログ，プロセスIDのログおよびリクエストログの採取方法について説明します。

＜この項の構成＞

(1)　アクセスログ

(2)　エラーログ

(3)　プロセスIDのログ

(4)　リクエストログ

(5)　各トレースの出力先

(1)　アクセスログ

(a)　デフォルトフォーマットのアクセスログ

TransferLogディレクティブを指定して，ログを採取します。

デフォルトフォーマットのアクセスログの形式を次に示します。

クライアントホスト名△クライアントの識別情報△クライアントユーザ名△アクセス時刻△"リクエストライン"△ステータスコード△送信バイト数

（凡例）

△：空白

（出力例）

172.17.40.30 - - [25/Dec/2000:16:23:59 +0900] "GET / HTTP/1.0" 200 3546

(b)　カスタムフォーマットのアクセスログ

CustomLogディレクティブを指定して，ログを採取します。フォーマットの指定方法には，二つあります。

直接CustomLogディレクティブにフォーマットを指定する

（例）

CustomLog logs/access.log "%h %l %u %t ¥"%r¥" %>s %b"

LogFormatディレクティブでフォーマットに対するラベル名を定義して，そのラベル名をCustomLogディレクティブに指定する

（例）

LogFormat "%h %l %u %t ¥"%r¥" %>s %b" common

CustomLog logs/access.log common

(2)　エラーログ

(a)　エラーメッセージログ

ErrorLogディレクティブを指定して，ログを採取します。LogLevelディレクティブで採取するエラーのレベルを指定します。

(b)　CGIスクリプトのエラーログ

ScriptLogディレクティブを指定して，CGIスクリプトのエラーログを採取します。

(3)　プロセスIDのログ

PidFileディレクティブを指定して，制御プロセスIDのログを採取します。

(4)　リクエストログ

HWSRequestLogディレクティブとHWSRequestLogTypeディレクティブを指定して，リクエストログを採取します。リクエストログとは，モジュールトレース，リクエストトレースおよびI/Oフィルタトレースの総称です。

モジュールトレースの詳細については「4.2.6　モジュールトレースの採取」，リクエストトレースの詳細については「4.2.7　リクエストトレースの採取」，I/Oフィルタトレースの詳細については「4.2.8　I/Oフィルタトレースの採取」を参照してください。

(5)　各トレースの出力先

(a)　モジュールトレースの出力先

モジュールトレースの出力先は，エラーログまたはリクエストログのどちらか一方になります。どちらに出力されるかは，ディレクティブの指定によって決まります。モジュールトレースの出力先と出力条件を次に示します。

表4-2　モジュールトレースの出力先と出力条件

出力先 | 出力条件
リクエストログ | HWSRequestLogディレクティブの指定があり，かつ，HWSRequestLogTypeディレクティブにmodule-infoまたはmodule-debugを指定した場合
エラーログ | HWSRequestLogディレクティブの指定がなく，かつ，LogLevelディレクティブにinfoまたはdebugを指定した場合

モジュールトレースの詳細については「4.2.6　モジュールトレースの採取」を参照してください。

(b)　リクエストトレースおよびI/Oフィルタトレースの出力先

リクエストトレースおよびI/Oフィルタトレースの出力先はリクエストログになります。

HWSRequestLogディレクティブの指定があり，かつ，HWSRequestLogTypeディレクティブが出力条件を満たしている場合にリクエストログに出力されます。HWSRequestLogTypeディレクティブの出力条件については，「4.2.7　リクエストトレースの採取」および「4.2.8　I/Oフィルタトレースの採取」を参照してください。

4.2.3　ログを分割する（rotatelogsユティリティ）

アクセスログやエラーログを一定時間単位（例えば，24時間ごと）に分割して，複数のファイルに出力できます。rotatelogsユティリティは次のディレクティブに指定できます。

CustomLogディレクティブ

ErrorLogディレクティブ

HWSRequestLogディレクティブ

TransferLogディレクティブ

ユティリティの指定方法を次に示します。

＜この項の構成＞

(1)　形式

(2)　オペランド

(3)　使用方法

(4)　注意事項

(1)　形式

rotatelogs 分割ログファイルのプリフィックス  ログ分割時間間隔 〔-fnum ファイル数〕〔-diff GMTに対する時差〕

(2)　オペランド

分割ログファイルのプリフィックス
分割ログファイルのプリフィックスを絶対パスで指定します。
「プリフィックス.nnnnnnnnnn」というファイルに，ログを採取します。

nnnnnnnnnn：ログ採取開始時刻を表します。ログ採取時刻とは次の式で示す値です。

（（1970年1月1日の0時0分0秒(GMT：Greenwich Mean Time)を起点とした，ログを出力する時間の通算秒数÷ログ分割時間間隔）の小数点以下を切り捨てた値）×ログ分割時間間隔

ログ分割時間間隔　～((1－31536000))
一つのログファイルを採取する時間間隔を秒単位に指定します。指定した時間が経過するごとに，新規ファイルにログを採取します。

-fnum ファイル数　～((1－256))
分割したログファイルのファイル数を指定します。分割したファイル数がここで指定した数を超えた場合，最も古いファイルから削除されます。このオペランドを省略した場合，ファイルは削除されません。

-diff GMTに対する時差　～((-1439－1439))
ログファイルを分割する基準となる時間を，GMTに対する時差として分単位で指定します。指定しないまたは0を指定すると，1970年1月1日0時0分0秒(GMT)が基準時間となります。GMTに対するローカルタイムの差がn時間である場合に，ローカルタイムのm時0分0秒を基準にする場合には，(n-m)×60を指定します。JSTの0時0分0秒を基準にする場合には，(+9-0)×60で540を指定します。

(3)　使用方法

ディレクティブに，"|プログラム名"の形式で指定して使用します。ログファイルを定期的に別ファイルに分割して採取します。

（例）Windows版　24時間ごとに，アクセスログを分割してC:¥Program Files¥Hitachi¥httpsd¥logs¥access.nnnnnnnnnnファイルに採取します。分割時間を日本時間に設定し，日本時間の毎0時にログファイルを分割する場合の指定を次に示します。

TransferLog "|¥"¥"C:/Program Files/Hitachi/httpsd/sbin/rotatelogs.exe¥" ¥"C:/Program Files/Hitachi/httpsd/logs/access¥" 86400 -diff 540¥""

ログファイル名：C:¥Program Files¥Hitachi¥httpsd¥logs¥access.nnnnnnnnnn

ログ分割時間間隔：86400秒（＝24時間）

（例）UNIX版　24時間ごとに，アクセスログを分割して/opt/hitachi/httpsd/logs/access.nnnnnnnnnnファイルに採取します。分割時間を日本時間に設定し，日本時間の毎0時にログファイルを分割する場合の指定を次に示します。

TransferLog "|/opt/hitachi/httpsd/sbin/rotatelogs /opt/hitachi/httpsd/logs/access 86400 -diff 540"

ログファイル名：/opt/hitachi/httpsd/logs/access.nnnnnnnnnn

ログ分割時間間隔：86400秒（＝24時間）

(4)　注意事項

-fnumオペランドの指定によるログファイルの制御はWebサーバの再起動時に，ディレクトリ名またはログファイルのプリフィックスを変更すると，以前に採取したログファイルは削除されません。この場合は運用に応じて削除してください。

Webサーバを起動または再起動してから，指定したログ分割間隔時間が経過した場合，分割したログファイルのプリフィックスに一致するファイルの数が-fnumオペランドの指定値を超えると，作成時間の古いログファイルから削除されます。

分割ログファイルのプリフィックスは絶対パスで指定してください。

サービスとして起動した場合には，制御プロセスのログは採取されません（Windows版）。

ログファイルは，そのファイルを開いているプロセスがある間は削除できません。このため，-fnumで指定した値より多いファイルが残ることがあります。例えば，制御プロセスがログを出力したファイルは，制御プロセスが終了するまで削除されません（Windows版）。

rotatelogsユティリティはSIGTERM，SIGUSR1およびSIGHUPシグナルを受信してもプロセス終了処理を実施しませんが，制御プロセスとサーバプロセスが終了すればプロセス終了します（UNIX版）。

4.2.4　ログファイルをラップアラウンドさせて使用する（rotatelogs2ユティリティ）

アクセスログやエラーログをログファイルサイズで分割して，複数のファイルにラップアラウンドして出力できます。rotatelogs2ユティリティは次のディレクティブに指定できます。

CustomLogディレクティブ

ErrorLogディレクティブ

HWSRequestLogディレクティブ

TransferLogディレクティブ

ユティリティの指定方法を次に示します。

＜この項の構成＞

(1)　形式

(2)　オペランド

(3)　使用方法

(4)　注意事項

(1)　形式

rotatelogs2 ログファイルプリフィックス名　ログファイルサイズ　ログファイル個数

(2)　オペランド

ログファイルプリフィックス名
出力するログファイルのプリフィックス名を絶対パスで指定します。
出力するログファイルは「プリフィックス.nnn」のファイル名となります。
.nnnは.001からログファイル個数で指定した値までです。
「ログファイル個数」をnnn面とすると，nnn面のうち，Hitachi Web Server起動時の更新時刻が最新のものが，カレントのログファイルとなります。ログファイルは，ファイル名称のプリフィックスに拡張子.001～.nnnを付けて区別します。カレントのログファイルの拡張子が.mmmであった場合，カレントのログファイルがいっぱいになると，続きは，.mmm+1 のログファイルをクリアして出力されます。.mmmが.nnnと一致した場合，続きは.001に出力されます。
Windows版の場合，「プリフィックス.index」のインデクス番号格納用ファイルが作成されます。このファイルは.nnn管理用ファイルであり，rotatelogs2ユティリティの起動時に作成され，停止時に削除されます。ただし，起動エラーの一部などで削除されないことがありますが，以降のWebサーバの動作に影響はありません。

ログファイルサイズ　～((1－2097151))
ログファイルの最大サイズ（単位：KB）を指定します。
ログを出力するタイミングで，最大サイズを超えていると，次のログファイルをクリアして続きが出力されます。

ログファイル個数　～((1－256))
出力するログファイルの最大数を指定します。
最大サイズを超えて次のログファイルに移る場合，それまで処理していたログファイルの拡張子が最大個数と同じとき，再度.001のファイルから使用します。

(3)　使用方法

ディレクティブに，"|プログラム名"の形式で指定して使用します。

（例）4,096KBごとにエラーログを最大5個採取する場合

ErrorLog "|¥"¥"C:/Program Files/Hitachi/httpsd/sbin/rotatelogs2.exe¥" ¥"C:/Program Files/Hitachi/httpsd/logs/errorlog¥" 4096 5¥""

errorlog.001～errorlog.005 の順番にログが出力されます。errorlog.005が4,096KBを超えるとerrorlog.001 をクリアして続きが出力されます。Hitachi Web Server起動時に，すでにこれらのログファイルがある場合には，更新時刻の最も新しいログファイルが出力対象のログファイルとなります。このログファイルのサイズがすでに4,096KBを超えている場合には，次のログファイルをクリアして続きが出力されます。4,096KBを超えない場合は，このファイルの続きに出力されます。

(4)　注意事項

ログファイルプリフィックス名は絶対パスで指定してください。

Hitachi Web Server起動時の出力ログファイルは，更新日時が最新のものを対象とするため，誤ってファイルを更新した場合は正しいファイルへの出力ができなくなります。

ログファイルサイズには，同一秒内に複数のファイルが指定サイズを超えるような小さいサイズを指定しないでください。このようなサイズを指定した場合には，最も新しいログファイル以外が出力対象となり正しくローテーションされなくなることがあります。

コンフィグファイル内に，同一のログファイルプリフィックス名を複数個所で指定しないでください。複数個所で指定した場合には，最も新しいログファイル以外が出力対象となり正しくローテーションされなくなることがあります。

Webサーバはサービスとして起動してください。サービスとして起動しない場合，Webサーバの停止または再起動の際に，不当にログファイルがクリアされることがあります（Windows版）。

インデクス番号格納用ファイルは，rotatelogs2ユティリティが動作中の間は絶対に編集や削除をしないでください。編集するとログが正しく出力されないことがあります（Windows版）。

Webサーバの起動時にインデクス番号格納用ファイル「プリフィックス.index」と同名のファイルが存在した場合，ファイルは上書きされます（Windows版）。

rotatelogs2ユティリティはSIGTERM，SIGUSR1およびSIGHUPシグナルを受信してもプロセス終了処理を実施しませんが，制御プロセスとサーバプロセスが終了すればプロセス終了します（UNIX版）。

4.2.5　ログファイルのIPアドレスをホスト名に変換する（logresolveユティリティ）

logresolveユティリティは，レコードの先頭がIPアドレスであるアクセスログファイル内のIPアドレスをホスト名に変換し，新規ログファイルに出力します。変換規則は，ホスト名のルックアップの逆引きによります。

＜この項の構成＞

(1)　形式

(2)　オペランド

(3)　使用方法

(1)　形式

logresolve 〔-s ファイル名〕 〔-c〕 < アクセスログファイル名 > 新ログファイル名

(2)　オペランド

-s ファイル名
変換したときの情報を出力するファイルを指定します。このファイルには次のような情報が出力されます。

IPアドレスと変換後のホスト名

変換できなかったIPアドレス

変換したIPアドレスの数

-c
変換後のホスト名が変換前のIPアドレスと一致するかどうかチェックする場合に指定します。

アクセスログファイル名
入力ログファイル名を指定します。入力したファイルのIPアドレスからホスト名のルックアップの逆引きをします。レコードの先頭は，必ずIPアドレスでなければなりません。ホスト名の検索に失敗した場合，新ログファイルにはIPアドレスが出力されます。

新ログファイル名
IPアドレスをホスト名に変換したアクセスログを出力するファイル名を指定します。

(3)　使用方法

logs¥access.logに格納しているアクセスログ内のIPアドレスをホスト名に変換します。

アクセスログファイル：logs¥access.log

新ログファイル：logs¥new_access.log

logresolve < logs¥access.log > logs¥new_access.log

4.2.6　モジュールトレースの採取

Webサーバは複数のモジュール※から構成され，これらのモジュールは特定のタイミングで実行される複数の関数から構成されています。モジュールトレースとは，モジュールの各関数の実行時およびCGIプログラムの実行時に採取されるトレースのことです。モジュールトレースは，HWSRequestLogディレクティブの指定の有無によって，採取先などの採取方法が変わります。

注※　モジュールには，WebサーバにLoadModuleディレクティブで動的に組み込んで使用する外部モジュールと，httpsd実行ファイルに含まれる内部モジュールとがあります。

＜この項の構成＞

(1)　トレース対象

(2)　採取方法

(3)　採取レベル

(4)　トレースフォーマット

(5)　使用方法

(1)　トレース対象

モジュールトレースのトレース対象を次に示します。

表4-3　モジュールトレースのトレース対象

トレース対象 | トレースの契機
モジュール | モジュールは複数の関数から構成されています。これらの関数は，初期化処理とリクエスト対応処理に分類されます。トレースはリクエスト対応処理についての関数に対して採取します。
CGIプログラム | CGIプログラム実行時にトレースを採取します。

(2)　採取方法

HWSRequestLogディレクティブを指定していない場合は，ErrorLogディレクティブに指定したファイルに対して，LogLevelディレクティブの指定に従って採取します。

HWSRequestLogディレクティブを指定している場合は，HWSRequestLogディレクティブに指定したファイルに対して，HWSRequestLogTypeディレクティブの指定に従って採取します。

注意事項

ErrorLogディレクティブに指定したファイルに対してログを採取する場合は，バーチャルホスト単位にファイルを分けることができます。HWSRequestLogディレクティブに指定したファイルに対してログを採取する場合は，バーチャルホスト単位にファイルを分けることができません。

(3)　採取レベル

LogLevelディレクティブまたはHWSRequestLogTypeディレクティブの指定によって，採取するモジュールトレースのレベルを変更できます。各レベルで採取するトレースの内容を次に示します。

(a)　infoレベル

障害発生の原因となるおそれのある外部モジュールおよびCGIプログラムについて採取します。

LogLevelディレクティブにinfoを指定またはHWSRequestLogTypeディレクティブにmodule-infoを指定した場合に採取します。

(b)　debugレベル

infoレベルのほかに，リクエストごとに動作する内部モジュールについてのトレースも採取します。

LogLevelディレクティブにdebugを指定またはHWSRequestLogTypeディレクティブにmodule-debugを指定した場合に採取します。

(4)　トレースフォーマット

モジュールトレースの出力項目は次のとおりです。

なお，以降の記述で「サーバプロセスID」はWindows版の場合「サーバスレッドID」です。

(a)　モジュール

infoレベルで出力される場合

コール時

[時刻]△[info]△hws△:△module△-->△(モジュールファイル名称[関数オフセット])(サーバプロセスID)

リターン時

[時刻]△[info]△hws△:△module△<--△(モジュールファイル名称[関数オフセット])(サーバプロセスID)(結果コード)

（凡例）

△：空白

関数オフセットと関数の対応を次に示します。

表4-4　関数オフセットと関数の対応

関数オフセット | 関数名 | 意味
[0] | create_request | リクエスト開始処理を実行中
[1] | post_read_request | リクエスト読み込み後処理を実行中
[2] | quick_handler | リクエストされたURL変換前処理を実行中
[3] | translate_name | リクエストされたURLから，実際のファイル名への変換処理実行中
[4] | map_to_storage | ディスクアクセスを伴わないリクエスト処理を実行中
[5] | header_parser | リクエストヘッダ解析処理実行中
[6] | access_checker | 認証済みユーザからリクエストされたURLに対してホスト名およびIPアドレスによるアクセス権限チェック実行中
[7] | check_user_id | ユーザIDのチェック処理実行中
[8] | auth_checker | 認証済みユーザからリクエストされたURLに対してアクセス権限（Require）チェック実行中
[9] | type_checker | MIMEタイプのチェック処理実行中
[10] | fixups | リクエスト実行前処理を実行中
[11] | insert_filter | フィルタ挿入処理を実行中
[12] | handler | ハンドラを実行中
[13] | insert_error_filter | エラー応答前処理を実行中
[14] | log_transaction | ログ出力処理を実行中
[15] | error_log | エラーログ出力後処理を実行中
[16] | get_suexec_identity | ユーザ情報取得処理を実行中

（出力例）

[Fri Jul 15 17:29:43 2005] [info] hws : module --> (mod_example.c[1])(1864)
[Fri Jul 15 17:29:43 2005] [info] hws : module <-- (mod_example.c[1])(1864)(-1)

debugレベルで出力される場合

コール時

[時刻]△[debug]△ファイル名称(行番号):△hws△:△module△-->△(モジュールファイル名称[関数オフセット])(サーバプロセスID)

リターン時

[時刻]△[debug]△ファイル名称(行番号):△hws△:△module△<--△(モジュールファイル名称[関数オフセット])(サーバプロセスID)(結果コード)

（凡例）

△：空白

（出力例）

[Fri Jul 15 17:29:43 2005] [debug] request.c(69): hws : module --> (mod_alias.c[3])(1864)
[Fri Jul 15 17:29:43 2005] [debug] request.c(69): hws : module <-- (mod_alias.c[3])(1864)(-1)

(b)　CGIプログラム

infoレベルで出力

コール時

[時刻]△[info]△hws△:△cgi△-->△(exec=cgiファイル名称)(argv0=実行プログラム名称)(args=引数 ※)(サーバプロセスID)(CGIプロセスID)

注※　argsによる引数は，GET /cgi-bin/isindex?aaa+bbb+ccc HTTP/1.0のように，=ではなく，+で連結されたクエリーが指定された場合にだけ表示します。

リターン時

[時刻]△[info]△hws△:△cgi△<--△(exec=cgiファイル名称)(argv0=実行プログラム名称)(サーバプロセスID)(CGIプロセスID)

（凡例）

△：空白

（出力例）

[Fri Jul 15 19:48:08 2005] [info] hws : cgi --> (exec=C:/Program Files/Hitachi/httpsd/cgi-bin/isindex)(argv0=isindex)(args=aaa+bbb+ccc)(1784)(1144)
[Fri Jul 15 19:48:08 2005] [info] hws : cgi <-- (exec=C:/Program Files/Hitachi/httpsd/cgi-bin/isindex)(argv0=isindex)(1784)(1144)

(5)　使用方法

(a)　使用例

リクエストログに，infoレベルのモジュールトレースおよびリクエストトレースを出力する例を示します。

HWSRequestLogType module-info request
HWSRequestLog logs/hwsrequest.log

(b)　異常時のトレース例

外部モジュールで異常が発生した場合

[Fri Jul 15 10:29:29 2005] [info] hws : module --> (mod_example.c[1])(1800)
[Fri Jul 15 10:29:30 2005] [notice] Parent: child process exited with status 3221225477 -- Restarting.

mod_example.c[1]，つまり，post_read_requestに該当する関数内で異常が発生しました。
mod_example.c[1]に該当する関数を調査してください。

CGIプログラムからレスポンスがない場合

[Fri Jul 15 19:48:39 2005] [info] hws : cgi --> (exec=C:/Program Files/Hitachi/httpsd/cgi-bin/test-sleep)(argv0=test-sleep)(1800)(2276)
[Fri Jul 15 19:48:49 2005] [info] [client 192.168.1.1] Premature end of script headers: test-sleep
[Fri Jul 15 19:48:49 2005] [info] hws : cgi <-- (exec=C:/Program Files/Hitachi/httpsd/cgi-bin/test-sleep)(argv0=test-sleep)(1800)(2276)

CGIプログラム　test-sleepの処理でタイムアウトが発生しているので，この関数を調査してください。

4.2.7　リクエストトレースの採取

リクエストトレースとは，次のときに採取されるトレースのことです。

リクエスト処理開始時

リクエスト処理完了時

KeepAlive接続の場合，次のリクエストラインの受信完了時

リクエスト処理開始からリクエストライン受信完了前のコネクション切断時

HWSRequestLogディレクティブが指定されていた場合，かつHWSRequestLogTypeディレクティブでrequestが指定された場合に有効となります。障害発生時にWebサーバにリクエストが届いているかどうかを確認する場合などに有用です。

＜この項の構成＞

(1)　トレースフォーマット

(1)　トレースフォーマット

リクエストトレースの出力項目は次のとおりです。

なお，以降の記述で「サーバプロセスID」はWindows版の場合「サーバスレッドID」です。

リクエスト処理開始時

[時刻]△client△:△hws△-->△(クライアントIPアドレス:ポート番号,サーバIPアドレス:ポート番号[A])(サーバプロセスID)

リクエスト処理完了時

[時刻]△client△:△hws△<--△(クライアントIPアドレス:ポート番号,サーバIPアドレス:ポート番号[R])(サーバプロセスID)

KeepAlive接続での次のリクエストライン受信完了時

[時刻]△client△:△hws△-->△(クライアントIPアドレス:ポート番号,サーバIPアドレス:ポート番号[K])(サーバプロセスID)

リクエスト処理開始からリクエストライン受信完了前のコネクション切断時

[時刻]△client△:△hws△<--△(クライアントIPアドレス:ポート番号,サーバIPアドレス:ポート番号[X])(サーバプロセスID)

（凡例）

△：空白

（出力例）

[Tue Nov 21 15:18:40 2006] client : hws --> (192.168.2.1:5245,192.168.1.1:80[A])(1716)
[Tue Nov 21 15:18:41 2006] client : hws <-- (192.168.2.1:5245,192.168.1.1:80[R])(1716)

4.2.8　I/Oフィルタトレースの採取

I/Oフィルタトレースとは，モジュールが実装している入出力フィルタ関数の実行時に採取されるトレースのことです。

HWSRequestLogディレクティブが指定されていた場合，かつHWSRequestLogTypeディレクティブでfilterが指定された場合に有効となります。モジュール内のフィルタで発生した障害を切り分ける場合などに有用です。ただし，出力量が多いため，デバッグ目的以外では使用しないでください。

＜この項の構成＞

(1)　トレースフォーマット

(1)　トレースフォーマット

I/Oフィルタトレースの出力項目は次のとおりです。

なお，以降の記述で「サーバプロセスID」はWindows版の場合「サーバスレッドID」です。

入力フィルタコール時

[時刻]△hws△:△in-filter※△-->△(フィルタ名称[フィルタタイプ番号])(サーバプロセスID)

入力フィルタリターン時

[時刻]△hws△:△in-filter※△<--△(フィルタ名称[フィルタタイプ番号])(サーバプロセスID)(戻り値)

（凡例）

△：空白

注※　出力フィルタの場合は，「out-filter」になります。

（出力例）

[Tue Nov 21 15:18:40 2006] hws : in-filter --> (core_in[60])(1716)
[Tue Nov 21 15:18:40 2006] hws : in-filter <-- (core_in[60])(1716)(0)

4.2.9　内部トレースの採取（hwstraceinfoユティリティ）

アプリケーションプログラムの実行時やリクエスト受け取り時など，システムで発生した事象は内部トレースとして採取されています。内部トレースは，共有メモリにいったん出力され，その後ディレクティブの指定やユティリティによって，ファイルに出力されます。

＜この項の構成＞

(1)　トレース情報の採取

(2)　ファイルへの出力方法

(3)　hwstraceinfoユティリティ

(4)　共有メモリの解放および再起動時の注意（UNIX版の場合）

(1)　トレース情報の採取

Webサーバの各種事象発生を契機に内部トレースが共有メモリに採取されます。共有メモリのメモリ識別子は，HWSTraceIdFileディレクティブに指定したファイルに格納されます。

(2)　ファイルへの出力方法

共有メモリに採取された内部トレースは，サーバプロセスの異常終了時またはhwstraceinfoユティリティの実行によって，ファイルに出力されます。サーバプロセスが異常終了した場合は，HWSTraceLogFileディレクティブで指定したファイルに出力されます。

hwstraceinfoユティリティでは，共有メモリのメモリ識別子，出力先のファイル名を指定します。 hwstraceinfoユティリティは，UNIX版の場合，Userディレクティブで指定したユーザまたはスーパユーザだけが実行できます。また，Windows版の場合，管理者権限を持つユーザだけが実行できます。

内部トレースの出力ファイルサイズは次のとおりです。

UNIX版の場合

ps -eflコマンドの出力サイズ＋vmstatコマンドの出力サイズ＋ipcs -aコマンドの出力サイズ＋7KB×MaxClient値

Windows版の場合

7KB×ThreadPerChild値

(3)　hwstraceinfoユティリティ

hwstraceinfoユティリティの指定方法を説明します。

(a)　形式

hwstraceinfo -i 共有メモリ識別子 {-l ファイル名|-r}

(b)　オペランド

-i 共有メモリ識別子
HWSTraceIdFileディレクティブで指定したファイルに出力されている共有メモリ識別子を指定します。

-l ファイル名
-i で指定した共有メモリ識別子に該当するトレースを出力するファイルを指定します。

-r
-iで指定した共有メモリ識別子に割り当てられている共有メモリを解放します。UNIX版では，Webサーバが終了してもトレース用の共有メモリは残ります。残った共有メモリを解放するためにこのオペランドを使用します。Windows版では，Webサーバ終了時にトレース用の共有メモリは解放されますので，このオペランドは提供していません。

(c)　使用例

共有メモリ識別子1800_1133780652_0に該当するトレースをtraceinfo.logファイルに出力する例を示します。

hwstraceinfo -i 1800_1133780652_0 -l traceinfo.log

(4)　共有メモリの解放および再起動時の注意（UNIX版の場合）

Hitachi Web Serverが終了しても，トレース情報を残すために共有メモリは解放しません。また，サーバを再起動する場合は，共有メモリが再利用されます。

サーバを停止した後に起動した場合は，HWSTraceIdFileディレクティブに指定したファイルの値を基に，いったん共有メモリを解放して，再度確保します。ただし，次のような場合は，以前使用していた共有メモリが解放できなくなりますので，注意してください。

同一ユーザで再起動していない（UserディレクティブまたはGroupディレクティブの値が変更されている）

HWSTraceIdFileディレクティブの値を変更している

HWSTraceIdFileディレクティブで指定していたファイルが消去されている

共有メモリを解放する場合は，-rを指定したhwstraceinfoユティリティを実行してください。

4.2.10　保守情報収集機能（hwscollectユティリティ）

Webサーバが異常終了および無応答となった場合などに，保守員が障害調査を実施するためのコアダンプ，エラーログ，アクセスログなどの資料が必要となります。hwscollectユティリティによって，これら障害調査のための資料を一括して収集できます。hwscollectユティリティはUNIX版だけで有効です。

hwscollectユティリティは，root権限で実行する必要があります。

＜この項の構成＞

(1)　形式

(2)　オペランド

(3)　使用方法

(4)　コンフィグファイルの設定

(5)　コンフィグファイルの指定例

(6)　ディスク使用量

(7)　注意事項

(1)　形式

hwscollect 収集情報出力先ディレクトリ 〔-f 定義ファイル名〕

(2)　オペランド

収集情報出力先ディレクトリ
収集した情報をtarのアーカイブファイルとして出力する場合の，出力先のディレクトリを指定します。
アーカイブファイルの名称は，HWSyyyymmddhhmmss.tar となります。ここでyyyymmddは hwscollectを起動した日付，hhmmssはhwscollectを起動した24時間制の時刻で，それぞれローカルタイムです。

-f 定義ファイル名
hwscollect.confファイルを指定します。絶対パスまたはカレントディレクトリからの相対パスで指定します。

(3)　使用方法

HWSを標準的な構成でインストールした場合の使用方法を示します。

/opt/hitachi/httpsd/maintenance/hwscollect /tmp

(4)　コンフィグファイルの設定

hwscollect.confでhwscollectの動作を定義します。hwscollect.confは，キーワードと値をスペースで区切って記述します。キーワードは，大文字小文字を区別しません。行の最初に#を付けるとコメント行になります。ファイル名はすべて絶対パスで指定してください。コンフィグファイルのキーワードと指定について次に示します。

表4-5　コンフィグファイルのキーワードと指定

キーワード | 指定する値 | 指定 | 複数指定 | ワイルドカード
ServerRoot | httpsd.confのServerRootディレクティブの値を指定します。 | 必須 | × | ×
conf | httpsd.confのファイル名を指定します。 | 必須 | × | ×
trcinfo | hwstraceinfoコマンドの存在するディレクトリを指定します。 | 必須 | × | ×
trcid | httpsd.confのHWSTraceIdFileディレクティブで指定されるファイル名を指定します。 | 必須 | × | ×
PidFile | httpsd.confのPidFileディレクティブで指定されるファイル名を指定します。 | 必須 | × | ×
CORE | httpsd.confのCoreDumpDirectoryディレクティブの値と，SSLCacheServerRunDirディレクティブの値を指定します。 | 任意 | ○ | ○
LOG | httpsd.confのErrorLogディレクティブ，HWSRequestLogディレクティブおよびTransferLogディレクティブやCustomLogディレクティブなどのログを指定するファイル名を指定します。 | 任意 | ○ | ○
FILES | そのほか，障害解析に役立つファイルがあれば指定します。 | 任意 | ○ | ○

（凡例）

○：指定できる。

×：指定できない。

(5)　コンフィグファイルの指定例

コンフィグファイルの指定例を示します。

ServerRoot /opt/hitachi/httpsd
conf /opt/hitachi/httpsd/conf/httpsd.conf
trcinfo /opt/hitachi/httpsd/sbin/
trcid /opt/hitachi/httpsd/logs/hws.trcid
PidFile /opt/hitachi/httpsd/logs/httpd.pid
CORE /opt/hitachi/httpsd/logs/core*
LOG /opt/hitachi/httpsd/logs/error*
LOG /opt/hitachi/httpsd/logs/access*
LOG /opt/hitachi/httpsd/logs/hws.trclog*
LOG /opt/hitachi/httpsd/logs/hwsrequest*

(6)　ディスク使用量

一時的に使用するファイル
200KB+7KB×MaxClients値

収集した情報を出力するtarファイル
coreファイルの容量＋logファイルの容量＋一時的に使用するファイルの容量

(7)　注意事項

収集情報出力先ディレクトリには，coreファイルを含む保守情報のアーカイブファイルが作成されるため，空き領域を確保してください。

収集情報出力先ディレクトリに出力ファイルおよび一時ファイルを作成します。このため，収集情報出力先ディレクトリは書き込み可能としてください。

CORE，LOGおよびFILESにディレクトリを指定すると，指定されたディレクトリ下のファイルのすべてを採取します。このため，ルートディレクトリなど上位ディレクトリを指定すると，大量かつ不要な情報を採取してしまうため，注意が必要です。

4.3　サーバマシンのバーチャル化（バーチャルホスト）

バーチャルホストは1台のサーバマシンを複数台のマシンに見せます。その方法は次に示す二つがあります。

サーバ名に基づくバーチャルホスト（Name-Based Virtual Hosts）

IPアドレスに基づくバーチャルホスト（IP-Based Virtual Hosts）

＜この節の構成＞

(1)　サーバ名に基づくバーチャルホスト

(2)　IPアドレスに基づくバーチャルホスト

(1)　サーバ名に基づくバーチャルホスト

サーバ名に基づくバーチャルホストは，一つのIPアドレスに対して複数のホスト名をDNSサーバなどで定義しておき，クライアントからそのホスト名でアクセスすることで，複数ホストのように見せます。ネットワークインタフェースを複数設定する必要はありません。サーバ名に基づくバーチャルホストでは異なる複数のSSL対応ホストは構築できません。異なる複数のSSL対応ホストを構築する場合は，IPアドレスに基づくバーチャルホストで構築してください。

（例）1台のサーバマシン（IPアドレス：172.17.40.10）上の一つのWebサーバでポートを一つオープンし，Webブラウザからのリクエストに応じてホストを切り替える運用をする。

Webブラウザからの要求が，http://www1.xxx.soft.hitachi.co.jp/の場合

C:/Program Files/Hitachi/httpsd/htdocs1/index.html（DirectoryIndexの指定が index.htmlの場合）を参照します。

Webブラウザからの要求が，http://www3.xxx.soft.hitachi.co.jp/の場合

C:/Program Files/Hitachi/httpsd/htdocs3/index.html（DirectoryIndexの指定が index.htmlの場合）を参照します。

ただし，この方法はWebブラウザからのリクエスト中のHostヘッダで，"Host: www1.xxx.soft.hitachi.co.jp"のようにホスト名（必要に応じてポート番号）を指定してきた場合だけ利用できます。古いWebブラウザや，簡易タイプのWebブラウザでは利用できないことがあるので注意が必要です。その場合，最も上位に記述された<VirtualHost>ブロックの指定（この例ではwww1.xxx.soft.hitachi.co.jp）が有効になります。

Port 80                                                 …1.
NameVirtualHost 172.17.40.10                            …2.
<VirtualHost 172.17.40.10>                              …3.
DocumentRoot "C:/Program Files/Hitachi/httpsd/htdocs1"  …4.
ServerName www1.xxx.soft.hitachi.co.jp                  …5.
</VirtualHost>
<VirtualHost 172.17.40.10>                              …6.
DocumentRoot "C:/Program Files/Hitachi/httpsd/htdocs2"  …7.
ServerName www2.xxx.soft.hitachi.co.jp                  …8.
</VirtualHost>
<VirtualHost 172.17.40.10>                              …9.
DocumentRoot "C:/Program Files/Hitachi/httpsd/htdocs3"  …10.
ServerName www3.xxx.soft.hitachi.co.jp                  …11.
</VirtualHost>

ポート番号は一つ

サーバ名に基づくバーチャルホストのIPアドレス

バーチャルホスト1の定義

ルートディレクトリの定義

サーバ名1の定義

バーチャルホスト2の定義

ルートディレクトリの定義

サーバ名2の定義

バーチャルホスト3の定義

ルートディレクトリの定義

サーバ名3の定義

注　www1.xxx.soft.hitachi.co.jp，www2.xxx.soft.hitachi.co.jp，www3.xxx.soft.hitachi.co.jpは，DNSサーバなどに172.17.40.10ホストのホスト名として登録されていなければなりません。

(2)　IPアドレスに基づくバーチャルホスト

IPアドレスに基づくバーチャルホストは次の三つの方法でクライアントには複数ホストのように見せます。

複数のポートを使用

1台のサーバマシンに複数のネットワークインタフェースを指定

IPアドレスのエイリアスを指定

（例1）1台のサーバマシン上の一つのWebサーバでポートを二つオープンし，SSL対応Webサーバと非対応Webサーバの二つのホストとして運用する。

Listen 443                                                                             …1
Listen 80                                                                              …2
SSLDisable                                                                             …3
<VirtualHost xxx.soft.hitachi.co.jp:443>                                               …4
   DocumentRoot "C:/Program Files/Hitachi/httpsd/ssldocs"
   SSLEnable                                                                          …5
   SSLCertificateFile "C:/Program Files/Hitachi/httpsd/conf/ssl/server/httpsd.pem"
   SSLCertificateKeyFile "C:/Program Files/Hitachi/httpsd/conf/ssl/server/httpsdkey.pem"
</VirtualHost>
<VirtualHost xxx.soft.hitachi.co.jp:80>                                                …6
   DocumentRoot "C:/Program Files/Hitachi/httpsd/htdocs"
   SSLDisable                                                                         …7
</VirtualHost>

ポート番号の定義

ポート番号の定義

メインのサーバはSSLを無効に設定

ポート番号443のバーチャルホストの定義

SSL有効

ポート番号80のバーチャルホストの定義

SSL無効

（例2）1台のサーバマシン上に二つのNIC（Network Interface Card）（IPアドレス:172.17.40.10，172.17.40.20）を備え，一つのWebサーバでWebブラウザからのリクエストに応じてホストを切り替えて運用する。

Webブラウザからのリクエストが，http://172.17.40.10/の場合

C:/Program Files/Hitachi/httpsd/htdocs1/index.html（DirectoryIndexの指定が index.htmlの場合）を参照します。

Webブラウザからのリクエストが，http://172.17.40.20/の場合

C:/Program Files/Hitachi/httpsd/htdocs2/index.html（DirectoryIndexの指定がindex.htmlの場合）を参照します。

Port 80
<VirtualHost 172.17.40.10>
DocumentRoot "C:/Program Files/Hitachi/httpsd/htdocs1"
ServerName www10.xxx.soft.hitachi.co.jp
</VirtualHost>
<VirtualHost 172.17.40.20>
DocumentRoot "C:/Program Files/Hitachi/httpsd/htdocs2"
ServerName www20.xxx.soft.hitachi.co.jp
</VirtualHost>

4.4　WebサーバでのCGIプログラムの実行

CGIプログラムとは，Webサーバ上で動作するプログラムです。このCGIプログラムを使用すれば，静的なHTMLへのアクセスだけでは実現できないインタラクティブなWebアクセスができます。

＜この節の構成＞

(1)　CGIプログラムの定義

(2)　CGIプログラムの呼び出し

(3)　CGIプログラムに渡す情報

(4)　CGIプログラムの例

(5)　CGIプログラムに渡す追加情報

(6)　環境変数の定義

(7)　WindowsでCGIプログラムを利用するときの注意事項

(8)　UNIX版でCGIプログラムを利用するときの注意事項

(9)　パス情報指定時の注意事項

(1)　CGIプログラムの定義

CGIプログラムを実行するには，ScriptAliasディレクティブでCGIプログラムがあるディレクトリを指定する方式，AddHandlerディレクティブを使用しファイル拡張子にcgi-scriptハンドラを指定する方式およびSetHandlerディレクティブでcgi-scriptハンドラを指定する方式があります。

httpsd.confで設定する場合は，CGIプログラムの管理のしやすさの点で，ScriptAliasディレクティブによる設定を推奨します。

(a)　ScriptAliasディレクティブの指定例

CGIプログラムのパス名をC:/Program Files/Hitachi/httpsd/cgi-bin/CGIプログラムファイル名とし，これに対してクライアントから/cgi-bin/CGIプログラムファイル名でアクセスする場合

ScriptAlias /cgi-bin/ "C:/Program Files/Hitachi/httpsd/cgi-bin/"  

(b)　AddHandlerディレクティブの指定例

ファイル拡張子.cgiにcgi-scriptハンドラを指定する場合

AddHandler cgi-script .cgi

なお，OptionsディレクティブでExecCGIオプションの設定が必要です。

(c)　SetHandlerディレクティブの指定例

scriptで始まるファイル名に対するリクエストに対して，cgi-scriptハンドラを指定する場合

<FilesMatch ^script>
 SetHandler cgi-script
 Options ExecCGI
</FilesMatch>

(2)　CGIプログラムの呼び出し

CGIプログラムはWebブラウザから次の形式のURLを指定して呼び出します。

http://ホスト名〔:ポート番号〕/パス名〔?問い合わせ文字列〕

ホスト名〔:ポート番号〕
Webサーバが起動しているホスト名またはIPアドレスと，ポート番号を指定します。ポート番号を省略すると，ポート番号80にリクエストを送信します。

パス名
パス名はCGIプログラムのパスを指定します。

問い合わせ文字列
CGIプログラムに渡すパラメタです。そのキーワードと値の組を指定します。Webブラウザのフォームにデータを記述した場合，リクエストラインに自動的に設定されます。

(3)　CGIプログラムに渡す情報

WebサーバからCGIプログラムに環境変数を渡します。詳細は「付録B　CGIプログラムに渡す環境変数」を参照してください。

(4)　CGIプログラムの例

CGIプログラムのサンプルプログラムと，その実行例を説明します。

サンプルCGIプログラム

Windows版で使用可能なサンプルプログラムのソース例を次に示します。これはPerl言語で書かれたプログラムで，ファイル名をtest-cgi.plとします。

#! c:¥bin¥perl.exe

$argc=$#ARGV+1;
print "Content-Type: text/plain¥n";
print "¥n";
print "argc is $argc. argv is ¥"@ARGV¥".¥n";
print "SERVER_SOFTWARE = $ENV{'SERVER_SOFTWARE'}¥n";
print "SERVER_NAME = $ENV{'SERVER_NAME'}¥n";
print "GATEWAY_INTERFACE = $ENV{'GATEWAY_INTERFACE'}¥n";
print "SERVER_PROTOCOL = $ENV{'SERVER_PROTOCOL'}¥n";
print "SERVER_PORT = $ENV{'SERVER_PORT'}¥n";
print "REQUEST_METHOD = $ENV{'REQUEST_METHOD'}¥n";
print "HTTP_ACCEPT = ¥"$ENV{'HTTP_ACCEPT'}¥"¥n";
print "PATH_INFO = ¥"$ENV{'PATH_INFO'}¥"¥n";
print "PATH_TRANSLATED = ¥"$ENV{'PATH_TRANSLATED'}¥"¥n";
print "SCRIPT_NAME = ¥"$ENV{'SCRIPT_NAME'}¥"¥n";
print "QUERY_STRING = ¥"$ENV{'QUERY_STRING'}¥"¥n";
print "REMOTE_HOST = $ENV{'REMOTE_HOST'}¥n";
print "REMOTE_ADDR = $ENV{'REMOTE_ADDR'}¥n";
print "REMOTE_USER = $ENV{'REMOTE_USER'}¥n";
print "AUTH_TYPE = $ENV{'AUTH_TYPE'}¥n";
print "CONTENT_TYPE = $ENV{'CONTENT_TYPE'}¥n";
print "CONTENT_LENGTH = $ENV{'CONTENT_LENGTH'}¥n";

CGIプログラムの実行

Webブラウザに次に示すように指定して，サンプルCGIプログラムを呼び出します。

http://www.example.com/cgi-bin/test-cgi.pl/ABC?X=1&Y=2

サンプルプログラムの実行結果

(5)　CGIプログラムに渡す追加情報

CGI/1.1の環境変数以外にWebサーバからCGIプログラムに情報を渡す場合の指定方法について説明します。

コンフィグファイルにCGIプログラムに渡す環境変数や，その値を指定できます。CGIプログラムに渡さない環境変数の指定もできます。

PassEnv 環境変数                  CGIプログラムに渡す環境変数の指定
SetEnv 環境変数 値                CGIプログラムに渡す環境変数とその値の指定
UnsetEnv 環境変数                 CGIプログラムに渡さない環境変数の指定

(6)　環境変数の定義

クライアントのリクエストを基に，環境変数を定義できます。リクエストしているクライアントのホスト名やIPアドレスなどを基に環境変数を定義したり，環境変数の設定を解除したりできます。

SetEnvIfNoCase Request_URI "¥.(gif)|(jpg)$" request_is_image

この場合，ファイル拡張子が.gifまたは.jpgのとき（このディレクティブの場合，大文字，小文字の区別はしません），request_is_imageという環境変数をCGIプログラムに渡します。

(7)　WindowsでCGIプログラムを利用するときの注意事項

(a)　CGIプログラム作成時の注意

CGIプログラムとサーバスレッド間のデータ送受信には，CGIプログラムの標準入力，標準出力，標準エラー出力を使用しています。データ送受信中にはTimeoutディレクティブは有効になります。CGIプログラム作成時には，データの送受信完了後は，標準入出力などを閉じるかまたは終了してください。

(b)　CGIプログラムの強制終了

CGIプログラムはWebサーバが停止しても，CGIプログラム自身が処理を終えるまで終了しません。CGIプログラムを強制終了するには「タスクマネージャ」から終了させます。

(8)　UNIX版でCGIプログラムを利用するときの注意事項

CGIプログラムには，User，Groupディレクティブ指定値での実行権限が必要です。

(9)　パス情報指定時の注意事項

リクエストURLに，CGIプログラムに渡すパス情報が指定された場合，そのパス情報を環境変数PATH_INFOに，パス情報をファイルシステム上のパスに変換した値を環境変数PATH_TRANSLATEDに設定します。パス情報をファイルシステム上のパスに変換する際には，DocumentRootディレクティブに指定されたパスを基点とします。パス情報に対し，Aliasディレクティブなどで別名を指定している場合は，その指定に従って変換します。

Webサーバの設定によって，環境変数PATH_TRANSLATEDに設定されたパスへのアクセスを許可していない場合には，エラーログにアクセス拒否のメッセージを出力します。このメッセージを出力した場合でも，WebサーバはCGIプログラムを実行し，リクエスト処理を続行します。この際，環境変数PATH_TRANSLATEDもCGIプログラムに渡されます。

（例）ドキュメントルートが "C:/Program Files/Hitachi/httpsd"，Webブラウザからの要求が "http://www.example.com/cgi-bin/test-cgi.pl/ABC"（CGIプログラム"test-cgi.pl"を実行するリクエストに，パス情報として "/ABC" を付加）の場合の，エラーログ出力例を次に示します。

[Fri Feb 20 12:00:00 2004] [error] [client 192.168.1.1] client denied by server configuration: C:/Program Files/Hitachi/httpsd/ABC

4.5　ユーザ認証とアクセス制御

Webサーバに対するアクセス制御方法には次に示す方法があります。

ユーザ名およびパスワードによるアクセス制御

クライアントのホスト名またはIPアドレスによるアクセス制御

ディレクトリに対するアクセス制御

ディレクトリサービスを利用したアクセス制御

＜この節の構成＞

4.5.1　ユーザ名およびパスワードによるアクセス制御

4.5.2　クライアントのホスト名またはIPアドレスによるアクセス制御

4.5.3　ディレクトリに対するアクセス制御

4.5.4　ディレクトリサービスを利用したユーザ認証とアクセス制御

4.5.1　ユーザ名およびパスワードによるアクセス制御

ユーザ名とそのパスワードはhtpasswdユティリティを使用して，パスワードファイルに登録します。登録されているユーザ名に対して，ホスト内のディレクトリやファイルなどのアクセス権を定義できます。htpasswdユティリティの使用方法については，「(1)　ユーザ名とパスワードのパスワードファイルへの登録およびパスワードの変更」を参照してください。

（例）C:¥Program Files¥Hitachi¥httpsd¥htdocs¥ディレクトリ下を特定のユーザだけに公開する

htpasswdユティリティを使用してあらかじめユーザ名とパスワードをパスワードファイル（C:¥Program Files¥Hitachi¥httpsd¥htdocs¥.htpasswd）に登録しておいてください。httpsd.confファイルに次に示すディレクティブを設定します。ユーザがC:¥Program Files¥Hitachi¥httpsd¥htdocs¥にアクセスするとWebサーバはステータスコード401　Authorization Requiredを応答し，Webブラウザでユーザ名およびパスワードの入力を要求します。

<Directory "C:/Program Files/Hitachi/httpsd/htdocs">
   AuthType Basic
   AuthName "realm 1"
   AuthUserFile "C:/Program Files/Hitachi/httpsd/htdocs/.htpasswd"
   Require valid-user
</Directory>

＜この項の構成＞

(1)　ユーザ名とパスワードのパスワードファイルへの登録およびパスワードの変更

(1)　ユーザ名とパスワードのパスワードファイルへの登録およびパスワードの変更

htpasswdユティリティを使用して，パスワードファイルにユーザ名，パスワードの登録および変更ができます。

htpasswdユティリティの使用方法について次に説明します。

(a)　形式

htpasswd 〔-b〕〔-c | -D〕 パスワードファイル名 ユーザ名〔パスワード〕

(b)　オペランド

-b
パスワードをコマンドラインに指定する場合に指定します。

-c
新規にパスワードファイルを作成する場合に指定します。すでに作成しているパスワードファイルにユーザを追加する場合や，パスワードを変更する場合には，指定する必要はありません。

-D
ユーザの登録を削除する場合に指定します。指定したパスワードファイルに，指定したユーザが登録されている場合に，パスワードファイルから該当するユーザを削除します。

パスワードファイル名
パスワードを登録，変更または削除するパスワードファイルを指定します。

ユーザ名
パスワードを登録，変更または削除するユーザ名を指定します。

パスワード
登録または変更するパスワードを指定します。-bオプションを指定したときだけ指定できます。

(c)　使用方法

パスワードファイル名と，登録するユーザ名またはパスワードを変更するユーザ名を指定してhtpasswdを起動すると，そのユーザのパスワードの入力が要求されます。入力確認を含め，2回パスワードを入力すると，パスワードファイルにそのユーザのユーザ名と，パスワードが登録されます。

C:¥>"Program Files¥Hitachi¥httpsd¥bin¥htpasswd.exe" .passwd userxx     …1.
New password:                                                          …2.
Re-type new password:                                                  …3.
Updating password for userxxx                                          …4.
C:¥>

userxxのパスワードの変更

新パスワード入力

新パスワード再入力

新パスワードの登録終了

登録を削除する場合は，-Dオプション，パスワードファイル名および削除するユーザ名を指定してhtpasswdを起動します。

C:¥>"Program Files¥Hitachi¥httpsd¥bin¥htpasswd.exe" -D .passwd userxx  …1.
Deleting passwd for userxx                                             …2.
C:¥>

userxxの登録削除

userxxの登録削除終了

(d)　注意事項

Windows版のパスワードの最大長は128文字です。ユーザ名の最大長は128文字です。UNIX版のパスワードの最大長は，パスワード読み取り関数であるシステムコールgetpass()の最大長と128文字のどちらか短い方です。getpass()についての詳細は，ご使用のOSのマニュアルを参照してください。

htpasswdユティリティ実行時は，パスワードファイルの作成先と同じディレクトリに，作業ファイルが一時的に作成されます。作業ファイル名は，「パスワードファイル名.プロセスID」です。この作業ファイルは，htpasswdユティリティの終了時に自動的に削除されます。ただし，実行中にキャンセルした場合など，作業ファイルが削除されないことがあります。作業ファイルが残っている場合は，手動で削除してください。

4.5.2　クライアントのホスト名またはIPアドレスによるアクセス制御

クライアントのホスト名やIPアドレスによってアクセス制御するには，Allow fromディレクティブやDeny fromディレクティブを使用します。Allow fromディレクティブでアクセスを許可するホスト，Deny fromディレクティブでアクセスを禁止するホストを指定します。

（例）C:¥Program Files¥Hitachi¥httpsd¥htdocs¥ディレクトリ下を，プロキシ経由のリクエストによる参照を禁止する

httpsd.confファイルに次に示すディレクティブを設定します。ユーザがC:¥Program Files¥Hitachi¥httpsd¥htdocs¥にアクセスする場合，proxy.xxx.soft.hitachi.co.jpをプロキシとして利用しているWebブラウザはステータスコード403 Forbiddenでアクセスを拒否されます。

<Directory "C:/Program Files/Hitachi/httpsd/htdocs">    ディレクトリの定義
   Order deny,allow                        アクセス許可と禁止の優先順位定義
   Deny from proxy.xxx.soft.hitachi.co.jp  アクセスの禁止
</Directory>

4.5.3　ディレクトリに対するアクセス制御

アクセスコントロールファイル（.htaccess）を特定のディレクトリ下に作成すれば，そのディレクトリに対するアクセス権を設定できます。そのファイルにアクセスを許可または拒否するクライアント名（IPアドレス）やユーザ名を指定します。

＜この項の構成＞

(1)　アクセスコントロールファイル

(2)　アクセス権の設定例

(1)　アクセスコントロールファイル

アクセスコントロールファイルを特定のディレクトリ下に作成すれば，そのディレクトリに対するアクセス権を設定できます。アクセスコントロールファイルの名称は，AccessFileNameディレクティブで指定します。デフォルトは.htaccessです。

アクセスコントロールファイルによるアクセス制御は，Webサーバを再起動することなく，有効になります。ただし，正しく機能させるためには，httpsd.confのAllowOverrideディレクティブを適切な上書き許可レベルに設定する必要があります。

アクセスコントロールファイルにパスワードファイルを指定すると，ユーザがそのディレクトリにアクセスする場合にユーザ名およびパスワードの入力を要求します。

注　アクセスコントロールファイル（.htaccess）とパスワードファイル（.htpasswd）は1対1である必要はありません。異なるアクセスコントロールファイルのAuthUserFileディレクティブに同じパスワードファイルを指定できます。

(2)　アクセス権の設定例

次のようなディレクトリ構成で，各ディレクトリに対してアクセスコントロールファイルにアクセス権を設定する

[user001のpublic_html]
│
├─[auth]──┬──.htaccess
│　　　      └──index.html
├─[test1]─┬──.htaccess
│　　       ├──.htpasswd (user001/test1)
│　　       ├──index.html
│　　       ├─[test11]──┬───.htaccess
│　　       │　　　        ├───.htpasswd (user001/test11)
│　　       │　　　        └───index.html
│　　       └─[test12]─┬──index.html
│　　　　　               └─[test121]──┬──.htaccess
│　　　　　　　　　                        └──index.html
└─[test2]──┬──.htaccess
　　　　       ├──.htpasswd (user001/test21,
　　　　       │     user002/test22,user003/test23)
　　　　       ├──.groupfile(mygroup: user001 user002)
　　　　       └──index.html

authディレクトリ下のアクセス権の定義（auth/.htaccessファイル）
IPアドレスが172.18.102.11および172.16.202.4のサーバからのアクセスを拒否します。

Order deny,allow                      …1.
Deny from 172.18.102.11 172.16.202.4  …2.

アクセス拒否の定義を先に評価

アクセス拒否の定義

test1ディレクトリ下のアクセス権の定義（test1/.htaccessファイル）
ユーザ名=user001，パスワード=test1を入力した場合だけ，test1/index.htmlおよびtest1/test12/index.htmlへのアクセスを許可します。

AuthUserFile C:/user001/public_html/test1/.htpasswd      …1.
AuthName "test1 Directory"                               …2.
AuthType Basic
<Limit GET POST>                                         …3.
   Require user user001                                  …4.
</Limit>

パスワードファイルの定義
パスワードファイルに登録しているユーザ名とパスワード
ユーザ名：user001，パスワード：test1

realm名の定義

メソッドに対する定義

ユーザ名：user001のアクセスを許可

test1/test11ディレクトリ下のアクセス権の定義（test1/test11/.htaccessファイル）
ユーザ名=user001，パスワード=test11を入力した場合だけ，test1/test11/index.htmlへのアクセスを許可します。

AuthUserFile C:/user001/public_html/test1/test11/.htpasswd      …1.
AuthName "test11 Directory"                                     …2.
AuthType Basic
<Limit GET POST>                                                …3.
   Require user user001                                         …4.
</Limit>

パスワードファイルの定義
パスワードファイルに登録しているユーザ名とパスワード
ユーザ名：user001，パスワード：test11

realm名の定義

メソッドに対する定義

ユーザ名：user001のアクセスを許可

test1/test12/test121ディレクトリ下のアクセス権の定義（test1/test12/test121/.htaccessファイル）
ユーザ名=user001，パスワード=test1を入力し，WebブラウザがMSIEの場合だけ，test1/test12/test121/index.htmlへのアクセスを許可します。

Order deny,allow      …1.
Allow from env=MSIE   …2.
Deny from all         …3.

アクセス拒否の定義を先に評価

WebブラウザがMSIEの場合，アクセスを許可

すべてのホストからのアクセスを拒否

ただし，httpsd.confに次のディレクティブを定義しているものとします。

SetEnvIf User-Agent ".*MSIE.*" MSIE

test2ディレクトリ下のアクセス権の定義（test2/.htaccessファイル）
mygroupグループのユーザ名，パスワードを入力した場合だけ，test2/index.htmlへのアクセスを許可します。

AuthUserFile C:/user001/public_html/test2/.htpasswd        …1.
AuthGroupFile C:/user001/public_html/test2/.groupfile      …2.
AuthName "test2 Directory"                                 …3.
AuthType Basic
<Limit GET POST>                                           …4.
   Require group mygroup                                   …5.
</Limit>

パスワードファイルの定義
パスワードファイルに登録しているユーザ名とパスワード
ユーザ名：user001，パスワード：test21
ユーザ名：user002，パスワード：test22
ユーザ名：user003，パスワード：test23

グループファイルの定義
グループファイルに登録しているグループ名
グループ名：mygroup
mygroupに登録しているユーザ名：user001，user002，user003

realm名の定義

メソッドに対する定義

グループ名：mygroupのアクセスを許可

4.5.4　ディレクトリサービスを利用したユーザ認証とアクセス制御

ディレクトリサービス（以降，LDAPサーバと呼びます）と連携して，パスワードファイルを作成しないでユーザ認証ができます。また，LDAPサーバ内の属性でアクセス制御ができます。

この機能は，AIX，Linux（32ビット），SolarisおよびWindows版で使用できます。

HP-UX（IPF）およびLinux（IPF）版では使用できません。

＜この項の構成＞

(1)　LDAPサーバでユーザ認証するための準備

(2)　LDAPサーバでの認証方法

(3)　LDAPサーバでのアクセス制御

(4)　ユーザ認証とアクセス制御の関係

(5)　複数のLDAPサーバでユーザ認証

(1)　LDAPサーバでユーザ認証するための準備

LDAPサーバを利用した認証例を説明します。

この機能を利用するためには，httpsd.confに次のディレクティブを設定してLDAP関連機能を処理するモジュールを組み込んでください。次の1，2の順に，二つのモジュールを順番に組み込んでください。

組み込みを指定した行以降に，LDAPを利用したユーザ認証のディレクティブが設定できます。

(a)　コンフィグファイルhttpsd.conf上での組み込み方法

ライブラリの組み込み

Linux（32ビット）版
LoadFile libexec/libldapssl41.so
このライブラリはWebサーバをインストールしたときに標準で格納されています。

Solaris版
LoadFile libexec/libldapssl41.so
このライブラリはWebサーバをインストールしたときに標準で格納されています。

AIX版
ファイルセット ldap.client.rte をインストールした後，次の設定をしてください。
LoadFile /usr/lib/libldap.a　 （AIX 5L V5.2以前の場合）
LoadFile /usr/lib/libibmldap.a （AIX 5L V5.3の場合）

Windows版
LoadFile libldap/nsldap32v50.dll
このライブラリはWebサーバをインストールしたときに標準で格納されています。

LDAP認証モジュールの組み込み

UNIX版
LoadModule hws_ldap libexec/mod_hws_ldap.so

Windows版
LoadModule hws_ldap modules/mod_hws_ldap.so

(2)　LDAPサーバでの認証方法

ユーザ認証する場合，<Directory>,.htaccessにはパスワードファイルを使用した場合と同様に，AuthTypeディレクティブとAuthNameディレクティブを指定します。また，Require valid-userとLDAPRequireディレクティブを指定することで，LDAPサーバと連携したユーザ認証ができます。

C:/Program Files/Hitachi/httpsd/cgi-bin/のCGIを使用する場合に，ユーザIDとパスワードを入力させて認証する例を次に示します。

（例）

LDAPServerName ldap.server.hitachi.com
LDAPServerPort 389
<Directory "C:/Program Files/Hitachi/httpsd/cgi-bin">
AuthName LDAP-TASK
AuthType Basic
Require valid-user
LDAPRequire
</Directory>

LDAPサーバ内の属性でアクセス制御もできます。

例えば，社員登録番号が100番から200番のユーザだけアクセスを許可することもできます。詳細についてはLDAPRequireディレクティブを参照してください。

(3)　LDAPサーバでのアクセス制御

認証されたユーザが，該当コンテンツを利用できるかどうかを定義できます。

LDAPRequire 〔%DN属性%〕 〔LDAP検索フィルタ〕

LDAP検索フィルタに，LDAPサーバに登録されている情報を基に，アクセス権限について定義します。

例えば，認証されたユーザの中でtaroとhanakoだけをアクセスさせたい場合には，次のように定義します。定義した情報は，あらかじめLDAPサーバ内に登録してください。

（例）

LDAPRequire %cn% (|(cn=taro)(cn=hanako))

(4)　ユーザ認証とアクセス制御の関係

LDAPサーバにユーザ名がcnとして登録されている場合を例に説明します。SSLクライアント認証とLDAPRequireディレクティブを組み合わせた場合，証明書による認証後，LDAPサーバにクライアントが登録されているかどうかを確認します。このとき，クライアント証明書内のサブジェクトのCommon Name（CN）をユーザ名として扱い，パスワードを使用しない匿名アクセスとしてLDAPサーバにアクセスし確認します。LDAPサーバにアクセスできなかった場合は，ステータスコード500 Internal Server Errorを応答します。

ユーザ認証とアクセス制御の関係を次の図に基づいて説明します。

図4-5　ユーザ認証とアクセス制御の関係

(a)　LDAPサーバによる認証

LDAPサーバでの認証をするためには，各ユーザが登録されているDN（認証するユーザが登録されているエントリ：ou=member，o=hitachi，c=jpなど）を，あらかじめLDAPBaseDNディレクティブに定義しておきます。

LDAPRequireディレクティブが定義されたコンテンツをアクセスする場合，クライアントをこのDN内の情報を使って認証します。Webブラウザ上にユーザ名とパスワードの入力を要求する画面が表示されます。

ユーザ名，パスワードを入力すると，cn=ユーザ名とLDAPBaseDNディレクティブに定義したDNを組み合わせて，認証するユーザのDNを作成して，パスワード認証します。この場合，ユーザのDNはcn=TARO,ou=member,o=hitachi,c=jpになります。

LDAPサーバのDNに登録されたパスワードと，クライアントが入力したパスワードが一致しなければ，このユーザに対してステータスコード401 Authorization Requiredを応答し，アクセスを拒否します。

パスワードが一致してもLDAPRequireディレクティブにLDAP検索フィルタの指定がある場合は，検索フィルタの記述とユーザのDNが一致するかどうかを判断します。

一致していればアクセスを許可します。cn=JIROはパスワードが一致していても，検索フィルタの記述には一致しないため，LDAPNoEntryStatusディレクティブに従ったステータスコード(デフォルトでは401 Authorization Required)を応答し，アクセスを拒否します。

(b)　SSLクライアント証明書がある場合

クライアント（Webブラウザ）からアクセスするときに，SSLクライアント証明書を受け付けた場合には，LDAPサーバでは認証しません。SSLで認証します。

LDAPRequireディレクティブを定義した場合には，LDAPサーバをアクセスして，アクセス制御します。
クライアント証明書のサブジェクトのCommon Name（CN）を，クライアントの名前としてLDAPサーバを検索します。CNがLDAPサーバにない場合，ステータスコード401 Authorization Requiredを応答します。

クライアント証明書のCNがLDAPサーバにある場合，検索フィルタを使って，このフィルタに一致するかどうか確認します。検索フィルタが(|(cn=TARO)(cn=HANAKO))の場合，証明書のCNがTAROであれば検索フィルタに一致するのでアクセスできます。また，CNがJIROの場合は，検索フィルタに一致しないため，LDAPNoEntryStatusディレクティブに従ったステータスコード(デフォルトでは401 Authorization Required)を応答し，アクセスを拒否します。
LDAPサーバには必ずユーザを区別するためのcnがあり，これと証明書のCNが一致していると仮定して動作するため，この規則を基にSSLクライアント証明書を作成してください。

(5)　複数のLDAPサーバでユーザ認証

LDAPサーバは並列に複数指定できます。そのため，異なるユーザが登録されているLDAPサーバを併用してユーザ認証ができます。また，ディレクトリ単位にも指定できるため，コンテンツごとにLDAPサーバを変更できます。

(a)　LDAPサーバの複数指定

LDAPServerName，LDAPServerPortおよびLDAPBaseDNディレクティブに複数のLDAPサーバに対応したサーバ名，ポート番号およびDNを指定できます。最初に指定したLDAPサーバの優先度が最も高く，指定した順に優先度は低くなります。

(b)　ディレクトリ単位にLDAPサーバを指定

次に示すLDAP関連のディレクティブはディレクトリ単位に指定できます。指定したディレクティブはhttpsd.conf，<VirtualHost>，<Directory>の順に上位ディレクトリから下位ディレクトリへ継承します。

ディレクトリ単位に指定できるLDAP関連ディレクティブ

LDAPServerName

LDAPServerPort

LDAPTimeout

LDAPBaseDN

4.6　ファイル名一覧の表示

ディレクトリ内のファイル名一覧をWebブラウザに表示する機能をディレクトリインデクスといいます。ディレクトリインデクス機能を有効にするには次に示すディレクティブを定義します。

Options +Indexes

このとき，すべてのファイルを表示させることはセキュリティ上危険です。IndexIgnoreディレクティブでインデクス表示させないファイルを指定する必要があります。

ただし，Options +Indexesを指定していても，DirectoryIndexディレクティブに指定しているファイル（デフォルトはindex.htmlファイル）がそのディレクトリ下にある場合は，その指定されているファイルが表示されます。

さらに，ディレクトリインデクスを整形表示する場合は，次のディレクティブを指定します。

IndexOptions +FancyIndexing

整形表示機能の詳細設定はIndexOptionsディレクティブ，AddIconディレクティブで指定します。ディレクトリインデクス機能で表示される画面と，各ディレクティブで設定する内容を次に示します。

図4-6　整形表示機能についての定義内容

なお，マルチバイト文字列を含むファイル名の表示はできません。

また，HeaderNameディレクティブおよびReadmeNameディレクティブで指定したファイルで使用している文字セットが，デフォルトの文字セット(UTF-8)と異なる場合は，ディレクトリインデクス表示において文字化けが発生します。この場合，IndexOptionsディレクティブのCharsetオプションで，HeaderNameディレクティブやReadmeNameディレクティブで指定したファイルで使用している文字セットを指定してください。

4.7　リバースプロキシの設定

直接インターネットに接続できないクライアントからのリクエストをクライアントに代わってWebサーバに送信する代行サーバをプロキシサーバといいます。通常，プロキシサーバは，クライアントとインターネットとの接点に設置されます。これに対し，インターネットとWebサーバとの接点にプロキシサーバを設置した場合をリバースプロキシといいます。リバースプロキシでは，クライアントからのリクエストをWebサーバに代わってプロキシサーバが処理します。

通常のプロキシサーバとリバースプロキシの相違を次に示します。

図4-7　通常のプロキシサーバとリバースプロキシの相違

リバースプロキシを使用してできることを次に示します。

コンテンツへの直接アクセスを防止できます。
Webサーバに重要な情報（クレジットカード番号のデータベースなど）を保持している場合，リバースプロキシとWebサーバを別のマシンに設定し，悪意のあるアクセスからWebサーバを守り，情報の漏えいを防げます。

プロキシサーバに負荷の高いSSL処理を集約できます。
リバースプロキシを使用し，SSLの処理を別のマシンですれば，Webサーバに掛かる負荷を分散できます。

クライアントに影響を与えないで，Webサーバを分割できます。
Webサーバを分割した場合でも，リバースプロキシが代行するので，クライアントは分割前と同じインタフェースでアクセスできます。

＜この節の構成＞

(1)　プロキシモジュールの組み込み

(2)　ディレクティブの設定方法

(3)　システム構築例

(4)　注意事項

(1)　プロキシモジュールの組み込み

リバースプロキシを使用するためにはプロキシモジュールの組み込みが必要です。プロキシモジュールを組み込むにはコンフィグファイル（httpsd.conf）に次に示すディレクティブを指定します。プロキシモジュールを組み込むには，コンフィグファイル（httpsd.conf）に次に示すディレクティブを指定します。UNIX版の場合は，必ず次に示す順序でLoadModuleディレクティブを指定してください。

UNIX版

LoadModule proxy_module libexec/mod_proxy.so
LoadModule proxy_http_module libexec/mod_proxy_http.so

Windows版

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so

(2)　ディレクティブの設定方法

リバースプロキシを設定する各ディレクティブの設定例を次に示します。

ここでは各アドレスを次のように仮定しています。

リバースプロキシ：www.example.com

バックエンドサーバ：backend.example.com

(a)　リクエストURLの再割り当ておよびリクエストヘッダの再割り当て

次のようにProxyPassディレクティブを設定すると，クライアントからの"http://www.example.com/news/oct-2001"というリクエストは"http://backend.example.com/oct-2001"というリクエストに変更されます。

ProxyPass /news/ http://backend.example.com/

Host:ヘッダは"Host:www.example.com"から"Host:backend.example.com"に再割り当てします。そして，リバースプロキシはバックエンドサーバからのレスポンスをクライアントに応答します。

(b)　応答ヘッダの再割り当て

Redirectディレクティブの指定，イメージマップの利用または末尾を/（スラッシュ）で閉じないディレクトリ指定のリクエストなど，バックエンドサーバでリダイレクトが指示された場合には，バックエンドサーバからのレスポンスのLocationヘッダにバックエンドサーバのアドレスが記載されます。これをそのままクライアントに応答すると，クライアントはリダイレクトをリバースプロキシではなく，直接バックエンドサーバにリクエストします。そこで，ProxyPassReverseディレクティブに次のように指定し，リダイレクトリクエストもリバースプロキシを通るリクエストになるようにします。

ProxyPassReverse /news/ http://backend.example.com/

これで，Locationヘッダはリバースプロキシのアドレスに変更されます。

(c)　Set-Cookieヘッダの再割り当て

バックエンドサーバがクライアントに返すSet-Cookieヘッダには，ドメイン名およびパス名が指定される場合があります。これは，Set-Cookieヘッダのドメイン名およびパス名に一致したリクエストの場合だけ，クライアントにクッキーを送信させるためです。

Set-Cookieヘッダの再割り当てをしない場合と再割り当てをする場合について説明します。

●Set-Cookieヘッダの再割り当てをしない例

バックエンドサーバが応答したドメイン名およびパス名を含むSet-Cookieヘッダをリバースプロキシがそのままクライアントに応答する例を次の図に示します。なお，図中の数字は，説明文の項番と対応しています。

図4-8　Set-Cookieヘッダの再割り当てをしない例

クライアントからリバースプロキシに対して，http://www.example.com/front/cgi-bin/test-cgi.plがリクエストされます。

リバースプロキシは，URLを変換してバックエンドサーバへ転送します。

リバースプロキシは，バックエンドサーバからドメイン名domain=backend.example.com，パス名path=/cgi-bin/のSet-Cookieヘッダを受信します。

リバースプロキシは，バックエンドサーバから受信したSet-Cookieヘッダをそのままクライアントに返します。

この場合，クライアントはリバースプロキシを経由する/front/cgi-bin/以下へのリクエストについて，Set-Cookieヘッダで受信したクッキーを送信しません。これは，クライアントが受信したSet-Cookieヘッダのドメイン名backend.example.comが，リバースプロキシのドメイン名www.example.comと異なるためです。また，パス名についても同様に適合しません。

●Set-Cookieヘッダの再割り当てをする例

バックエンドサーバがSet-Cookieヘッダで応答したクッキーをクライアントから受け取るためには， HWSProxyPassReverseCookieディレクティブの指定が必要です。HWSProxyPassReverseCookieディレクティブを指定してSet-Cookieヘッダの再割り当てをする例を次の図に示します。なお，図中の数字は，説明文の項番と対応しています。

図4-9　Set-Cookieヘッダの再割り当てをする例

クライアントからリバースプロキシに対して，http://www.example.com/front/cgi-bin/test-cgi.plがリクエストされます。

リバースプロキシは，URLを変換してバックエンドサーバへ転送します。

リバースプロキシは，バックエンドサーバからドメイン名domain=backend.example.com，パス名path=/cgi-bin/のSet-Cookieヘッダを受信します。

リバースプロキシは，再割り当てしたSet-Cookieヘッダをクライアントに返します。

この場合，クライアントはリクエストURLのパス部分/front/cgi-bin/test-cgi.plに対して，前方一致するパス名/front/cgi-bin/のSet-Cookieヘッダを受信します。また，クライアントが受信するSet-Cookieヘッダにはドメイン名が含まれていません。これは，クライアントがリクエストしたURLのドメイン名www.example.com がSet-Cookieヘッダに指定されている場合と同じ意味となります。したがって，リバースプロキシを経由したバックエンドサーバへのリクエストに，Set-Cookieヘッダで設定したクッキーを送信させることができます。

(3)　システム構築例

リバースプロキシとバックエンドサーバにHitachi Web Serverを使用してシステムを構築する場合の設定例を次に示します。

システムの構築時には，リダイレクト処理に注意して設定する必要があります。バックエンドサーバ上のディレクトリに対し，URLの最後に/ (スラッシュ)を付けないでアクセスした場合，バックエンドサーバはLocationヘッダを付加したリダイレクト要求を返信します。このとき，Locationヘッダの値をバックエンドサーバのアドレスからリバースプロキシのアドレスに変換し，クライアントの再要求先をリバースプロキシ経由に変更する必要があります。

ここでは，システムのネットワーク構成を図4-10のように仮定しています。また各アドレスを次のように仮定しています。

リバースプロキシ：www.example.com

バックエンドサーバ：backend.example.com

図4-10　ネットワーク構成

(a)　推奨する構成

ProxyPassディレクティブに指定するホスト名，パス名と，ProxyPassReverseディレクティブに指定するホスト名，パス名は同一の値としてください。また，バックエンドサーバ側のすべてのバーチャルホストでServerNameディレクティブを指定し，その値はリバースプロキシ側のProxyPassReverseディレクティブに設定したホスト名と同一にしてください。

図4-10に示すネットワーク構成で，リバースプロキシおよびバックエンドサーバの設定を表4-6のようにした場合のリダイレクト処理の流れは，表4-7のようになります。

表4-6　推奨する構成の設定例

設定場所
設定内容

リバースプロキシ
ServerName www.example.com
ProxyPass /before/ http://backend.example.com/after/
ProxyPassReverse /before/ http://backend.example.com/after/

バックエンドサーバ
ServerName backend.example.com

表4-7　推奨する構成でのリダイレクト処理の流れ

図中の位置 | 説明
1 | "http://www.example.com/before/dir"にアクセスします。
2 | ProxyPassディレクティブの値に従い，"http://backend.example.com/after/dir"にアクセスします。また，Hostヘッダの値をbackend.example.comに書き換えて転送します。
3 | URLの末尾に /（スラッシュ）が付いていないため，URLの末尾に/ (スラッシュ) を付けたURLを作成し，それをLocationヘッダに設定してリダイレクト要求を返します。
4 | ProxyPassReverseディレクティブの値に従い，Locationヘッダを"http://www.example.com/before/dir/"に書き換えて転送します。
5 | Locationヘッダに従い，"http://www.example.com/before/dir/"に改めてアクセスします。
A | Hostヘッダの値は"www.example.com"です。
B | Hostヘッダの値は"backend.example.com"です。
C | Locationヘッダの値は"http://backend.example.com/after/dir/"です。
D | Locationヘッダの値は"http://www.example.com/before/dir/"です。

注

バックエンドサーバからの応答がステータスコード（302 Foundや404 Not Foundなど）になった場合，リバースプロキシはそのHTMLドキュメントをそのままクライアントに転送します。「404 Not Found」などのHTMLドキュメントに記載されるバックエンドサーバ名や，「302 Found」などに記載されるリダイレクト先のリンクアドレスはリバースプロキシの情報に変更されません。バックエンドサーバ側でErrorDocumentディレクティブを使用またはリバースプロキシ側でProxyErrorOverrideディレクティブを使用して，バックエンドサーバの情報をクライアントに見せないようにしてください。

(b)　リバースプロキシ側でProxyPreserveHostディレクティブにOnを設定する構成

通常，リバースプロキシはクライアントから受信したHostヘッダの値をProxyPassディレクティブの値に従って変更し，バックエンドサーバに転送します。クライアントが送信したHostヘッダの値をバックエンドサーバ側でもHostヘッダの値として取得したい場合は，リバースプロキシ側でProxyPreserveHostディレクティブの値をOnに設定します。このとき，次の点に注意してください。

バックエンドサーバ側のServerNameディレクティブには，リバースプロキシのServerNameと同じ値を指定してください。

ProxyPassReverseディレクティブに設定するホスト名は，リバースプロキシおよびバックエンドサーバのServerNameと同じ値にしてください。

図4-10に示すネットワーク構成で，リバースプロキシおよびバックエンドサーバの設定を表4-8のようにした場合のリダイレクト処理の流れは表4-9のようになります。

表4-8　リバースプロキシ側でProxyPreserveHostにOnを設定する構成の設定例

設定場所
設定内容

リバースプロキシ
ServerName www.example.com
ProxyPass /before/ http://backend.example.com/after/
ProxyPassReverse /before/ http://www.example.com/after/
ProxyPreserveHost On

バックエンドサーバ
ServerName www.example.com

表4-9　リバースプロキシ側でProxyPreserveHostにOnを設定する構成でのリダイレクト処理の流れ

図中の位置 | 説明
1 | "http://www.example.com/before/dir"にアクセスします。
2 | ProxyPassディレクティブの値に従い，"http://backend.example.com/after/dir"にアクセスします。また，ProxyPreserveHostディレクティブの値がOnに設定されているため，Hostヘッダの値はwww.example.comのままです。
3 | URLの末尾に /（スラッシュ）が付いていないため，URLの末尾に/ (スラッシュ) を付けたURLを作成し，それをLocationヘッダに設定してリダイレクト要求を返します。
4 | ProxyPassReverseディレクティブの値に従い，Locationヘッダを"http://www.example.com/before/dir/"に書き換えて転送します。
5 | Locationヘッダに従い，"http://www.example.com/before/dir/"に改めてアクセスします。
A | Hostヘッダの値は"www.example.com"です。
B | Hostヘッダの値は"www.example.com"です。
C | Locationヘッダの値は"http://www.example.com/after/dir/"です。
D | Locationヘッダの値は"http://www.example.com/before/dir/"です。

(4)　注意事項

(a)　基本的な注意事項

リバースプロキシはリクエストURLのパターンによって機能を設定します。このため，特定のリクエストはリバースプロキシとしてほかのバックエンドサーバに転送，それ以外のリクエストはリバースプロキシ自身がWebサーバとして応答するという設定もできます。しかし，このような設定は，リクエストがリバースプロキシかWebサーバかどちらで処理したかがわかりにくくなります。したがって，リバースプロキシを使用する場合は次のような設定にして，すべてのリクエストをリバースプロキシからバックエンドサーバへ転送することを推奨します。

ProxyPass / http://転送先バックエンドサーバアドレス/

リバースプロキシとWebサーバを共用する場合は，バーチャルホストで機能を分けた運用ができます。

リバースプロキシでは，クライアントから受信したHostヘッダの値をX-Forwarded-Hostヘッダに格納し，Hostヘッダの値をProxyPassディレクティブの指定値に変換してバックエンドサーバへ転送します。このため，バックエンドサーバ側のアプリケーションでクライアントが送信したHostヘッダの値を参照する場合は，リバースプロキシが送信したX-Forwarded-Hostヘッダの値を参照してください。ただし，ProxyPreserveHostディレクティブの値にOnを設定している場合は，リバースプロキシが送信したHostヘッダの値をそのまま参照してください。

リバースプロキシを経由してバックエンドサーバにアクセスする場合，バックエンドサーバが提供するHTMLコンテンツでのリンク先は，バックエンドサーバ上のURLではなく，リバースプロキシにアクセスされるURLを指定する必要があります。このほか，画像やスタイルシートなどのコンテンツの参照先URLを記述する場合も同じように注意が必要です。
（例）
次の状態にあるときに，index.htmlからindex2.htmlへリンクを張るとします。

リバースプロキシ側でProxyPassディレクティブの値が /before/ http://バックエンドサーバのアドレス/after/ と指定されている。

バックエンドサーバ側でindex.htmlとindex2.htmlが同じディレクトリ内（/after/以下）に存在する。

この場合のindex.htmlの記述方法とアクセス可否の関係を次に示します。

表4-10　リンクの記述方法とリンク可否の関係

リンクの記述 | リンクをクリックしたときのアクセス可否
<A HREF="index2.html">リンク</A> | ○
<A HREF="/before/index2.html">リンク</A> | ○
<A HREF="http://リバースプロキシのアドレス/before/index2.html">リンク</A> | ○
<A HREF="/after/index2.html">リンク</A> | ×

リバースプロキシは，HTTPバージョン0.9をサポートしていません。

(b)　ProxyPassディレクティブに関する注意事項

ProxyPassディレクティブで指定するパス名とリクエストURLは完全に等しいか，パス名がリクエストURLの先頭から含まれていれば，適合と判断します。
ただし，パス名の終端が/（スラッシュ）でない場合，リクエストURLと完全に等しいかまたは先頭からディレクトリとして含まれていれば適合と判断します。
適合すると，ProxyPassディレクティブに指定したパス名にリクエストURLの先頭からパス名と等しい部分を除いた残りの部分を追加してリクエストを転送します。
ProxyPassディレクティブに指定するパス名は終端を/（スラッシュ）で閉じたものを指定してください。次にProxyPassディレクティブの指定とリクエストの関係を次に示します。

表4-11　ProxyPassディレクティブの指定とリクエストの関係

ProxyPassディレクティブの指定例 | リクエスト | 適合可否 | リクエスト転送先
ProxyPass /abc/ http://backend.example.com/ | http://リバースプロキシのアドレス/abc/ | ○ | http://backend.example.com/
http://リバースプロキシのアドレス/abc | × | －
http://リバースプロキシのアドレス/abc/def | ○ | http://backend.example.com/def
ProxyPass /abc http://backend.example.com/ | http://リバースプロキシのアドレス/abc | ○ | http://backend.example.com/
http://リバースプロキシのアドレス/abc/ | ○ | http://backend.example.com//
http://リバースプロキシのアドレス/abc/def | ○ | http://backend.example.com//def

（凡例）

○：適合する。

×：適合しない。

－：該当しない。

ProxyPassディレクティブを複数指定し，リクエストURLが複数のパス名に一致した場合，先に指定したProxyPassディレクティブが有効になります。
（例）
/abc/def/へのリクエストを処理するバックエンドサーバ：backend1.example.com
/abc/def/以外の/abc/へのリクエストを処理するバックエンドサーバ：backend2.example.com
ほかのすべてのリクエストを処理するバックエンドサーバ：backend3.example.com
このように設定するには次の順序で指定してください。

ProxyPass /abc/def/ http://backend1.example.com/
ProxyPass /abc/ http://backend2.example.com/
ProxyPass / http://backend3.example.com/

ProxyPassディレクティブの指定によるリクエストURLはWebサーバの機能である自プロセス内の該当ファイルの検索より先に転送します。したがって，リクエストURLに適合するファイルがある場合でも，ProxyPassディレクティブのパス名に適合すれば，バックエンドサーバへのリクエストに変換して転送します。

/（スラッシュ）で閉じていないディレクトリを指定したリクエストURLの場合，リバースプロキシではリダイレクトを応答しません。

（例）ProxyPass /ab/ http://backend.example.com/　の場合

リクエストがhttp://リバースプロキシのアドレス/abのとき，適合していないと判断して，リバースプロキシ内に/abがなければ，「404 Not Found」を返します。

(c)　ProxyPassReverseディレクティブに関する注意事項

ProxyPassReverseディレクティブに指定したURLとバックエンドサーバから受信したLocationヘッダの値は，完全に等しいかまたはURLがリクエストURLの先頭から含まれていれば，適合と判断します。適合すると，アドレスをリバースプロキシとして，ProxyPassReverseディレクティブの指定に従って，クライアントに送信します。

（例）バックエンドサーバからの応答のLocationヘッダが，Location: http://バックエンドサーバのアドレス/docs/memo/の場合

ProxyPassReverseディレクティブの指定が，

ProxyPassReverse /path/ http://バックエンドサーバのアドレス/docs/

と指定されていれば，クライアントに返すLocationヘッダは

Location: http://リバ－スプロキシのアドレス/path/memo/

となります。

ProxyPassReverseディレクティブを複数指定した場合，先に指定した方が有効になります。

リバースプロキシがProxyPassReverseディレクティブの設定値に従ってLocationヘッダの値を変換してクライアントに転送する際，Locationヘッダの値のスキームは現在のコネクションで使用しているものを設定します。例えば，httpでアクセスしている場合，httpを設定します。このため，httpでアクセスしている場合にLocationヘッダでhttpsにリダイレクトさせるときは，バックエンドサーバ側でリバースプロキシのホスト名をLocationヘッダの値に設定しておくなどしてProxyPassReverseディレクティブの値と一致しないようにしてください。

(d)　HWSProxyPassReverseCookieディレクティブに関する注意事項

HWSProxyPassReverseCookieディレクティブは，バックエンドサーバが応答したSet-Cookieヘッダを変換する場合に指定します。HWSProxyPassReverseCookieディレクティブに，ProxyPassディレクティブのパス名と同じ値を指定することで，ProxyPassディレクティブ単位に設定できます。

リバースプロキシのディレクティブ指定が次のような場合のSet-Cookieヘッダの変換規則について説明します。

ProxyPass /front/ http://backend.example.com/
HWSProxyPassReverseCookie /front/

表4-12　Set-Cookieヘッダの変換規則

項番 | クライアントに応答するSet-Cookieヘッダ | バックエンドサーバが応答するSet-Cookieヘッダ | 変換規則の説明
1 | Set-Cookie: ～; path=/front/ | Set-Cookie: ～; path=/ | バックエンドサーバが応答するSet-Cookieヘッダにドメイン名が指定されていない場合は，Set-Cookieヘッダのパス名/（スラッシュ）を/front/に置き換えます。
2 | Set-Cookie: ～; path=/front/ | Set-Cookie: ～; domain=backend.example.com; path=/ | バックエンドサーバが応答するSet-Cookieヘッダのドメイン名が，ProxyPassディレクティブで指定した転送先URLのドメイン名と完全に一致している場合は，Set-Cookieヘッダのパス名/（スラッシュ）を/front/に置き換えます。また，Set-Cookieヘッダのドメイン名を削除してクライアントに返します。
3 | Set-Cookie: ～; domain=.example.com; path=/ | Set-Cookie: ～; domain=.example.com; path=/ | バックエンドサーバが応答するSet-Cookieヘッダのドメイン名が，.（ピリオド）から始まるドメイン名である場合は，バックエンドサーバが応答したSet-Cookieヘッダをそのままクライアントに返します。
4 | Set-Cookie: ～; domain=other.example.com; path=/ | Set-Cookie: ～; domain=other.example.com; path=/ | バックエンドサーバが応答するSet-Cookieヘッダのドメイン名がProxyPassディレクティブで指定した転送先URLのドメイン名と異なる場合は，バックエンドサーバが応答したSet-Cookieヘッダをそのままクライアントに返します。
5 | Set-Cookie: ～ | Set-Cookie: ～ | バックエンドサーバが応答するSet-Cookieヘッダにドメイン名およびパス名が指定されていない場合は，バックエンドサーバが応答したSet-Cookieヘッダをそのままクライアントに返します。

リバースプロキシのディレクティブ指定が次の場合に，バックエンドサーバが応答したSet-Cookieヘッダのパス名を変換する規則について説明します。

ProxyPass /front/ http://backend.example.com/abc/def/
HWSProxyPassReverseCookie /front/

バックエンドサーバが返すSet-Cookieヘッダのパス名が/abc/def/ghi/の場合
ProxyPassディレクティブの転送先URLのパス名部分が，Set-Cookieヘッダのパス名に前方から一致する場合は，一致したパス名部分をProxyPassディレクティブのパス名で置き換えます。

バックエンドサーバが返すSet-Cookieヘッダのパス名が/abc/の場合
Set-Cookieヘッダのパス名が，ProxyPassディレクティブの転送先URLのパス名部分に前方から一致する場合は，Set-Cookieヘッダのパス名としてProxyPassディレクティブのパス名で置き換えます。

バックエンドサーバが返すSet-Cookieヘッダのパス名が/abc/xxx/の場合
ProxyPassディレクティブの転送先URLのパス名部分とSet-Cookieヘッダのパス名が一致しない場合は，リバースプロキシでのSet-Cookieヘッダ変換は実行しません。バックエンドサーバが応答したSet-Cookieヘッダをそのままクライアントに返します。

(e)　性能に関する注意事項

ProxyPassディレクティブにドメイン名またはホスト名を指定している場合，DNSへの問い合わせが発生します。バックエンドサーバのIPアドレスがわかっている場合は，hostsファイルにあらかじめIPアドレスを記載しておくことによって，名前解決の時間を短縮できます。

4.8　稼働状況の表示（ステータス情報表示）

稼働中のプロセス数，待機中のプロセス数および各プロセスのステータス（R，W，Lなど）をWebブラウザに表示します（Windows版の場合はサーバスレッド数）。この情報を基に，StartServers，MinSpareServers，MaxSpareServers，MaxClientsディレクティブなどをチューニングできます（Windows版の場合はThreadsPerChildディレクティブ）。各ディレクティブの詳細は，「4.1 Hitachi Web Serverの処理とディレクティブとの関係」を参照してください。

ExtendedStatusディレクティブでOnを指定すると，より詳細な情報が表示されます。

＜この節の構成＞

(1)　server-statusハンドラの指定

(2)　URLの指定

(3)　取得できる情報

(4)　注意事項

(1)　server-statusハンドラの指定

ステータス情報の表示機能を利用するには，次に示すようにserver-statusハンドラを指定します。

<Location /server-status>
     SetHandler server-status
</Location>

ただし，Webサーバのステータス情報はアクセス制御して，エンドユーザには非公開にするのが一般的です。

(2)　URLの指定

ステータス情報を表示するには，Webブラウザから次に示す形式でURLを指定します。なお，server-statusは，タイミングによって一時的に正しく表示されない場合があります。

http://ホスト名〔:ポート番号〕/server-status〔?｛refresh=更新間隔｜auto｜notable｝〕

refresh=更新間隔，auto，notableはそれぞれ&でつないで指定できます。ただし，autoはプレーンテキスト形式であるため，notableと同時に指定するのは意味がありません。

refresh=更新間隔　((1-3600))
Webブラウザ上のステータス情報を更新する間隔を秒単位で指定します。ただし，WebブラウザがHTTPレスポンスヘッダのRefreshヘッダに対応した機能をサポートしている必要があります。指定可能範囲外の値が指定された場合は60秒が設定されます。

auto
プレーンテキスト形式で表示します。プレーンテキスト形式のため，ほかのプログラムで容易に処理できます。

notable
<TABLE>タグを用いないHTMLでステータス情報を表示します。

＜指定例＞

http://www.example.com/server-status?refresh=60&notable

＜表示例＞

http://www.example.com/server-status

このように指定した場合の，ステータス情報の表示例を次に示します。表示形式は，UNIX版とWindows版で若干異なります。

図4-11　ステータス情報の表示例

(3)　取得できる情報

ステータス情報の表示機能で取得できる情報を次に示します。ExtendedStatusディレクティブでOnを指定すると，詳細な情報を取得できます。

表4-13　ステータス情報の表示機能で取得できる情報（auto指定がない場合）

項番
内容
説明
ExtendedStatusの値と取得可否

Off
On

1
Server Version
サーバのバージョン
○
○

2
Server Built
サーバのビルド時間
○
○

3
Current Time
現在時刻
○
○

4
Restart Time
起動時刻
○
○

5
Parent Server Generation
サーバプロセスの再起動回数（初期値0）
○
○

6
Server uptime
サーバプロセスの稼働時間
○
○

7
Total accesses
合計アクセス回数
×
○

8
Total Traffic
合計通信量
×
○

9
CPU Usage: u vvv s www cu xxx cs yyy - zzz% CPU load
ユーザ時間，システム時間，子プロセスのユーザ時間，子プロセスのシステム時間，CPU使用率（UNIX版）
×
○

10
xxx requests/sec - yyy B/second - zzz B/request
1秒当たりのリクエスト数，
1秒当たりの通信量，
1リクエスト当たりの通信量
×
○

11
xxx requests currently being processed, yyy idle workers
リクエスト処理中のサーバプロセス（スレッド）数，
リクエスト待ち状態のサーバプロセス（スレッド）数
○
○

12
スコアボード
個々のスレッドの動作状況
○
○

13
Scoreboard Key
スコアボードの凡例
○
○

14
PID Key
個々のスレッドのサーバプロセスIDと動作状況
○
×

15
Srv
サーバプロセスの識別子と再起動回数
×
○

16
PID
プロセスID
×
○

17
Acc
アクセス数（コネクション単位/スレッド単位/スロット単位）
×
○

18
M
動作状況
×
○

19
CPU
CPU時間（秒）（UNIX版）
×
○

20
SS
最後の処理開始からの経過秒
×
○

21
Req
最後の処理に要したミリ秒
×
○

22
Conn
コネクションに対する通信量
×
○

23
Child
プロセスの通信量
×
○

24
Slot
スロットの通信量
×
○

25
Client
最後の処理のクライアント
×
○

26
VHost
バーチャルホスト名
×
○

27
Request
最後の処理のリクエストライン
×
○

（凡例）

○：取得できる。

×：取得できない。

表4-14　ステータス情報の表示機能で取得できる情報（auto指定がある場合）

項番 | 内容 | 説明 | ExtendedStatusの値と取得可否
Off | On
1 | Total accesses | 合計アクセス回数 | × | ○
2 | Total kBytes | 合計通信量 | × | ○
3 | CPULoad | CPU使用率（UNIX版） | × | ○
4 | Uptime | サーバプロセスの稼働時間（秒） | × | ○
5 | ReqPerSec | 1秒当たりのリクエスト数 | × | ○
6 | BytesPerSec | 1秒当たりの通信量 | × | ○
7 | BytesPerReq | 1リクエスト当たりの通信量 | × | ○
8 | BusyWorkers | リクエスト処理中のサーバプロセス（スレッド）数 | ○ | ○
9 | IdleWorkers | リクエスト待ち状態のサーバプロセス（スレッド）数 | ○ | ○
10 | スコアボード | 個々のスレッドの動作状況 | ○ | ○

（凡例）

○：取得できる。

×：取得できない。

(4)　注意事項

サーバステータス表示機能で表示される「Current Time」および「Restart Time」のタイムゾーンの情報に，マルチバイト文字が設定されることがあります。このとき，Hitachi WebServerでは，これらの文字列をすべてエスケープ（「¥x」から始まる接頭辞と16進コードで構成される文字列に置換）します。

4.9　流量制限機能

Webサーバへのアクセスの増加や，業務アプリケーションなどの影響でWebサーバの負荷が高くなった場合に，Webサイトにアクセスするユーザ数を制限するなどして，Webサービスの処理効率を維持する機能を流量制限機能といいます。

Hitachi Web Serverにmod_hws_qosモジュールを組み込めば，流量制限機能を使用できます。流量制限機能を使用すると，次に示すことができます。なお，以降の記述で「サーバプロセス数」は，Windows版の場合「サーバスレッド数」のことです。

リクエスト処理を実施するサーバプロセス数を制限すれば，Webサイトに同時にアクセスするユーザ数を制限できます。高負荷時には，制限値を超えたリクエストに対してすぐに拒否レスポンスを返したり，ほかのWebサーバへリダイレクトさせたりすれば，レスポンスタイムを維持できます。

クッキーを使用したセション管理によって，高負荷時，新しいセションを拒否し，すでにアクセスしているユーザのレスポンスタイムを維持できます。

十分なWebサービスを提供するには，同時にアクセスするユーザ数を満たすだけのサーバプロセス数が必要です。Webサーバが1台で不十分なら，複数台用意し，負荷分散機でアクセスを分散させるなどしてWebサービスを保証できるように運用設計してください。

このようにWebサービスの資源を用意しても，一時的に過負荷状態が発生する場合に備えて，流量制限機能を使用してください。mod_hws_qosによる流量制限機能の概要を次に示します。

図4-12　mod_hws_qosによる流量制限機能の概要

＜この節の構成＞

(1)　mod_hws_qosモジュールの組み込み

(2)　ディレクティブの設定方法

(3)　レスポンスメッセージ

(4)　注意事項

(1)　mod_hws_qosモジュールの組み込み

流量制限機能を使用するためにはmod_hws_qosモジュールの組み込みが必要です。mod_hws_qosモジュールを組み込むには，コンフィグファイル（httpsd.conf）に次に示すディレクティブを指定します。

UNIX版

LoadModule hws_qos libexec/mod_hws_qos.so

Windows版

LoadModule hws_qos modules/mod_hws_qos.so

(2)　ディレクティブの設定方法

流量制限機能を使用するための，各ディレクティブの設定例を次に示します。

(a)　サーバプロセス数の制限によるリクエスト拒否

次のように指定すると，リクエスト処理中のサーバスレッド数が13の場合には，新たなリクエスト要求はステータスコード503で拒否されます。

UNIX版

MaxClients 15
QOSRejectionServers 2
QOSCookieServers 0

Windows版

ThreadsPerChild 15
QOSRejectionServers 2
QOSCookieServers 0

(b)　クッキーを使用したセション管理

クッキーを使用したセション管理には，Hitachi Web Serverで作成したクッキーを使用するHWS作成モードと，Hitachi Web Server以外の外部モジュールなどで作成されたクッキーを使用するユーザ作成モードがあります。QOSCookieNameディレクティブを用いて，どちらの方式を使用するかを選択します。QOSCookieNameディレクティブの詳細については，「6.2　ディレクティブの詳細」を参照してください。

HWS作成モード

リクエスト処理を実施した場合には，Hitachi Web Serverで作成したクッキーが，レスポンスヘッダのSet-Cookieヘッダに付けられます。Hitachi Web Serverで作成したクッキーを持ったリクエスト要求は，持っていないリクエスト要求よりも優先して処理されます。

ユーザ作成モード

Hitachi Web Server以外で作成されたクッキーがレスポンスヘッダのSet-Cookieヘッダに付けられる場合に，そのクッキーを使用した流量制限が実行されます。そのクッキーを持ったリクエスト要求は，持っていないリクエスト要求よりも優先して処理されます。

次のように指定すると，リクエスト処理中のサーバスレッド数が10の場合，クッキーを持っていない新しいセションのリクエスト要求は拒否されますが，クッキーを持った継続セションは処理されます。リクエスト処理中のサーバスレッド数が13の場合は，クッキーを持っているかどうかに関係なく拒否されます。この例ではHWS作成モードで動作します。

UNIX版

MaxClients 15
QOSRejectionServers 2
QOSCookieServers 5

Windows版

ThreadsPerChild 15
QOSRejectionServers 2
QOSCookieServers 5

(c)　リダイレクト

流量制限機能によってリクエスト処理を拒否する場合には，ステータスコード503でレスポンスメッセージを返送しますが，次のように指定すると，ほかのWebサーバへリダイレクトさせることができます。/index.htmlへのリクエスト要求が流量制限機能によって拒否された場合には，www1.hitachi.co.jpのWebサーバのindex.htmlをレスポンスヘッダに設定し，ステータスコード302で返送されます。

QOSRedirect /index.html http://www1.hitachi.co.jp/index.html

(d)　レスポンスメッセージのカスタマイズ

次のように指定すると，拒否されたリクエストに対するレスポンスは，ステータスコード503で，レスポンスメッセージは，htdocs/busy.htmlの内容が返送されます。

QOSResponse file "text/html; charset=ISO-8859-1" htdocs/busy.html

(3)　レスポンスメッセージ

(a)　サーバからクライアントに送信されるクッキーについて

HWS作成モード

Hitachi Web Serverで作成したクッキーは，Set-Cookieヘッダによってクライアントへ返送されます。Set-Cookieヘッダは一つのレスポンスに複数指定できるため，ここで作成するクッキーは，ほかのクッキーに影響しません。Hitachi Web Serverで返送するSet-Cookieヘッダを次に示します。

Set-Cookie: NAME=VALUE; expires=DATE; path=/; domain=DOMAIN_NAME; secure

NAME=VALUE

NAMEにはQOSCookieNameディレクティブで指定した名称が設定されます。VALUEにはリクエスト制御用の値が設定されます。

expires=DATE

クッキーが無効となる時刻。"リクエストの受信時刻＋QOSCookieExpiresディレクティブ設定値"によって求めた値が，RFC822形式で設定されます。

path=/

クッキーが有効となるURL。このモジュールでは，クッキーが有効となるドメイン内の，すべてのURLで有効となるように設定されます。

domain=DOMAIN_NAME

クッキーが有効となるドメイン。QOSCookieDomainディレクティブで指定されます。

secure

SSLによる通信時だけ，クッキーをクライアントからサーバに送信するかどうかの指定。QOSCookieSecureディレクティブで指定されます。

ユーザ作成モード

Hitachi Web Serverではクッキーを作成しません。Hitachi Web Server以外で作成されたクッキーが，Set-Cookieヘッダによってクライアントへ返送されます。

(b)　流量制限機能によって拒否された場合のヘッダについて

流量制限機能によって拒否された場合，レスポンスメッセージをキャッシュできなくするためのヘッダであるExpiresを，レスポンスヘッダに含めます。これは，サーバ側でリクエスト処理が可能であっても，プロキシまたはブラウザでキャッシュされると，キャッシュされたメッセージがブラウザに表示されて，サーバにリクエストしない場合があるためです。また，拒否メッセージ送信後はサーバ側からコネクションを切断します。

そのほかのレスポンスヘッダは，次のように設定されます。Content-Typeには，AddDefaultCharsetで指定した文字セットが付加されます。

(i)ステータスコード503の標準メッセージ

Content-Type：text/html

(ii)QOSResponseによるカスタマイズされたメッセージ

Content-Type：QOSResponseディレクティブ指定値

(iii)QOSRedirectによるステータスコード302のメッセージ

Content-Type：text/html

Location：QOSRedirectディレクティブ指定値

(4)　注意事項

クッキーの受け付けを拒否しているクライアントは，クッキーをサーバに送信しないため，「(2)(b)　クッキーを使用したセション管理」の機能が無効となります。

KeepAliveによって接続した場合には，接続後最初のリクエストを処理するときだけ判定処理が行われ，同一接続上で2回目以降のリクエストでは判定されません。最初に接続したリクエストとは異なる流量制限設定へのリクエストである場合も，2回目以降のリクエストでは判定されません。

流量制限機能によってアクセス拒否された場合に送信されるメッセージは，ErrorDocumentディレクティブを指定しても変更されません。また，RedirectディレクティブやRedirectMatchディレクティブの処理は，mod_hws_qosモジュールの制御によって処理を継続すると判定された後に実行されます。

流量制限機能を使用しても，QOSRejectionServersディレクティブの設定数を超えた同時リクエストを受信した場合は，リクエストの拒否が正しくできないことがあります。QOSResponseディレクティブで指定されたHTMLファイルに画像データなどのリンクが含まれている場合には，画像データを取得するため，さらにアクセスします。このアクセスも流量制限処理の対象となり，画像データが取得できない場合があります。HTMLファイル作成時には，リンクの設定に注意してください。

エラードキュメントの文字セットは，Windows版ではHWSErrorDocumentMETACharsetディレクティブの設定を有効とします。

クッキーを使用したセション管理をURLごとまたはVirtualHostごとに設定する場合は，QOSCookieNameディレクティブで別の名称を指定する必要があります。

QOSCookieServersディレクティブおよびQOSRejectionServersディレクティブは，サーバプロセス数（ThreadsPerChildディレクティブまたはMaxClientsディレクティブで設定）より後ろに指定してください。サーバプロセス数よりも前に指定すると，サーバが起動できない場合があります。

4.10　ヘッダカスタマイズ機能

HTTP通信では，WebブラウザとWebサーバの間でさまざまなHTTPヘッダが用いられます。WebブラウザおよびWebサーバは，受信したHTTPヘッダから，その後の動作を決定する場合があります。WebブラウザがHTTPリクエストの送信時に付加するHTTPヘッダをリクエストヘッダ，Webサーバが応答時に付加するHTTPヘッダをレスポンスヘッダといいます。Webサーバが受信したリクエストヘッダや送信するレスポンスヘッダを追加，変更または削除して，WebサーバまたはWebブラウザに特定の動作をさせるための機能をヘッダカスタマイズ機能といいます。

Hitachi Web Serverにmod_headersモジュールを組み込むことで，ヘッダカスタマイズ機能を使用できます。

＜この節の構成＞

(1)　mod_headersモジュールの組み込み

(2)　ディレクティブの設定方法

(3)　注意事項

(1)　mod_headersモジュールの組み込み

ヘッダカスタマイズ機能を使用するためにはmod_headersモジュールの組み込みが必要です。mod_headersモジュールを組み込むには，コンフィグファイル（httpsd.conf）に次に示すディレクティブを指定します。

UNIX版

LoadModule headers_module libexec/mod_headers.so

Windows版

LoadModule headers_module modules/mod_headers.so

(2)　ディレクティブの設定方法

ヘッダカスタマイズ機能は，HeaderディレクティブおよびRequestHeaderディレクティブで指定します。ヘッダカスタマイズ機能を使用するための，ディレクティブの設定例を次に示します。

(a)　レスポンスヘッダを設定する場合

Headerディレクティブのset指示子によって，レスポンスヘッダを設定できます。ほかのモジュールですでに同じ名前のレスポンスヘッダが設定されている場合は，ヘッダ値を上書きします。

レスポンスヘッダにExpires: Sat, 1 Jan 2000 00:00:00 GMTを設定する例を次に示します。ただし，有効期限を動的に設定する場合は，有効期限設定機能を使用してください。

Header set Expires "Sat, 1 Jan 2000 00:00:00 GMT"

(b)　レスポンスヘッダを追加する場合

Headerディレクティブのadd指示子によって，レスポンスヘッダを追加できます。ほかのモジュールですでに同じ名前のレスポンスヘッダが設定されていても，別のヘッダとして設定されます。同じ名前のレスポンスヘッダを複数行設定する場合に使用します。

レスポンスヘッダにSet-Cookie: HOSTNAME=HOST1; path=/; domain=www.example.com; secureを追加する例を次に示します。

Header add Set-Cookie "HOSTNAME=HOST1; path=/; domain=www.example.com; secure"

(3)　注意事項

レスポンスヘッダのうち，Date，Server，Content-Type，Content-Length，Last-Modifiedヘッダなどは，カスタマイズできない場合があります。また，LoadModuleディレクティブでほかのモジュールを組み込んだ場合，これら以外のヘッダでもカスタマイズできない場合があります。

4.11　有効期限設定機能

Webサーバ上のコンテンツに有効期間を設定すると，その期間中，キャッシュ機能をサポートしているクライアントやプロキシサーバは，Webサーバにアクセスしないで，自身のキャッシュにアクセスするようになるため，効率的です。

Hitachi Web Serverにmod_expiresモジュールを組み込むことで，有効期限設定機能を使用できます。有効期限設定機能を使用すると，次に示すことができます。

有効期限設定機能を使用すると，レスポンスにExpiresヘッダおよびCache-Controlヘッダが追加されます。

Expiresヘッダでは有効期限がグリニッジ標準時（GMT）で設定され，Cache-Controlヘッダではmax-age指示子に，有効期限までの時間が秒単位で設定されます。

設定されたExpiresヘッダおよびCache-Controlヘッダの扱いは，クライアントやプロキシサーバに依存します。

＜この節の構成＞

(1)　mod_expiresモジュールの組み込み

(2)　ディレクティブの設定方法

(3)　注意事項

(1)　mod_expiresモジュールの組み込み

有効期限設定機能を使用するためには，mod_expiresモジュールの組み込みが必要です。mod_expiresモジュールを組み込むには，コンフィグファイル（httpsd.conf）に次に示すディレクティブを指定します。

UNIX版

LoadModule expires_module libexec/mod_expires.so

Windows版

LoadModule expires_module modules/mod_expires.so

(2)　ディレクティブの設定方法

有効期限設定機能を使用するための，ディレクティブの設定例を次に示します。

(a)　デフォルトの有効期限の設定

Webサーバ上のすべてのコンテンツを対象に，ExpiresDefaultディレクティブでデフォルトの有効期限を設定します。有効期限は，ファイルの更新時刻またはクライアントがアクセスした時刻を基準にして設定します。

次のように指定すると，クライアントがアクセスした時刻から60秒後を有効期限として，ExpiresヘッダおよびCache-Controlヘッダがレスポンスに追加されます。

ExpiresActive On
ExpiresDefault A60

ExpiresDefaultの"A"指定は，クライアントがアクセスした時刻を基準時刻としていることを示します。

(b)　MIMEタイプ別の有効期限の設定

ExpiresByTypeディレクティブでMIMEタイプ別に有効期限を設定します。ExpiresDefaultディレクティブで設定されたデフォルトの有効期限は，この設定によってMIMEタイプ別に上書きされます。有効期限は，ファイルの更新時刻またはクライアントがアクセスした時刻を基準にして設定します。

次のように指定すると，MIMEタイプがtext/htmlの場合にだけ，ファイルの更新時刻から1時間後を有効期限として，ExpiresヘッダおよびCache-Controlヘッダがレスポンスに追加されます。

ExpiresActive On
ExpiresByType text/html M3600

ExpiresByTypeの"M"指定は，ファイルの更新時刻を基準時刻としていることを示します。

(3)　注意事項

ファイルの更新時刻を基準時刻として設定する場合，ディスク上のファイルにアクセスしないリクエスト（ステータス情報を表示するリクエストなど）では，更新時刻が存在しないため，ExpiresヘッダおよびCache-Controlヘッダは追加されません。

Hitachi Web Serverで標準提供されていないモジュールを，LoadModuleディレクティブで組み込んだ場合，ExpiresヘッダおよびCache-Controlヘッダが操作されるおそれがあります。

ヘッダカスタマイズ機能を同時に使用する場合，ヘッダカスタマイズ機能ではExpiresヘッダおよびCache-Controlヘッダを操作しないでください。

4.12　静的コンテンツキャッシュ機能

ディスク上に格納されている静的コンテンツファイルをメモリ上にキャッシュし，キャッシュからブラウザに返送することで，静的コンテンツのレスポンスタイムを短縮できます。

この機能は，Windows版だけで使用できます。

＜この節の構成＞

(1)　モジュールの組み込み

(2)　ディレクティブの設定方法

(3)　ファイルのキャッシュ，キャッシュの更新およびキャッシュの削除の契機

(4)　メモリ使用量

(5)　注意事項

(1)　モジュールの組み込み

静的コンテンツキャッシュ機能を使用するには，mod_hws_cacheモジュールを組み込みます。mod_hws_cacheモジュールを組み込むには，コンフィグファイル（httpsd.conf）に次を指定します。

LoadModule hws_cache_module modules/mod_hws_cache.so

(2)　ディレクティブの設定方法

キャッシュ機能を使用するためのハンドラ名hws_cacheを，AddHandlerディレクティブまたはSetHandlerディレクティブに指定します。

(a)　特定の拡張子のファイルをキャッシュする設定

特定の拡張子のファイルをキャッシュするには，AddHandlerディレクティブを設定します。設定方法を次に示します。

<Directory "C:/Program Files/Hitachi/httpsd/htdocs">
 AddHandler hws_cache .html
</Directory>

(b)　特定のURL配下のファイルをキャッシュする設定

特定のURL配下のファイルをキャッシュするにはSetHandlerディレクティブを設定します。設定方法を次に示します。

<Directory "C:/Program Files/Hitachi/httpsd/icons">
<Files "?*">
 SetHandler hws_cache
</Files>
</Directory>

(3)　ファイルのキャッシュ，キャッシュの更新およびキャッシュの削除の契機

(a)　ファイルがキャッシュされる契機

ファイルがキャッシュされる契機を次に示します。ただし，ファイルサイズがHWSContentCacheMaxFileSizeディレクティブの設定値より大きい場合は，キャッシュされません。

キャッシュ対象のファイルがリクエストされた場合。

(b)　キャッシュが更新される契機

キャッシュが更新される契機を次に示します。ただし，ファイルサイズがHWSContentCacheMaxFileSizeディレクティブの設定値より大きい場合は，キャッシュされません。

キャッシュされているファイルの更新日時が変更された場合。

(c)　キャッシュが削除される契機

キャッシュが削除される契機を次に示します。

キャッシュされるファイルの合計サイズがHWSContentCacheSizeディレクティブで指定された値を超えた場合（このとき，最も長い間リクエストされなかったキャッシュファイルから削除されます）。

Webサーバを再起動した場合。

(4)　メモリ使用量

静的コンテンツキャッシュ機能で使用されるメモリ量の最大値は，次の計算式で算出できます。

計算式

(HWSContentCacheMaxFileSize×ThreadsPerChild)＋HWSContentCacheSize

(5)　注意事項

リバースプロキシ，CGIおよびそのほかの動的コンテンツ処理を行うURL配下のファイルをキャッシュ対象としないでください。キャッシュ対象を誤って指定すると，動的コンテンツが正常に処理されないおそれがあります。

使用例を次に示します。

ScriptAlias /cgi-bin/ "C:/Program Files/Hitachi/httpsd/cgi-bin/"
　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　＊1
LoadModule hws_cache_module modules/mod_hws_cache.so
<Directory "C:/Program Files/Hitachi/httpsd/icons/">
　　　　　　　　　　　　　　　　　　　　　　　＊2
<Files "?*">
 SetHandler hws_cache
</Files>
</Directory>

注　下線部＊1と＊2で設定されるパスを重複させないでください。

＊2を "C:/Program Files/Hitachi/httpsd/cgi-bin/" と設定した場合には，CGIプログラムが静的ファイルとして応答され，CGIプログラムの内容が漏洩するなど，予期できない結果となるおそれがあります。

4.13　複数のWebサーバ環境の生成（hwsservereditユティリティ）

バーチャルホストでなく，1台のサーバマシンで複数のWebサーバを運用する場合，各Webサーバでhttpsd.confの準備などの環境設定が必要です。この環境設定を補助するのがhwsservereditユティリティです。

＜この節の構成＞

(1)　形式

(2)　オペランド

(3)　使用方法

(4)　注意事項

(1)　形式

hwsserveredit {-add|-delete|-check} サーバ名

(2)　オペランド

-add
サーバ環境を新規作成する場合に指定します。ユティリティは要求を受け付けると，serversディレクトリの下に，指定されたサーバ名と同名のディレクトリを作成し，httpsd.confとlogsディレクトリを作成します。また，Windows版の場合は，サーバ名を用いてHitachi Web Serverをサービスとして登録します。

-delete
サーバ環境を削除する場合に指定します。ユティリティは要求を受け付けると，serversディレクトリ下のサーバ名と同名のディレクトリを削除します。また，Windows版の場合は，サーバ名のサービスを削除します。

-check
サーバ環境が構築済みかどうかを確認する場合に指定します。ユティリティは要求を受け付けると，-addオペランド要求時に作成したリソースがある場合は，サーバ起動環境構築済みと判断します。

サーバ名　～((1－(220－Hitachi Web Serverインストールディレクトリのパス長)，かつ128バイト以下))
サーバ単位にユニークな文字列を指定します。ただし，"Hitachi Web Server"は指定できません。また，文字列中の空白を取り除くと，"HitachiWebServer"となる文字列（"Hitachi WebServer"など）は指定できません。

(3)　使用方法

(a)　リソースの作成

各サーバのサーバ名を決定してから，hwsservereditユティリティを実行します。"HWS1"というサーバ名の場合は，次を指定します。

hwsserveredit -add HWS1

hwsservereditユティリティは，インストール時に作成されているserversディレクトリの下に，ディレクトリとファイルを作成します。また，Windows版の場合，ディレクトリとファイルの作成と同時に，サーバ名を使用してサービスを登録します。

次にディレクトリとファイルの構成を示します。

+httpsd
  └servers
      └HWS1
         ├conf
         │ └httpsd.conf
         └logs

(b)　httpsd.confの編集

作成されたリソースのうち，httpsd.confのディレクティブ値を変更してください。

複数環境を生成する場合には，次のディレクティブの設定値を，ほかの環境と競合しないように変更してください。

ServerNameディレクティブ

PortディレクティブまたはListenディレクティブ

UNIX版の場合は，さらに次のディレクティブの設定値を，環境に合わせて変更してください。

Userディレクティブ

Groupディレクティブ

そのほかのディレクティブは，hwsservereditユティリティによって，変更しなくても起動できるように設定されています。運用に応じて必要があれば変更してください。

なお，各ディレクティブの詳細については，「6.2　ディレクティブの詳細」を参照してください。

(c)　サーバの起動

次の方法でサーバを起動してください。

UNIX版の場合

/opt/hitachi/httpsd/sbin/httpsd -f servers/HWS1/conf/httpsd.conf

Windows版の場合

"インストール先ディレクトリ¥httpsd.exe" -n HWS1 -k start

または，コントロールパネルからHWS1サービスを起動してください。

(d)　複数サーバ環境の設定

複数サーバ環境を設定する場合は，(a)から(c)の操作を繰り返してください。

(4)　注意事項

ユティリティは，管理者権限を持つユーザで実行してください。また，ユティリティの場所は移動しないでください。

サーバ名には，ASCIIコードで指定してください。また，次に示す文字は指定できません。
'¥'，'/'，':'，','，';'，'*'，'?'，'"'，'<'，'>'，'|'，'$'，'%'，'^'，'''，'!'，'('，')'，'='，'+'，'{'，'}'，'@'，'['，']'，'~'，制御コード

サーバ名には，ピリオドだけで構成される名称は指定できません。また，名称の前後に連続した空白を指定した場合には，それらを取り除きます。

サービスへの登録時，スタートアップの種類は手動で登録します。

登録したサービスの表示名を変更しないでください。

4.14　イメージマップ

画像（画像のファイル）に複数のリンクを定義できます。その指定個所をクリックすると，その画像の座標位置やイメージマップファイル名がWebサーバにWebブラウザから送信されます。Webサーバは，そのイメージマップファイルと座標位置から対応したURLを検索して，Webブラウザに応答します。これをイメージマップといいます。

イメージマップを使用するには，imap-fileハンドラにマップファイル拡張子を対応付ける定義が必要です。

AddHandler imap-file .map

＜この節の構成＞

(1)　イメージマップファイルの文法

(2)　イメージマップの定義例

(3)　注意事項

(1)　イメージマップファイルの文法

イメージマップデータの指定形式には次の3とおりの指定があります。

形状名称 指定値 座標
形状名称 指定値 "説明文" 座標
形状名称 指定値 座標 "説明文"

"説明文"はマップファイルメニュー表示時の説明文，座標は画像の座標を示しています。

形状名称を表4-15に，指定値を表4-16に示します。

表4-15　形状名称と座標の指定形式

形状名称 | 意味 | 座標の指定 | 座標の説明
base | マップファイル内の相対URLのベースを指定。 | なし | －
default | poly，circle，rectに該当しないで，point指定もない場合のリンクを指定する。
poly | 多角形を指定する。点を3～100個指定する。 | x1,y1 x2,y2 … xn,yn | 多角形の各座標位置（3～100点の座標）
circle | 円を指定する。中心点と，円周上の１点を指定する。 | x1,y1 x2,y2 | 中心座標と円周上の1点の座標
rect | 四角形を指定する。対角の２点を指定する。 | x1,y1 x2,y2 | 対角の2点の座標
point | 点を指定する。カーソルに最も近いpointが有効になる。 | x1,y1 | 点

（凡例）

－：該当しない。

注

座標の指定で(0,0)を含んでいる場合でも，イメージマップ画像の座標(0,0)をマウスポインタでポイントすると，マップファイルメニューが表示されます。

表4-16　指定値

指定値 | 意味
URL | リンク先を指定する。相対ディレクトリの場合，base，ImapBaseディレクティブが有効になる。
map | マップファイルメニューを表示する。
menu
referer | ステータスコード302 Foundを応答する。
nocontent | ステータスコード204 No Contentを応答する。base以外に有効。
error | ステータスコード500 Server Errorを応答する。base以外に有効。

(2)　イメージマップの定義例

イメージマップを利用するための操作を次に示します。

httpsd.confファイルに，次に示すディレクティブを設定します。.map拡張子名がURLで指定されたときにイメージマップを実行します。

AddHandler imap-file .map

（ファイル拡張子.mapにimap-fileハンドラを定義）

上記で定義されたファイル拡張子のファイルにリンク先を定義します。

HTML文書内に次のHTML構文を記述します。

<A HREF="/ディレクトリ名/マップファイル名"><IMG SRC="画像データ名" ISMAP></A>

イメージマップファイルの定義例や，実際の表示例などを次に示します。

図4-13　イメージマップファイルの定義例

この例で，polyで指定された部分をクリックすると，次に示すようなマップファイルメニューが表示されます。

(3)　注意事項

マップファイルメニューで使用している文字セットが，デフォルトの文字セット(ISO-8859-1)と異なる場合は，マップファイルメニューの表示において文字化けが発生します。この場合，HWSImapMenuCharsetディレクティブで，マップファイルメニューで使用している文字セットを指定してください。

4.15　IPv6による通信

従来のIPv4による通信だけでなく，IPv6による通信ができます。IPv4またはIPv4とIPv6のデュアルスタック環境で動作させることができます。

この機能は，Linux（32ビット）およびWindows版で使用できます。

AIX，Solaris，HP-UX（IPF）およびLinux（IPF）版では使用できません。

＜この節の構成＞

4.15.1　サポート範囲

4.15.2　IPv6による通信の準備（httpsd.confファイルの編集）

4.15.1　サポート範囲

＜この項の構成＞

(1)　IPv6に対応しているディレクティブ

(2)　ディレクティブにIPv6アドレスを指定するときの注意

(3)　制限事項

(1)　IPv6に対応しているディレクティブ

ListenディレクティブやVirtualHostディレクティブなどのディレクティブに，IPv6アドレスを指定することによって，IPv6による通信やIPv6アドレスに対応したバーチャルホストの指定などができます。

IPv6に対応しているディレクティブを次に示します。

<VirtualHost>，AddIcon，AddIconByEncoding，AddIconByType，Allow from，CustomLog，DefaultIcon，Deny from，ErrorDocument，ExtendedStatus，HostnameLookups，HWSSetEnvIfIPv6，ImapBase，ImapDefault，Listen，LogFormat，NameVirtualHost，ProxyPass，ProxyPassReverse，QOSCookieDomain，QOSRedirect，Redirect，RedirectMatch，ServerAlias，ServerName，ServerSignature，SetEnvIf，SetEnvIfNoCase，TransferLog，UseCanonicalName

各ディレクティブの詳細については，「6.2　ディレクティブの詳細」を参照してください。

(2)　ディレクティブにIPv6アドレスを指定するときの注意

ディレクティブにIPv6アドレスを記述する場合は，「[IPv6アドレス]」のようにIPv6アドレスを[　]で囲んで指定してください。また，ディレクティブにIPv6アドレスとポート番号を併記する場合は，「[IPv6アドレス]:ポート番号」のようにIPv6アドレスを[　]で囲み，「:」の後ろにポート番号を指定します。

ただし，次のディレクティブにIPv6アドレスを記述する場合は，IPv6アドレスを[　]で囲まないで指定してください。

Allow fromディレクティブ

Deny fromディレクティブ

HWSSetEnvIfIPv6ディレクティブ

なお，IPv6アドレスを指定する場合は，リンクローカルアドレスを指定できません。サイトローカルアドレスまたはグローバルアドレスを指定してください。

(3)　制限事項

次の機能については，IPv6には対応していません。

SSL通信の一部

SSLCacheServerPortディレクティブにポート番号を指定している場合，Webサーバ本体とgcacheサーバとの間は，IPv4による通信を行います。IPv6による通信はできません。

なお，IPv6ソケットを使用したSSL通信はできます。

ディレクトリサービス（LDAPサーバ）

LDAPServerNameディレクティブには，IPv6アドレスまたはIPv6アドレスに対応したホスト名は指定できません。

アドレス制限

BindAddressディレクティブには，IPv6アドレスは指定できません。

クライアントの確認

IdentityCheckディレクティブにOnを指定しても，IPv6ソケットを使用している場合は機能しません。

環境変数の設定

SetEnvIfディレクティブとSetEnvIfNoCaseディレクティブの正規表現には，IPv6アドレスを指定できません。IPv6アドレスを指定する場合は，HWSSetEnvIfIPv6ディレクティブを使用してください。

crldownloadユティリティ

「-h ホスト名」には，IPv6アドレスまたはIPv6アドレスに対応したホスト名は指定できません。

4.15.2　IPv6による通信の準備（httpsd.confファイルの編集）

IPv6アドレスの指定

httpsd.confファイルにPortディレクティブまたはポート番号だけのListenディレクティブを指定した場合は，IPv4アドレスを使用したリクエストだけを受け付けます。IPv6アドレスを使用する場合は，IPv6アドレスを指定したListenディレクティブの設定が必要です。

例えば，次のように設定すると，IPv4アドレスまたはIPv6アドレスを使用したリクエストを受け付けるようになります。

Listen 80
Listen [::]:80

5.　SSLによる認証，暗号化

この章では，SSLによる認証，暗号化について説明します。

＜この章の構成＞

5.1　SSLで認証，暗号化する

5.2　証明書取得手順

5.3　CRLの運用

5.4　パスワード付きサーバ秘密鍵の使用

5.1　SSLで認証，暗号化する

Hitachi Web ServerはSSL（Secure Sockets Layer）プロトコルを使用すれば，送受信する情報を保全できます。Hitachi Web ServerはSSLバージョン2，バージョン3およびTLS（Transport Layer Security）バージョン1に対応しており，SSLサーバ認証，SSLクライアント認証ができます。SSLの機能を次に示します。

通信相手を確認し，特定するために認証します。

サーバとクライアントの間で転送するデータを暗号化します。

転送中に改ざんされたデータを検出します。

これらの機能はSSL関連ユティリティで作成された秘密鍵と，認証局（CA）が発行した証明書をWebサーバにインストールすれば，利用できます。

＜この節の構成＞

5.1.1　SSL通信のための準備

5.1.2　SSL通信の手順

5.1.3　SSLでの暗号強度について

5.1.4　SSLセション管理

5.1.5　SSLクライアント認証の準備

5.1.6　証明書の有効性の検証

5.1.1　SSL通信のための準備

SSLによる認証や，データの暗号化を使用するには，Webサーバに秘密鍵と認証局（CA）が発行した証明書をインストールする必要があります。

手順を次に示します。

秘密鍵の作成
sslckey genrsaユティリティを使用して，Webサーバの秘密鍵を作成します。

CSR（証明書発行要求）の作成
sslccert reqユティリティを使用して，CSRを作成します。

CAへCSRを送付
2.で作成したCSRをCAに送付します。

証明書の入手
PEM形式の証明書をCAから入手します。

httpsd.confファイルの編集（ディレクティブの定義）
SSLを有効にするために，SSLEnableディレクティブを指定します。CAから入手したPEM形式の証明書はSSLCertificateFileディレクティブ，Webサーバの秘密鍵はSSLCertificateKeyFileディレクティブに指定します。

（例）SSLを有効にして，PEM形式の証明書およびWebサーバの秘密鍵を定義

UNIX版の場合

SSLEnable
SSLCertificateFile /opt/hitachi/httpsd/conf/ssl/server/httpsd.pem
SSLCertificateKeyFile /opt/hitachi/httpsd/conf/ssl/server/httpsdkey.pem

Windows版の場合

SSLEnable
SSLCertificateFile "C:/Program Files/Hitachi/httpsd/conf/ssl/server/httpsd.pem"
SSLCertificateKeyFile "C:/Program Files/Hitachi/httpsd/conf/ssl/server/httpsdkey.pem"

SSLを使用して通信する場合，Webブラウザからは，https://でリクエストします。ポート番号を省略した場合，SSLの標準では443ポートを使用します。したがって，PortまたはListenディレクティブで443ポートを指定するのが一般的です。

Webサーバの再起動
httpsd.confファイルの定義を有効にするには，Webサーバを再起動する必要があります。ただし，SSLCertificateKeyFileディレクティブの設定を変更した場合は，いったん，Webサーバを停止後，起動し直してください。

SSLを無効にする場合には，5.の指定を無効化し，SSLDisableディレクティブを指定して再起動します。

＜この項の構成＞

(1)　Red Hat Enterprise Linux 5 Advanced Platform (AMD/Intel64)，Red HatEnterprise Linux 5 (AMD/Intel64)でSSLを使用する場合

(1)　Red Hat Enterprise Linux 5 Advanced Platform (AMD/Intel64)，Red HatEnterprise Linux 5 (AMD/Intel64)でSSLを使用する場合

(a)　Hitachi Web Serverの起動方法

以下に示すどちらかの方法でHitachi Web Serverを起動してください。

オプション「-D HWS_OPTION_HWS2」を指定する方法
Hitachi Web Serverの起動時に，オプション「-D HWS_OPTION_HWS2」の指定を追加します。
/opt/hitachi/httpsd/sbin/httpsd 〔HWS オプション〕〔-D HWS_OPTION_HWS2〕
HWS オプション：マニュアル記載されているhttpsdに指定可能なオプション
-D HWS_OPTION_HWS2：Red Hat Enterprise Linux 5 Advanced Platform (AMD/Intel64)またはRed Hat Enterprise Linux 5 (AMD/Intel64)でSSLを使用するための専用オプション

環境変数「HWS_OPTION_HWS2」を設定する方法
Hitachi Web Serverを起動するシェルの環境変数として「HWS_OPTION_HWS2=1」が指定されている場合，SSLを使用することができます。環境変数「HWS_OPTION_HWS2」が指定されていない場合，または「HWS_OPTION_HWS2」に1以外の値が指定されている場合は，SSLは使用できません。

(b)　起動確認方法

5.1.1(1)に示す方法でHitachi Web Server を起動した後，エラーログに以下のメッセージが出力されていることを確認してください。

［時刻情報］［notice］Hitachi Web Server configured --resuming normal operations

［時刻情報］［notice］Server built:サーバのビルド時刻

［時刻情報］［notice］Parent 制御プロセスID:Using config file "コンフィグファイル名"

［時刻情報］［notice］Special option:HWS2

(c)　ユティリティ

以下の標準ユティリティの代わりに，変更後ユティリティを実行してください。マニュアル内の標準ユティリティに関する記載は，変更後ユティリティに関する記載として読み替えてください。

標準ユティリティ | 変更後ユティリティ
sslpasswd | sslpasswd2
sslckey | sslckey2
sslccert | sslccert2

標準ユティリティと変更後ユティリティを組み合わせて使用することはできません。例えばsslckeyユティリティで作成した鍵ファイルを，sslccert2ユティリティの引数に使用することはできません。

(d)　注意事項

対象となるプラットフォームはRed Hat Enterprise Linux 5 Advanced Platform(AMD/Intel64)，またはRed Hat Enterprise Linux 5 (AMD/Intel64)のみです。Red HatEnterprise Linux 5 Advanced Platform (x86)またはRed Hat Enterprise Linux 5(x86)ではSSLは使用できません。

Red Hat Enterprise Linux 4 Advanced Platform (AMD/Intel64)，またはRed HatEnterprise Linux 4 (AMD/Intel64)でSSLを使用する場合は，「5.1.1(1)Red HatEnterprise Linux 5 Advanced Platform (AMD/Intel64)，Red Hat EnterpriseLinux 5 (AMD/Intel64)でSSLを使用する場合」に記載された内容を実行しないでください。通常の起動方法でSSLを使用することができます。

httpsdctlユティリティを用いて再起動・停止処理を実施する場合は，httpsdctlを実行するシェルの環境変数に「HWS_OPTION_HWS2=1」を設定してください。

5.1.2　SSL通信の手順

SSL通信の手順を次に示します。2～6の手順をSSLでのハンドシェイクと呼びます。

Webブラウザから，https://へのリクエストを実行します。

Webブラウザは，使用できるSSLのバージョンや暗号種別を示すデータをWebサーバに送付します。

Webサーバは，使用するSSLのバージョンと暗号種別を決定し，Webブラウザに通知します。また，公開鍵とCAの署名が入った証明書をWebブラウザに送付します。

WebブラウザはWebブラウザが持っているCAの公開鍵を使用して，送付された証明書が改ざんされていないことを確認して，Webサーバの公開鍵を入手します。

Webブラウザは，通信でWebサーバと共有する対称鍵を作成し，Webサーバの公開鍵で暗号化して送信します。また，Webブラウザが持っている証明書をクライアント認証のためにWebサーバに提示する場合，証明書を送信します。
Webサーバの公開鍵で暗号化したデータは，対になる秘密鍵がないと復号できません。つまり，データ送信先のWebサーバだけがデータの内容を解読できます。

Webサーバは受信した対称鍵をWebサーバの秘密鍵で復号し，入手します。Webブラウザからの証明書を受信した場合は，証明書を確認します。

Webブラウザと，Webサーバの間で共有された対称鍵を使用して，HTTPリクエストまたはレスポンスを暗号化し，送受信します。

SSL通信でのリクエスト処理を次に示します。

図5-1　SSL通信でのリクエスト処理

5.1.3　SSLでの暗号強度について

SSLでは，ハンドシェイクの際に，クライアント側とWebサーバ側の両方に有効であり，最も強い強度の暗号が選択されます。Webサーバ側の暗号種別は，SSLRequiredCiphersディレクティブで指定します。この指定で，常にすべての暗号種別を有効にしておけば，クライアントが持つ最も強い強度の暗号で通信できることになります。

Hitachi Web Serverは，128bit RC4，256bit AESなどの強い暗号強度をサポートしています。強い暗号強度対応のSSLサーバ証明書も使用できます。

5.1.4　SSLセション管理

現在多くのWebブラウザは，SSLセションを用いてハンドシェイクを簡略化する機能を実装しています。ブラウザ側のこの機能とWebサーバ側のSSLセション管理機能を用いることで，SSLによる通信性能の向上を図れます。

UNIX版とWindows版では，SSLセションを管理する方法が異なります。UNIX版では，SSLセションを管理するサーバ（gcacheサーバといいます）を使用します。gcacheサーバでは，指定したポートまたはファイルを通じて，SSLセションID，有効期限およびそのセションについての情報を受信して，管理します。gcacheサーバによって，Hitachi Web Serverのリクエスト処理プロセス間でSSLセションIDなどのデータを共有できます。Windows版では，Webサーバの構造上，gcacheサーバを使用しないでSSLセションを管理します。

＜この項の構成＞

(1)　UNIX版の場合

(2)　Windows版の場合

(1)　UNIX版の場合

(a)　gcacheサーバの起動・停止

SSLが有効な状態にし，かつgcacheサーバを起動するために必要なディレクティブを指定してHitachi Web Serverを起動すると，gcacheサーバが起動されます。SSLが有効な状態とは，SSLEnableディレクティブを指定しているかまたはSSLDisableディレクティブを指定していないホスト（バーチャルホストを含めて）がある状態のことです。

gcacheサーバを起動するには，次のディレクティブの指定が必要です。

SSLCacheServerPath

SSLCacheServerPort

また，Webサーバを停止すると，同時にgcacheサーバも停止します。Webサーバを再起動すると gcacheサーバはいったん停止し，その後，起動します。

(b)　セション管理領域

SSLのセションを確立すると，そのセション情報はgcacheサーバとWebサーバプロセス内にキャッシュされます。gcacheサーバのキャッシュ領域のサイズはSSLSessionCacheSizeディレクティブ，Webサーバプロセス内キャッシュはSSLSessionCacheSizePerChildディレクティブで指定できます。

SSLSessionCacheSizeディレクティブに0を指定した場合，SSLセション管理は機能しません。

SSLセションの有効時間はSSLSessionCacheTimeoutディレクティブの指定値かまたはキャッシュサイズがSSLSessionCacheSizeディレクティブで指定したキャッシュサイズに達するまでの時間のどちらか短い方になります。

キャッシュサイズがSSLSessionCacheSizeディレクティブで指定したキャッシュサイズに達した場合，新しいセション情報を保持するメモリ領域が確保できるまで，古いセション情報から順に削除されます。

キャッシュされたセション情報は次回以降のセション確立の際に再利用することで，SSLのハンドシェイクを簡略化します。

(c)　注意事項

セションIDなどのデータは，Webサーバまたはgcacheサーバが停止するとクリアされます。

gcacheサーバが異常停止した場合には，SSLセションは維持できません。ただし，Webサービスは停止しません。

セキュリティの関係上，Webサーバ間でgcacheサーバの共用はできません。そのため，Webサーバ間のSSLセション共有はできません。

SSLSessionCacheSizeディレクティブに0を指定した場合，gcacheサーバは起動しません。

セションキャッシュ領域はバーチャルホストごとに分かれません。

(2)　Windows版の場合

(a)　セション管理領域

SSLのセションを確立すると，そのセション情報はWebサーバプロセス内にキャッシュされます。このキャッシュ領域のサイズはSSLSessionCacheSizeディレクティブで指定できます。SSLSessionCacheSizeディレクティブに0を指定した場合，SSLセション管理は機能しません。

SSLセションの有効時間はSSLSessionCacheTimeoutディレクティブの指定値かまたはキャッシュサイズがSSLSessionCacheSizeディレクティブで指定したキャッシュサイズに達するまでの時間のどちらか短い方になります。

キャッシュされたセション情報は次回以降のセション確立の際に再利用することで，SSLのハンドシェイクを簡略化します。

(b)　注意事項

セションIDなどのデータは，Webサーバを停止するとクリアされます。

セションキャッシュ領域はバーチャルホストごとに分かれません。

5.1.5　SSLクライアント認証の準備

SSLクライアント認証をする場合は，「5.1.1 SSL通信のための準備」の1～5に加えて，次の操作をして，再起動してください。

クライアント証明書をWebブラウザにインストール
証明書の発行に使用するCAの指示に従い，Webブラウザにクライアント証明書をインストールします。

CAの証明書の入手
クライアント証明書を発行したCAの証明書（PEM形式）を入手します。

httpsd.confファイルの編集（ディレクティブの定義）
SSLクライアント認証を有効にするために，SSLVerifyClientに2を指定し，SSLVerifyDepthディレクティブに2以上を指定します。CAから入手したPEM形式の証明書は，SSLCACertificateFileまたはSSLCACertificatePathディレクティブに指定します。

注

SSLCACertificatePathディレクティブはWindows版では指定できません。

5.1.6　証明書の有効性の検証

SSLクライアント認証のときに，クライアント証明書の検証だけでなく，その時点のクライアント証明書の有効性をCRL（Certificate Revocation List）を使用して検証できます。CRLは，検証したいクライアント証明書を発行したCAから入手します。

＜この項の構成＞

(1)　CRLファイルの形式

(2)　Hitachi Web ServerへのCRL適用方法

(3)　CRLを使用したクライアント証明書検証

(1)　CRLファイルの形式

CRLはDER形式またはPEM形式のファイルを使用します。DER形式のCRLはバイナリ形式のファイルで，PEM形式のCRLはそれをBase64エンコード処理し，データの前後に，"-----BEGIN X509 CRL-----"，"-----END X509 CRL-----"というタグを付けたものです。

（例）PEM形式のCRL

C:¥Program Files¥Hitachi¥httpsd¥conf¥ssl¥crl¥PEM>type crl.pem
-----BEGIN X509 CRL-----
MIIBGDCBwwIBATANBgkqhkiG9w0BAQQFADB0MQswCQYDVQQGEwJKUDERMA8GA1UE
CBMIS2FuYWdhd2ExFTATBgNVBAcTDFlva29oYW1hLXNoaTERMA8GA1UEChMITE9D
QUwtQ0ExDDAKBgNVBAsTA2NhMTEaMBgGA1UEAxMRY2ExLmhpdGFjaGkuY28uanAX
DTAxMDgyOTA0NDIzMFoXDTAxMDgzMDA1NTIzMFowGzAZAghx2Sa8AAAAARcNMDEw
ODI4MDQ1MTI5WjANBgkqhkiG9w0BAQQFAANBAJorY7DUJ91uthNlAA+PT6zw6rVo
uZLFeYZPNVXgF217YOCtJtKDT+16bR5kgk0p/1xIbgReshjMNTmXPqARNjE=
-----END X509 CRL-----

(2)　Hitachi Web ServerへのCRL適用方法

CRLを使用してクライアント証明書の有効性を検証する場合は，「5.1.5　SSLクライアント認証の準備」に加えて，次の操作をして，Webサーバを再起動してください。

CRLの入手
各CAのCRL配布点からCRLファイルを入手し，適切なディレクトリに格納します。CRLをLDAPサーバで管理する場合は，crldownloadユティリティを利用できます。

httpsd.confの編集（ディレクティブの定義）
CRLを有効にするために，CRLファイルを格納したディレクトリをSSLCRLDERPathまたはSSLCRLPEMPathディレクティブに設定します。

Webサーバを起動または再起動します。

既存のCRLを更新する場合には，ディレクトリに格納されている古いCRLを削除して新規CRLを追加するかまたは古いCRLを新規CRLで上書きした後，Webサーバを再起動します。

CRLを新規に追加した場合，CRLを削除した場合にも，Webサーバを再起動してください。

(3)　CRLを使用したクライアント証明書検証

CRLを使用したクライアント証明書検証では次の項目を確認します。

CRL自体が有効であるかどうか。

次回発行日より前かどうか。

クライアント証明書のシリアル番号が記載されていないかどうか。

(a)　CRLクライアント証明書検証でクライアント証明書が有効と判定される条件

CRLクライアント証明書検証でクライアント証明書が有効と判定される条件には次に示すものがあります。

証明書を発行したCAが発行したCRLを読み込んでいない場合。

現在時刻がCRLの次回発行日より前であり，かつ該当する接続のクライアント証明書のシリアル番号がCRLに記載されていない場合。

現在時刻がCRL発行日より後で，次回発行日が指定されてなく，かつCRLに該当する接続のクライアント証明書のシリアル番号が記載されていない場合。

現在時刻がCRLの次回発行日以後で，CRLに該当する接続のクライアント証明書のシリアル番号が記載されてなく，かつSSLCRLAuthoritativeディレクティブがOffに設定されている場合。

(b)　CRLクライアント証明書検証でクライアント証明書が無効と判定される条件

CRLクライアント証明書検証でクライアント証明書が無効と判定される条件には次に示すものがあります。

CRLが有効でない場合。

該当する接続のクライアント証明書のシリアル番号がCRLに記載されている場合。

現在時刻がCRL次回発行日以後であり，該当する接続のクライアント証明書のシリアル番号がCRLに記載されてなく，かつSSLCRLAuthoritativeディレクティブがOnに設定されている場合。

5.2　証明書取得手順

証明書を取得するまでの手順を次に示します。

図5-2　証明書取得手順

上の図の手順でCAの署名済みの証明書ファイルを取得したあと，証明書ファイルの"-----BEGIN CERTIFICATE-----"から，"-----END CERTIFICATE----"の部分を別ファイルに保存します（標準提供のhttpsd.confではhttpsd.pem）。このファイルをSSLCertificateFileディレクティブに定義することで，SSLが利用できるようになります。

sslckey
SSLを利用する場合の証明書取得に必要なWebサーバの秘密鍵を作成するユティリティ

sslccert
SSLを利用する場合の証明書取得に必要な証明書発行要求(CSR)を作成するユティリティ

＜この節の構成＞

5.2.1　Webサーバの秘密鍵の作成

5.2.2　証明書発行要求（CSR）の作成

5.2.3　証明書発行要求（CSR）の内容表示

5.2.4　証明書の内容表示

5.2.5　証明書の形式変換

5.2.6　ハッシュリンクの作成（UNIX版）

5.2.7　sslckeyユティリティおよびsslccertユティリティの使用例

5.2.8　プロンプトモードでのsslckeyユティリティおよびsslccertユティリティの実行

5.2.1　Webサーバの秘密鍵の作成

sslckey genrsaユティリティを使用して，Webサーバの秘密鍵を作成します。作成したWebサーバの秘密鍵のファイルは，SSLCertificateKeyFileディレクティブに指定します。

＜この項の構成＞

(1)　形式

(2)　オペランド

(3)　使用例

(1)　形式

sslckey genrsa -rand ファイル名〔:ファイル名…〕 〔-des｜-des3〕-out 鍵ファイル 〔512｜1024｜2048〕

(2)　オペランド

-rand ファイル名〔:ファイル名…〕
乱数生成に利用する任意のファイルを指定します。乱数生成用のファイルは，十分大きい適当なファイル（例：C:¥WINNT¥NOTEPAD.EXE）を指定してください。Windows版では，ファイル名は一つだけ指定できます。複数指定はできません。

〔-des｜-des3〕
秘密鍵を暗号化する場合，暗号種別を指定します。このオペランドを指定すると，秘密鍵作成時にパスワードの入力要求があります。パスワードは128文字以内です。
また，証明書発行要求（CSR）の作成時（「5.2.2　証明書発行要求（CSR）の作成」参照）およびWebサーバ起動時にパスワードの入力要求があります。なお，Webサーバ起動時のパスワードの入力は省略できます（「5.4　パスワード付きサーバ秘密鍵の使用」参照）。-desを指定した場合，暗号種別としてDES(Data Encryption Standard)が選択されます。-des3を指定した場合，トリプルDESが選択されます。WebサーバとWebブラウザ間の通信での暗号種別とは関係ありません。

-out　鍵ファイル
Webサーバの秘密鍵を出力するファイルを指定します。

〔512｜1024｜2048〕
作成するWebサーバの秘密鍵のビット長を指定します。

(3)　使用例

Webサーバの秘密鍵httpsdkey.pemを作成します。

sslckey genrsa -rand file1:file2:file3:file4:file5 -out demoCA/httpsdkey.pem 1024

file1，file2，file3，file4，file5：任意のファイル

5.2.2　証明書発行要求（CSR）の作成

sslccert reqユティリティを使用して，証明書発行要求（CSR）を作成します。ここで作成したCSRファイルをCAに提出して，署名済みの証明書を発行してもらいます。CSRは，PKCS#10に準拠した形式で作成されます。

＜この項の構成＞

(1)　形式

(2)　オペランド

(3)　使用例

(4)　注意事項

(1)　形式

sslccert req -config コンフィグファイル -new 〔-MD5｜-SHA1〕 -key 鍵ファイル -out CSRファイル

(2)　オペランド

-config コンフィグファイル
sslc.cnfファイルを指定します。sslccert reqユティリティ実行時にCountry Name（国名コード），Locality Name（市町村名）などの情報の入力要求があります。sslc.cnfファイルの定義内容を使用する場合は入力する必要はなく，そのままEnterキーを押してください。sslc.cnfファイルに定義されていない場合またはsslc.cnfファイルの定義内容とは異なる指定をする場合は，入力要求時に指定してください。また，Country Name（国名コード），Locality Name（市町村名）などの情報を指定しない場合は，"."（ピリオド）を1文字だけ入力し，Enterキーを押してください。

〔-MD5｜-SHA1〕
CSR作成時に使用する署名アルゴリズムを指定します。
　　-MD5 ：md5WithRSAEncryptionを使用します。
　　-SHA1：sha1WithRSAEncryptionを使用します。

-key 鍵ファイル
Webサーバの秘密鍵のファイルを指定します。

-out CSRファイル
作成したCSRを出力するファイルを指定します。

(3)　使用例

Webサーバの秘密鍵httpsdkey.pemを作成します。

sslccert req -config demoCA/sslc.cnf -new -SHA1 -key demoCA/httpsdkey.pem -out demoCA/httpsd.csr

demoCA/httpsdkey.pem：鍵ファイル

demoCA/httpsd.csr：CSRファイル

(4)　注意事項

Webサーバの名称とテスト用CAの名称を同じものにすると，ブラウザのセキュリティチェックによって正しいSSL接続ができません。CSR作成時とテスト用CAの証明書作成時のOrganization Name，Organization UnitName，Common Nameなどは，異なるフレーズを設定してください。

5.2.3　証明書発行要求（CSR）の内容表示

証明書発行要求（CSR）の内容を表示します。

＜この項の構成＞

(1)　形式

(2)　オペランド

(3)　使用例

(1)　形式

sslccert req -in CSRファイル -text

(2)　オペランド

-in CSRファイル
表示するCSRファイルを指定します。

(3)　使用例

sslccert req -in demoCA/httpsd.csr -text

demoCA/httpsd.csr：表示するCSRファイル

5.2.4　証明書の内容表示

証明書ファイルの内容を表示します。

"-----BEGIN CERTIFICATE-----"から，"-----END CERTIFICATE----"の証明書ファイルの内容を表示します。

＜この項の構成＞

(1)　形式

(2)　オペランド

(3)　使用例

(1)　形式

sslccert x509 -in 証明書ファイル -text

(2)　オペランド

-in 証明書ファイル
表示する証明書ファイルを指定します。

(3)　使用例

sslccert x509 -in demoCA/httpsd.pem -text

demoCA/httpsd.pem：表示する証明書ファイル

5.2.5　証明書の形式変換

証明書の形式を変換します。必要に応じて使用します。

＜この項の構成＞

(1)　形式

(2)　オペランド

(1)　形式

sslccert x509 -inform 入力形式 -outform 出力形式 -in 入力ファイル -out 出力ファイル

(2)　オペランド

-inform 入力形式
入力形式：｛DER｜PEM｝

-outform 出力形式
出力形式：｛DER｜PEM｝

-in 入力ファイル
変換前の証明書ファイルを指定します。

-out 出力ファイル
変換後の証明書ファイルを指定します。

5.2.6　ハッシュリンクの作成（UNIX版）

証明書の妥当性チェックのために，証明書を発行したCAの証明書をSSLCACertificateFileディレクティブまたはSSLCACertificatePathディレクティブで指定します。SSLCACertificatePathディレクティブには，証明書発行元のCAの証明書をポイントするハッシュ値を使用したシンボリックリンク（ハッシュリンク）を格納したディレクトリを指定します。ハッシュ値はsslccert x509ユティリティで作成します。

SSLCACertificatePathディレクティブを指定すると，Webサーバでの証明書の検索はハッシュ値を用いて効率良く実行できます。したがって，CAの証明書が多い場合は，SSLCACertificateFileディレクティブよりもSSLCACertificatePathディレクティブを推奨します。なお，ハッシュ値は一つの証明書に一つである必要があるので，ハッシュリンク作成時には，複数の証明書が混在したファイルは指定できません。

SSLCACertificatePathディレクティブで指定するハッシュリンクディレクトリ内のシンボリックリンク生成時には，ハッシュ値に.0を付ける必要があります。また，SSLCACertificatePathディレクティブで指定するディレクトリは，User，Groupディレクティブで指定したユーザでアクセスできるように，ディレクトリに読み込み権限，実行権限を設定してください。

＜この項の構成＞

(1)　形式

(2)　オペランド

(3)　使用例

(1)　形式

sslccert x509 -noout -hash < CAの証明書ファイル

(2)　オペランド

CAの証明書ファイル
ハッシュリンク値を作成するCAの証明書ファイルを指定します。

(3)　使用例

ハッシュリンクのディレクトリおよびCAの証明書が次に示すディレクトリ，ファイルの場合の例を示します。

/opt/hitachi/httpsd/conf/ssl/cacerts：ハッシュリンクディレクトリ

/opt/hitachi/httpsd/sslc/bin/demoCA/cacert.pem：CAの証明書

cd /opt/hitachi/httpsd/conf/ssl/cacerts
ln -s /opt/hitachi/httpsd/sslc/bin/demoCA/cacert.pem `sslccert x509 -noout -hash < /opt/hitachi/httpsd/sslc/bin/demoCA/cacert.pem`.0

これによって，/opt/hitachi/httpsd/sslc/bin/demoCA/cacert.pemについてのハッシュリンク xxxxxxxx.0が作成されます。

5.2.7　sslckeyユティリティおよびsslccertユティリティの使用例

sslckeyユティリティおよびsslccertユティリティの使用例を示します（ただし，使用例はWindows版の例です）。なお，この例で使用しているCommon Name，Email Addressなどは，すべて架空のものです。

＜この項の構成＞

(1)　秘密鍵の作成（sslckeyユティリティ）

(2)　証明書発行要求（CSR）の作成（sslccertユティリティ）

(1)　秘密鍵の作成（sslckeyユティリティ）

秘密鍵の生成の使用例を次に示します。

使用例

C:¥Program Files¥Hitachi¥httpsd¥sslc¥bin>sslckey genrsa -rand file -des3 -out demoCA/httpsdkey.pem 1024
Loading 'entropy' into random state - 67144 semi-random bytes loaded
Generating 2 prime RSA private key, 1024 bit long modulus
...+++++
...+++++

e is 65537 (0x10001)
Enter PEM pass phrase:               <--- 4文字以上のパスワードを入力する
Verifying password - Enter PEM pass phrase:         <--- 再入力する

注　-randオペランドの指定値fileには，適当なファイルを指定してください。

秘密鍵の内容

秘密鍵の内容を，次に示します。

-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,838F6F481ABB2A00

Hvzt8P1deXb6+kEAU2TW8zS5eeXfQwh7ZrhNwATsVvDJp+MIg3gTP6aBHqoF4mve
5mC3PROTakKYe12Sard63kZujRrGo+Lp70E5ZYKuagKh7TrySWfIICFezsVwXewP
XrDMx2gtLzK9mz2/4ZzQ/bykaByhKXeCVqvRhkRGmGy40DU5ja+h3jTLw5C0YUDm
AVf/OBwKWNGPB3Aua7e801csEECENRbWmRs2MCzVt4c3+iRgovRbDC1A1+pGtjL2
WFa4z8JHumsCCqGSUYMHDFIkpi3yJYDEsRN4obj5qnEnq3mG9CngZg5SPBYQFGTR
udXCOT+iOREi4iGH/Wft1IJUi9OPm94dJ+UmMOXJAZfN8wN3ATbhqaVyzftV9Tvt
MZhxiaGASTaJii6KQDXgjDLGQntUtx5jkILDRYA7f/EOoXGFuqTf2s9JNmThg6IU
CK3Ud5XYM0fhi/5y5PoeiyFFuuQWZz5bLYX8IZ0YE3KKhzfZuCsCrCdIlfGBm6s+
Degs/5IB+xUOm2zFoiH6n4wP39QI23TQTsE4hQkgkFLfAg2FUNYN0cGRWU4hJllY
hYcrxXrqkwEsiB3VDCgvSsiknZyNhdZKQzKQXJGKFdekZzrUVIv+QPrjwjG9ELTR
FPBoa4deumyyIeb90A4SKNS8wbFkgI9lKWXU7/87pg6D55Geya+WguzqbKAqizse
CU02ou1HmtNofufc8Gk9xRl4MyGehb/RicVwM3IdU1tp6OLImxNzcUsM2SrqwFZz
L/u9EK9ByzmuQlUzVRe+4UG8wNrEnD5t/405Ukoug7JzgA7s2b4Flw==
-----END RSA PRIVATE KEY-----

(2)　証明書発行要求（CSR）の作成（sslccertユティリティ）

sslccert reqユティリティを使用して，証明書発行要求（CSR）を作成します。ここで作成したCSRファイルをCAに提出して，署名済みの証明書を発行してもらいます。なお，Webサーバの秘密鍵作成時にパスワードを設定した場合は，CSR作成時に秘密鍵のパスワードの入力要求があります。

設定する項目および内容は，CSRを提出するCAの指示に従ってください。

使用例

C:¥Program Files¥Hitachi¥httpsd¥sslc¥bin>sslccert req -config demoCA/sslc.cnf -new -SHA1 -key demoCA/httpsdkey.pem -out demoCA/httpsd.csr
Using configuration from demoCA/sslc.cnf
Enter PEM pass phrase:                 <--- 秘密鍵のパスワードを入力する
You will be prompted to enter information to incorporate
into the certificate request.
This information is called a Distinguished Name or a DN.
There are many fields however some can remain blank.
Some fields have default values.
Enter '.', to leave the field blank.
-----
Country Name (2 letter code) [JP]:
State or Province Name (full name) [Kanagawa]:
Locality Name (eg, city) [Yokohama-shi]:
Organization Name (eg, company) []:HITACHI
Organizational Unit Name (eg, section) []:WebSite
Common Name (eg, YOUR name) []:www.hws.hitachi.co.jp
Email Address [www-admin@server.example.com]:www-admin@hws.hitachi.co.jp

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:           <--- 入力しない場合はリターンキーを押してください
An optional company name []:       <--- 入力しない場合はリターンキーを押してください

CSRの形式

CSRの形式を次に示します。

-----BEGIN CERTIFICATE REQUEST-----
MIIB6DCCAVECAQAwgacxCzAJBgNVBAYTAkpQMREwDwYDVQQIEwhLYW5hZ2F3YTEV
MBMGA1UEBxMMWW9rb2hhbWEtc2hpMRAwDgYDVQQKEwdISVRBQ0hJMRAwDgYDVQQL
EwdXZWJTaXRlMR4wHAYDVQQDExV3d3cuaHdzLmhpdGFjaGkuY28uanAxKjAoBgkq
hkiG9w0BCQEWG3d3dy1hZG1pbkBod3MuaGl0YWNoaS5jby5qcDCBnzANBgkqhkiG
9w0BAQEFAAOBjQAwgYkCgYEAxq4ChoNI3JXQKKmimWeWXgg+7wwjvPLk3awnpg9U
Xt5lLSqL6d71w2chFIaj4OYDNkbQKtto3qTX/wo37XmK+u9dIfKFwFwNDA7AVKMX
Zrl1nIugT5Vb1htwZpBuCDAHi7HiaeCQYJvE3e3roKib5SGmbyZ6erPt+py0c4py
HgsCAwEAAaAAMA0GCSqGSIb3DQEBBQUAA4GBAFwl4q/yBM7jzSIEMOXDnJPxC5gw
XJBDna+rFXxaT6aelUEubKyCC2MXb9sdMC4cPfnIwyibLn/n2beDCZoaHOPsHZ+e
3ROaNkVdF3xmdgGzeG3yJBUQRFghlBefJLdiQcbavL5jjOCWWYy9KytOS2mO9PaT
U2f2SuQzc8ZED0JN
-----END CERTIFICATE REQUEST-----

5.2.8　プロンプトモードでのsslckeyユティリティおよびsslccertユティリティの実行

sslckeyユティリティおよびsslccertユティリティは，プロンプトモードでも利用できます。プロンプトモードにするためには，次のように入力します。

＜この項の構成＞

(1)　形式

(2)　使用例

(1)　形式

UNIX版の場合

# /opt/hitachi/httpsd/sslc/bin/sslckey
sslckey>

# /opt/hitachi/httpsd/sslc/bin/sslccert
sslccert>

Windows版の場合

C:¥>"C:¥Program Files¥Hitachi¥httpsd¥sslc¥bin¥sslckey"
sslckey>

C:¥>"C:¥Program Files¥Hitachi¥httpsd¥sslc¥bin¥sslccert"
sslccert>

sslckeyユティリティのプロンプトモードでは，genrsaコマンドを5.2.1に記述した形式で利用できます。また，sslccertユティリティのプロンプトモードでは，req，x509の各コマンドを，5.2.2～5.2.6に記述した形式で利用できます。

(2)　使用例

sslccert>req -in demoCA/httpsd.csr -text

プロンプトモードは次に示すコマンドで終了します。

sslccert>exit

5.3　CRLの運用

＜この節の構成＞

5.3.1　CRLのダウンロード

5.3.1　CRLのダウンロード

LDAPサーバのエントリにアクセスして，指定した属性から無効になった証明書のリスト（CRL）をダウンロードします。CRLを取得するエントリ，属性およびCRLの形式はあらかじめLDAP管理者に確認してください。

次にCRLをダウンロードするcrldownloadユティリティについて説明します。

crldownloadユティリティは，AIX，Solaris，Linux（32ビット）およびWindows版で使用できます。HP-UX（IPF）およびLinux（IPF）版では使用できません。

＜この項の構成＞

(1)　形式

(2)　オプション

(3)　使用方法

(4)　使用例

(5)　Solaris版での注意事項

(1)　形式

crldownload -b 検索ベースDN -L LDAPライブラリ名 -o ファイル名〔-a 属性〕〔-D バインドDN〕〔-h ホスト名〕〔-H〕〔-p ポート番号〕〔-w パスワード〕

(2)　オプション

-b 検索ベースDN
CRLの格納されているエントリのDNを指定します。

-L LDAPライブラリ名
使用するLDAPライブラリファイル名を指定します。

-o ファイル名
CRLを出力するファイル名を指定します。

-a 属性　～《certificateRevocationList;binary》
CRLが格納されている属性を指定します。

-D バインドDN
バインドするDNを指定します。省略した場合は，匿名バインドが実行されます。

-h ホスト名　～《localhost》
アクセスするLDAPサーバのホスト名またはIPアドレスを指定します。

-H
ヘルプを表示させる場合に指定します。このオプションは，ほかのオプションとは，併用できません。

-p ポート番号　～((1－65535))《389》
アクセスするLDAPサーバのポート番号を指定します。

-w パスワード　～《NULL》
バインドDNにバインドする場合に使用するパスワードを指定します。省略した場合は，パスワードを使用しません。

(3)　使用方法

crldownloadユティリティの使用方法を次に示します。

図5-3　crldownloadユティリティの使用方法

crldownloadユティリティで，CRLを格納しているエントリにアクセスします。

エントリ内の属性からCRLを取得します。格納されているCRLがDER形式の場合，SSLCRLDERPathディレクティブで指定したディレクトリにダウンロードします。CRLがPEM形式の場合，SSLCRLPEMPathディレクティブで指定したディレクトリにダウンロードします。

Webサーバを再起動します。

クライアントは，SSLでアクセスしたときに証明書を送信します。

クライアント証明書を認証するとき，取得したCRLを適用します。

認証に成功した場合には，コンテンツにアクセスできます。

注

SSLCRLPEMPath，SSLCRLDERPathディレクティブで指定されたディレクトリ内に，不適切な形式のファイルがあった場合，Webサーバは起動しません。そのため，crldownloadツールを使用したときは，これらのディレクトリにCRLを格納する前に，正しい形式のCRLであるかどうかを確認してください。

(4)　使用例

(a)　DER形式のCRLのダウンロード

次に示すスクリプトを実行してCRLをダウンロードします。このスクリプトのファイル名をUNIX版は/opt/hitachi/httpsd/sbin/hws_getCRL.sh，Windows版はC:¥Program Files¥Hitachi¥httpsd¥sbin¥hws_getCRL.batとします。

スクリプトの実行内容
LDAPサーバ内にDER形式で格納されているCRLをダウンロードし，Webサーバを再起動します。そのときに出力されたメッセージはログファイルに格納します。

CRLの格納先ファイル名

UNIX版

/opt/hitachi/httpsd/conf/ssl/crl/DER/rootCA.crl

Windows版

C:¥Program Files¥Hitachi¥httpsd¥conf¥ssl¥crl¥DER¥rootCA.crl

ログファイル名

UNIX版

/opt/hitachi/httpsd/logs/crl_log

Windows版

C:¥Program Files¥Hitachi¥httpsd¥logs¥crl_log

スクリプトの内容(UNIX版の場合)

#!/bin/sh
#########################################################################
##  Hitachi Web Server
##  All Rights Reserved. Copyright (C) 2001-2008, Hitachi, Ltd.
#########################################################################
#parameters
LIB="/opt/hitachi/httpsd/libexec/libldapssl41.so"
HOST="ldap.server.hitachi.co.jp"
PORT="389"
BASE="cn=Company root CA, o=Hitachi, c=JP"
ATTR="certificateRevocationList;binary"
FILE="/opt/hitachi/httpsd/conf/ssl/crl/DER/rootCA.crl"

LOG="/opt/hitachi/httpsd/logs/crl_log"
TMP="/opt/hitachi/httpsd/conf/ssl/crl/tmp-rootCA.crl"

#download
TOOL="/opt/hitachi/httpsd/sbin/crldownload"
HTTPSD="/opt/hitachi/httpsd/sbin/httpsdctl graceful"
LOGTIME=""
LANG=C

if `$TOOL -L $LIB -h $HOST -p $PORT -b "$BASE" -a "$ATTR" -o $TMP >> $LOG 2>&1`then
 if `mv -f $TMP $FILE >> $LOG 2>&1`
 then
   $HTTPSD >> $LOG 2>&1
   exit 0
 else
   LOGTIME=`date`
   echo "[$LOGTIME] Moving $TMP to $FILE failed" >> $LOG
   rm -f $TMP >> /dev/null 2>&1
 fi
else
 LOGTIME=`date`
fi
echo "[$LOGTIME] Stop restarting Hitachi Web Server." >> $LOG
exit 1

スクリプトの内容(Windows版の場合)

@echo off
REM
##############################################################################
REM ## All Rights Reserved. Copyright (C) 2002-2008, Hitachi, Ltd.
REM
##############################################################################
REM #parameters
SETLOCAL
SET LIB="C:¥Program Files¥Hitachi¥httpsd¥libldap¥nsldap32v50.dll"
SET HOST="ldap.server.hitachi.co.jp"
SET PORT="389"
SET BASE="cn=Company root CA, o=Hitachi, c=JP"
SET ATTR="certificateRevocationList;binary"
SET FILE="C:¥Program Files¥Hitachi¥httpsd¥conf¥ssl¥crl¥DER¥rootCA.crl"

SET FORM="DER"
SET LOG="C:¥Program Files¥Hitachi¥httpsd¥logs¥crl_log"
SET TMPCRL="C:¥Program Files¥Hitachi¥httpsd¥conf¥ssl¥crl¥tmp-rootCA.crl"

REM #download
SET TOOL="C:¥Program Files¥Hitachi¥httpsd¥sbin¥crldownload.exe"
SET HTTPSD="C:¥Program Files¥Hitachi¥httpsd¥httpsd.exe"

%TOOL% -L %LIB% -h %HOST% -p %PORT% -b %BASE% -a %ATTR% -o %TMPCRL% >> %LOG% 2>&1 || GOTO ERR

COPY %TMPCRL% %FILE% >> %LOG% 2>&1 || GOTO CPERR
DEL %TMPCRL% >> %LOG% 2>&1
%HTTPSD% -n "Hitachi Web Server" -k restart >> %LOG% 2>&1
GOTO TOOLEND

:CPERR
ECHO Moving %TMPCRL% to %FILE% failed >> %LOG%
DEL %TMPCRL% >> %LOG% 2>&1
DEL %TMPSSL% >> %LOG% 2>&1
GOTO ERR

:ERR
ECHO Stop restarting Hitachi Web Server. >> %LOG%

:TOOLEND
endlocal
echo on

スクリプトの実行方法（UNIX版の場合）

/opt/hitachi/httpsd/sbin/hws_getCRL.sh

スクリプトの実行方法（Windows版の場合）

C:¥> "C:¥Program Files¥Hitachi¥httpsd¥sbin¥hws_getCRL.bat"

(b)　定期的なダウンロードとWebサーバの再起動

UNIX版
スーパユーザまたはスーパユーザから許可されたユーザはcrontabコマンド※を使用したCRLの定期的なダウンロードや，Webサーバの再起動ができます。
crontabコマンドにcrldownloadコマンドまたはcrldownloadコマンドを記述したスクリプトを実行する時間を指定して，定期的にCRLをダウンロードし，Webサーバを再起動します。
注※　OSコマンドの一つ。cronへのジョブの登録や制御をするときに使用します。詳細な指定方法は各OSマニュアルを参照してください。

crontabコマンドの指定方法

# crontab -
分　時　日　月　曜日　コマンド

各crontabファイルエントリは，六つのフィールドから成る行で構成されます。各フィールドは，スペースまたはタブで区切られ，それぞれ次に示す値を含みます。

分：コマンドを実行する分（0から59）

時：コマンド実行の時間（0から23）

日：コマンド実行の日（1から31）

月：コマンド実行の月（1から12）

曜日：コマンド実行の曜日（日曜日から土曜日までを示す0から6）

コマンド：実行するシェルコマンド

*（アスタリスク）は有効な値すべてを意味します。

crontabコマンドの指定例

毎日，午前8時にCRLをダウンロードして，Webサーバを再起動する（(a)のスクリプトを実行する）には，次のように指定します。

# crontab -
0 8 * * * /opt/hitachi/httpsd/sbin/hws_getCRL.sh
（<Ctrl>+<d>キーで入力を終了します）
#

Windows版
atコマンド※を使用してCRLの定期的なダウンロードや，Webサーバの再起動ができます。
atコマンドにcrldownloadコマンドまたはcrldownloadコマンドを記述したスクリプトを実行する時間を指定して，定期的にCRLをダウンロードし，Webサーバを再起動します。
注※　OSコマンドの一つ。詳細な指定方法は各OSマニュアルを参照してください。

atコマンドの指定方法

C:¥>at ［¥¥コンピュータ名］時刻［/every:日付［,...］|/next:日付［,...］］"コマンド"

atコマンドの指定例

毎日，午前8時にCRLをダウンロードして，Webサーバを再起動する（(a)のスクリプトを実行する）には，次のように指定します。

C:¥>at 8:00 /every:M,T,W,Th,F,S,Su "C:¥Program Files¥Hitachi¥httpsd¥sbin¥hws_getCRL.bat"

(5)　Solaris版での注意事項

標準提供しているLDAPライブラリファイル以外を使用する場合は，環境変数LD_LIBRARY_PATHに，使用するLDAPライブラリファイルの格納ディレクトリを設定してください。

5.4　パスワード付きサーバ秘密鍵の使用

パスワードによって保護されているサーバ秘密鍵を使用する場合，パスワードをあらかじめファイルに格納しておき，ディレクティブを設定することで，サーバ起動時のパスワード入力を省略できます。その手順を以下に示します。なお，Windows版Hitachi Web Serverでパスワードによって保護されているサーバ秘密鍵を使用する場合には，この手順は必須です。

sslckeyユティリティによって，パスワード付きのサーバ秘密鍵を作成します。

sslpasswdユティリティによって，パスワードファイルを作成します。

作成したパスワードファイルを指定したSSLCertificateKeyPasswordディレクティブを，サーバ秘密鍵ファイルを指定したSSLCertificateKeyFileディレクティブとともにhttpsd.confに設定します。

サーバを起動または再起動します。

パスワードファイルの内容の漏洩には注意する必要があります。サーバ秘密鍵の格納ディレクトリに加え，パスワードファイルの格納ディレクトリでも，他ユーザからのアクセスを禁止するようにディレクトリパーミッションやファイルパーミッションの設定をしてください。

SSLCertificateKeyPasswordディレクティブで指定するパスワードファイルを作成するsslpasswdユティリティについて次に示します。

＜この節の構成＞

5.4.1　sslpasswdユティリティ

5.4.1　sslpasswdユティリティ

＜この項の構成＞

(1)　形式

(2)　オペランド

(3)　使用例

(4)　注意事項

(1)　形式

sslpasswd サーバ秘密鍵ファイル名 パスワードファイル名

(2)　オペランド

サーバ秘密鍵ファイル名
パスワードによって保護されたサーバ秘密鍵を指定します。

パスワードファイル名
パスワードファイルを出力するファイル名を指定します。

(3)　使用例

sslpasswd httpsdkey.pem .keypasswd

(4)　注意事項

パスワードファイル名として，既存のファイル名は指定できません。

Windows版のsslpasswdユティリティで作成したパスワードファイルはUNIX版では使用できません。

UNIX版のsslpasswdユティリティで作成したパスワードファイルはWindows版では使用できません。

6.　ディレクティブ

この章では，httpsd.confファイルおよびアクセスコントロールファイルに定義するディレクティブについて説明します。

＜この章の構成＞

6.1　ディレクティブ一覧

6.2　ディレクティブの詳細

6.1　ディレクティブ一覧

＜この節の構成＞

6.1.1　ディレクティブ一覧

6.1.2　正規表現

6.1.3　ディレクティブについての注意事項

6.1.1　ディレクティブ一覧

コンフィグファイルに指定できるディレクティブの一覧を次に示します。

表6-1　ディレクティブ一覧

設定内容 | ディレクティブ | 複数指定
httpsd.confファイル内のブロックの定義 | <Directory> | ○
<DirectoryMatch> | ○
<Files> | ○
<FilesMatch> | ○
<IfModule> | ○
<Limit> | ○
<Location> | ○
<LocationMatch> | ○
<VirtualHost> | ○
サーバの基本的な定義 | ServerName | ×
Port | ×
User　[図データ] | ×
Group　[図データ] | ×
ServerAdmin | ×
ServerRoot | ×
ServerSignature | ×
Listen | ○
BindAddress | ×
LoadModule | ○
LoadFile | ○
Include | ○
ExtendedStatus | ×
ServerTokens | ×
CoreDumpDirectory　[図データ] | ×
FileETag | ×
コンテンツを管理するための定義 | UserDir | ○
DocumentRoot | ×
ErrorDocument | ○
Webブラウザからのリクエストについての定義（Alias） | Alias | ○
AliasMatch | ○
Redirect | ○
RedirectMatch | ○
Webブラウザへのレスポンスについての定義 | HWSNotModifiedResponseHeaders | ○
MIMEタイプについての定義 | DefaultType | ×
TypesConfig | ×
AddCharset | ○
AddDefaultCharset | ×
AddType | ○
ForceType | ×
HWSErrorDocumentMETACharset　[図データ] | ×
コンテントネゴシエーションについての定義 | LanguagePriority | ○
AddEncoding | ○
AddLanguage | ○
DefaultLanguage | ×
CacheNegotiatedDocs | ×
MultiviewsMatch | ×
ハンドラについての定義 | AddHandler | ○
SetHandler | ×
Webサーバの性能についての定義 | StartServers　[図データ] | ×
MinSpareServers　[図データ] | ×
MaxSpareServers　[図データ] | ×
MaxClients　[図データ] | ×
MaxRequestsPerChild　[図データ] | ×
Timeout | ×
ListenBacklog | ×
ThreadsPerChild　[図データ] | ×
HWSMaxQueueSize　[図データ] | ×
HWSKeepStartServers　[図データ] | ×
KeepAliveの定義 | KeepAlive | ×
MaxKeepAliveRequests | ×
KeepAliveTimeout | ×
リクエストを制限する定義 | LimitRequestBody | ×
LimitRequestFields | ×
LimitRequestFieldsize | ×
LimitRequestLine | ×
CGI，環境変数の定義 | ScriptAlias | ○
ScriptAliasMatch | ○
UseCanonicalName | ×
BrowserMatch | ○
BrowserMatchNoCase | ○
PassEnv | ○
SetEnv | ○
UnsetEnv | ○
SetEnvIf | ○
SetEnvIfNoCase | ○
Action | ○
Script | ○
ScriptInterpreterSource　[図データ] | ×
HWSSetEnvIfIPv6 | ○
ディレクトリインデクスの表示内容の定義 | DirectoryIndex | ×
FancyIndexing | ×
AddIconByEncoding | ○
AddIconByType | ○
AddIcon | ○
DefaultIcon | ×
ReadmeName | ×
HeaderName | ×
IndexIgnore | ○
IndexOrderDefault | ×
AddAltByEncoding | ○
AddAltByType | ○
AddAlt | ○
AddDescription | ○
IndexOptions | ○
Webサーバへのアクセスを制御する定義 | AccessFileName | ×
AllowOverride | ×
AuthName | ×
AuthType | ×
AuthGroupFile | ×
AuthUserFile | ×
AuthAuthoritative | ×
Require | ○
Options | ×
Order | ×
Allow from | ○
Deny from | ○
Satisfy | ×
TraceEnable | ×
IdentityCheck　[図データ] | ×
SSLによる暗号化および認証の定義 | SSLRequireSSL | ×
SSLEnable | ×
SSLDisable | ×
SSLCertificateFile | ×
SSLCertificateKeyFile | ×
SSLCACertificatePath　[図データ] | ×
SSLCACertificateFile | ×
SSLVerifyClient | ×
SSLVerifyDepth | ×
SSLRequiredCiphers | ×
SSLRequireCipher | ○
SSLBanCipher | ○
SSLDenySSL | ×
SSLFakeBasicAuth | ×
SSLCacheServerPort　[図データ] | ×
SSLSessionCacheTimeout | ×
SSLCacheServerPath　[図データ] | ×
SSLCacheServerRunDir　[図データ] | ×
SSLSessionCacheSize | ×
SSLSessionCacheSizePerChild　[図データ] | ×
SSLCRLAuthoritative | ×
SSLCRLDERPath | ×
SSLCRLPEMPath | ×
SSLExportCertChainDepth | ×
SSLExportClientCertificates | ×
SSLCertificateKeyPassword | ×
SSLProtocol | ×
Webサーバを運用形態に合わせて複数ホストに見せる定義 | NameVirtualHost | ○
ServerAlias | ○
ServerPath | ×
イメージマップファイルについての定義 | ImapDefault | ×
ImapBase | ×
ImapMenu | ×
HWSImapMenuCharset | ×
採取するログの定義 | HostnameLookups | ×
ErrorLog | ×
LogLevel | ×
LogFormat | ○
CustomLog | ○
TransferLog | ○
PidFile | ×
ScriptLog | ×
ScriptLogBuffer | ×
ScriptLogLength | ×
HWSLogSSLVerbose | ×
HWSLogTimeVerbose | ×
HWSRequestLog | ×
HWSRequestLogType | ×
HWSSuppressModuleTrace | ○
ディレクトリサーバについての定義 | LDAPBaseDN | ×
LDAPRequire | ○
LDAPServerName | ×
LDAPServerPort | ×
LDAPSetEnv | ○
LDAPTimeout | ×
LDAPUnsetEnv | ○
LDAPNoEntryStatus | ×
採取するトレースの定義 | HWSTraceIdFile | ×
HWSTraceLogFile | ×
HWSStackTrace　[図データ] | ×
リバースプロキシについての定義 | ProxyPass | ○
ProxyPassReverse | ○
ProxyVia | ×
ProxyErrorOverride | ×
ProxyPreserveHost | ×
HWSProxyPassReverseCookie | ○
流量制限機能についての定義 | QOSCookieDomain | ×
QOSCookieExpires | ×
QOSCookieName | ○
QOSCookieSecure | ×
QOSCookieServers | ×
QOSRedirect | ○
QOSRejectionServers | ×
QOSResponse | ×
ヘッダカスタマイズ機能についての定義 | Header | ○
RequestHeader | ○
有効期限設定機能についての定義 | ExpiresActive | ×
ExpiresByType | ○
ExpiresDefault | ×
計画停止についての定義 | HWSGracefulStopLog | ×
HWSGracefulStopTimeout | ×
静的コンテンツキャッシュ機能についての定義 | HWSContentCacheMaxFileSize　[図データ] | ×
HWSContentCacheSize　[図データ] | ×

（凡例）

○：指定できる。

×：指定できない。

注

特に記述がないかぎり，ファイル名はディレクトリ名を含めた形式（パス情報付き）で記述できます。

6.1.2　正規表現

ディレクティブの指定に使用できる正規表現を次に示します。

表6-2　正規表現

記号 | 機能 | 使用例 | 使用例の意味
. | 任意の1文字。 | a...c | aの後に任意の3文字とcが続く。abcdcは適合する。
* | 直前の1文字の0個以上の繰り返し。 | ab*cd* | ac，abbbbc，abbbbcdは適合する。
+ | 直前の1文字の1個以上の繰り返し。 | ab*c+ | abbbcは適合する。abbbは適合しない。
? | 直前の1文字があるかないか。 | abbbc? | abbbc，abbbは適合する。
| | 選択肢の区切り。 | a|bc|d | a，bcまたはd。
¥ | 直後の特殊文字（. ^$*+?|¥[](){}）の1文字。ただし，¥を表す場合は¥¥¥。 | ¥. | .と適合する。
¥¥¥ | 1文字の¥と適合する。
^ | 行の先頭に適合する。 | ^ab | abcdeは適合する。
$ | 行の末尾に適合する。 | abc$ | aaabcは適合する。
{m} | 直前の正規表現のm個の繰り返し。 | a{5} | aaaaaが適合する。
{m,} | 直前の正規表現のm個以上の繰り返し。 | a{3,} | aaa，aaaaは適合する。aaは適合しない。
{m,n} | 直前の正規表現のm個以上n個以下の繰り返し。 | a{3,5} | aaa，aaaa，aaaaaが適合する。aa，aaaaaaは適合しない。
[文字列] | 文字列にある任意の1文字※。 | [abc]*または[a-c]* | aaa，bbb，ccc，cba，aabは適合する。
[^文字列] | 文字列にない任意の1文字。 | [^0-9] | 数字以外の1字が適合する。
(文字列) | 文字列をグループ化する。 | (ab)+ | abababが適合する。ababbは適合しない。
aa(xx|yy)bb | aaxxbb，aayybbが適合する。

注※

次の3文字は，[文字列]内で特殊な意味を持ちます。

^：[の次に指定して，文字列に含まれないものを示すために用います。

]：文字列の最後を示すために用います。

-：範囲を指定するために用います。

また，これら特殊文字の前の¥は省略されます。

[文字列]内で特殊な意味を持つ文字を通常の文字として指定するには，次のようにします。なお，^ ] - ¥ 以外の特殊文字は，通常の文字として扱われます。

^ ：文字列の先頭以外で指定します。（例）[ab^yz]

]：文字列の先頭に指定します。（例）[]abxy]

-：最後に指定します。（例）[abxy-]

¥：¥¥¥と指定します。（例）[¥¥¥abxy]

6.1.3　ディレクティブについての注意事項

＜この項の構成＞

(1)　記述できる場所について

(2)　上書き許可

(3)　ディレクティブに指定するパス情報

(4)　コメント行

(5)　IPv6アドレスを指定するときの注意

(6)　最低限設定が必要なディレクティブ

(1)　記述できる場所について

ディレクティブによっては，記述できる場所が制限されているものがあります。「6.2　ディレクティブの詳細」では，各ディレクティブの記述できる場所を次のような形式で記述します。

記述できる場所 | 説明
httpsd.conf | VirtualHostブロック，Directoryブロック以外のhttpsd.confファイル
<VirtualHost> | httpsd.confファイルのVirtualHostブロック
<Directory> | httpsd.confファイルのDirectoryブロック，Locationブロック，Filesブロック
.htaccess | AccessFileNameディレクティブで指定したアクセスコントロールファイル
<Location> | httpsd.confファイルのLocationブロック

また，ディレクティブは次に示す順に参照されます。

VirtualHostブロック，Directoryブロック以外のhttpsd.confファイル

httpsd.confファイルのVirtualHostブロック

httpsd.confファイルのDirectoryブロック

アクセスコントロールファイル

httpsd.confファイルのFilesブロック

httpsd.confファイルのLocationブロック

DirectoryブロックのAllowOverrideディレクティブの定義（上書き許可レベル）によって，アクセスコントロールファイルで定義しているディレクティブを有効または無効にできます。

(2)　上書き許可

AllowOverrideディレクティブで上書きを許可する場合の許可レベルを定義します。各ディレクティブの上書き許可レベルは，各ディレクティブで説明します。許可レベルは複数あります。詳細は，AllowOverrideディレクティブを参照してください。なお，各ディレクティブの説明で.htaccessが指定でき，かつ上書き許可レベルの記述がない場合には，許可レベルはAllになります。

(3)　ディレクティブに指定するパス情報

ディレクトリ名，ファイル名またはパス名を指定するディレクティブの場合，ディレクティブの種類によって，指定できるパス情報が異なります。

パスの種類には，次のものがあります。各ディレクティブのパス情報は，各ディレクティブで説明します。

絶対パスしか指定できない（Windows版の場合，ドライブ名を付けた指定も絶対パスに含まれる）。

ServerRootディレクティブの指定値からの相対パスで指定できる（ただし，ServerRootディレクティブの指定が先に必要）。

また，パス情報にネットワーク上のディレクトリやファイルを指定することはできません。ネットワークを使用したファイルシステム上のディレクトリやファイルを指定することもできません。

(4)　コメント行

コンフィグファイル中，行の最初に#を付けると，コメント行になります。ただし，ディレクティブを指定したあとに#から始まる文字列を記述しても，#以降をコメントとして扱いません。コメント行を指定する場合の記述例を次に示します。

正しい例

#Deny from all

#行はコメント行として扱われます。

誤った例

Deny from all    #comment

#commentはディレクティブ指定値として扱われます。コメントとしては扱われません。

(5)　IPv6アドレスを指定するときの注意

ディレクティブにIPv6アドレスを記述する場合は，「[IPv6アドレス]」のようにIPv6アドレスを[　]で囲んで指定してください。また，ディレクティブにIPv6アドレスとポート番号を併記する場合は，「[IPv6アドレス]:ポート番号」のようにIPv6アドレスを[　]で囲み，「:」の後ろにポート番号を指定します。

ただし，次のディレクティブにIPv6アドレスを記述する場合は，IPv6アドレスを[　]で囲まないで指定してください。

Allow fromディレクティブ

Deny fromディレクティブ

HWSSetEnvIfIPv6ディレクティブ

Windows版でIPv6アドレスを指定する場合は，リンクローカルアドレスまたはサイトローカルアドレスを指定できません。グローバルアドレスを指定してください。

Linux（32ビット）版でIPv6アドレスを指定する場合は，リンクローカルアドレスを指定できません。サイトローカルアドレスまたはグローバルアドレスを指定してください。

(6)　最低限設定が必要なディレクティブ

Hitachi Web Serverを起動するために，最低限設定が必要なディレクティブは以下のとおりです。

最低限設定が必要なディレクティブ
User（UNIX版）
Group（UNIX版）
ServerName
SSLDisable（SSLを利用しない場合）

SSLを利用する場合にさらに最低限必要なディレクティブ
SSLCertificateFile
SSLCertificateKeyFile

6.2　ディレクティブの詳細

＜この節の構成＞

6.2.1　<で始まるディレクティブ

6.2.2　Aで始まるディレクティブ

6.2.3　B，C，Dで始まるディレクティブ

6.2.4　E，F，G，H，Iで始まるディレクティブ

6.2.5　K，Lで始まるディレクティブ

6.2.6　M，N，O，P，Q，Rで始まるディレクティブ

6.2.7　Sで始まるディレクティブ

6.2.8　T，Uで始まるディレクティブ

6.2.1　<で始まるディレクティブ

ブロック定義のディレクティブを参照順に示します。

<Directory>ディレクティブ，<DirectoryMatch>ディレクティブ，アクセスコントロールファイル

<Files>ディレクティブ，<FilesMatch>ディレクティブ

<Location>ディレクティブ

＜この項の構成＞

(1)　<Directory　ディレクトリ名>・・・</Directory>

(2)　<DirectoryMatch　正規表現>・・・</DirectoryMatch>

(3)　<Files　ファイル名>・・・</Files>

(4)　<FilesMatch　正規表現>・・・</FilesMatch>

(5)　<IfModule　〔!〕モジュール名>・・・</IfModule>

(6)　<Limit　メソッド名　〔メソッド名　…〕>・・・</Limit>

(7)　<Location　URL>・・・</Location>

(8)　<LocationMatch　正規表現>・・・</LocationMatch>

(9)　<VirtualHost　｛ホスト名｜IPアドレス〔:ポート番号〕｝　〔｛ホスト名｜IPアドレス〔:ポート番号〕｝　…〕>・・・</VirtualHost>

(1)　<Directory　ディレクトリ名>・・・</Directory>

(a)　内容

特定のディレクトリに対してディレクティブを定義する場合に指定します。ディレクトリ名にディレクトリ名を指定し，そのディレクトリとサブディレクトリだけに有効なディレクティブを定義するブロックを指定できます。

ディレクトリ名は，絶対パスで指定してください。

(b)　記述できる場所

httpsd.conf，<VirtualHost>

(c)　指定例

<Directory />                                         …1.
    Options None                                     …2.
    AllowOverride None                               …3.
</Directory>                                          …4.

<Directory "C:/Program Files/Hitachi/httpsd/htdocs">  …5.
    Options Indexes                                  …6.
    AllowOverride None                               …7.
    Order allow,deny                                 …8.
    Allow from all                                   …9.
</Directory>                                          …10.

ルートディレクトリの定義

機能はすべて無効

すべての上書き禁止

定義終わり

C:/Program Files/Hitachi/httpsd/htdocsディレクトリの定義

ディレクトリインデクス表示可

すべての上書き禁止

Allowディレクティブの指定をDenyディレクティブの指定より先に評価

すべてのホストからのアクセスを許可

定義終わり

(2)　<DirectoryMatch　正規表現>・・・</DirectoryMatch>

(a)　内容

正規表現で記述した条件を満たすディレクトリに対してディレクティブを定義する場合に指定します。ディレクトリ名を正規表現で指定し，そのディレクトリとサブディレクトリだけに有効なディレクティブを定義するブロックを指定できます。

正規表現のディレクトリ名は，絶対パスで指定してください。

(b)　記述できる場所

httpsd.conf，<VirtualHost>

(3)　<Files　ファイル名>・・・</Files>

(a)　内容

特定のファイルに対してディレクティブを定義する場合に指定します。ファイル名にファイル名を指定し，そのファイルだけに有効なディレクティブを定義するブロックを指定できます。

(b)　記述できる場所

httpsd.conf，<VirtualHost>，<Directory>，.htaccess

(4)　<FilesMatch　正規表現>・・・</FilesMatch>

(a)　内容

正規表現で記述した条件を満たすファイルに対してディレクティブを定義する場合に指定します。ファイル名を正規表現で指定し，そのファイルだけに有効なディレクティブを定義するブロックを指定できます。

(b)　記述できる場所

httpsd.conf，<VirtualHost>，<Directory>，.htaccess

(5)　<IfModule　〔!〕モジュール名>・・・</IfModule>

(a)　内容

指定したモジュールが組み込まれているとき，ブロック内で指定したディレクティブが有効になります。モジュール名の前に!を付けた場合は，指定したモジュールが組み込まれていないとき，ブロック内で指定したディレクティブが有効になります。

(b)　記述できる場所

httpsd.conf，<VirtualHost>，<Directory>，.htaccess

(6)　<Limit　メソッド名　〔メソッド名　…〕>・・・</Limit>

(a)　内容

特定のHTTPプロトコルメソッドに対して，ディレクティブを定義する場合に指定します。メソッド名に指定したメソッドだけに有効なアクセス制御のディレクティブを定義するブロックを指定できます。メソッド名は複数指定できます。

メソッド名：GET，POST，PUT，DELETE，CONNECT，OPTIONS

（HEADはGETに含まれています）

(b)　記述できる場所

httpsd.conf，<VirtualHost>，<Directory>，.htaccess

(c)　指定例

<Directory />
 <Limit PUT DELETE>                    …1.
   Order deny,allow                    …2.
   Deny from all                       …3.
   Allow from .your_domain.com         …4.
 </Limit>                              …5.
</Directory>

PUTおよびDELETEメソッドに対する定義

Denyディレクティブの指定を，Allowディレクティブの指定よりも先に評価

すべてのホストからのPUTおよびDELETEメソッドによるアクセスは不可

.your_domain.comからのPUTおよびDELETEメソッドによるアクセスを許可

定義終わり

(7)　<Location　URL>・・・</Location>

(a)　内容

特定のURLで示す場所へのリクエストについて，ディレクティブを定義する場合に指定します。ただし，URLに，?以降（問い合わせ文字列）は指定できません。

(b)　記述できる場所

httpsd.conf，<VirtualHost>

(c)　指定例

 <Location /server-status>             …1.
      SetHandler server-status         …2.
      Order deny,allow                 …3.
      Deny from all                    …4.
      Allow from .your_domain.com      …5.
 </Location>                           …6.

URL /server-statusの定義

このディレクトリのリクエストはserver-statusハンドラに関連づける

Denyディレクティブの指定をAllowディレクティブの指定よりも先に評価

すべてのホストからのアクセスは不可

.your_domain.comからのアクセスを許可

定義終わり

(8)　<LocationMatch　正規表現>・・・</LocationMatch>

(a)　内容

正規表現で記述した条件を満たすURLへのリクエストについてディレクティブを定義する場合に指定します。ただし，URLに，?以降（問い合わせ文字列）は指定できません。

(b)　記述できる場所

httpsd.conf，<VirtualHost>

(9)　<VirtualHost　｛ホスト名｜IPアドレス〔:ポート番号〕｝　〔｛ホスト名｜IPアドレス〔:ポート番号〕｝　…〕>・・・</VirtualHost>

(a)　内容

ホスト名またはIPアドレス〔:ポート番号〕で示すホストへのリクエストについてディレクティブを定義する場合に指定します。

なお，IPv6アドレスに対応したホスト名も指定できます。IPアドレスにIPv6アドレスを指定する場合は，IPv6アドレスを[　]で囲んでください。

(b)　記述できる場所

httpsd.conf

(c)　指定例

<VirtualHost 172.17.40.30:80>
   :
</VirtualHost>
<VirtualHost [fec0::123:4567:89ab:cdef]:80>
   :
</VirtualHost>

6.2.2　Aで始まるディレクティブ

＜この項の構成＞

(1)　AccessFileName　ファイル名　〔ファイル名　…〕

(2)　Action　｛MIMEタイプ｜ハンドラ｝　CGIスクリプト名

(3)　AddAlt　"文字列"　拡張子　〔拡張子　…〕

(4)　AddAltByEncoding　"文字列"　MIMEエンコーディング　〔MIMEエンコーディング　…〕

(5)　AddAltByType　"文字列"　MIMEタイプ　〔MIMEタイプ　…〕

(6)　AddCharset　文字セット　拡張子　〔拡張子　…〕

(7)　AddDefaultCharset　〔On｜Off｜文字セット〕

(8)　AddDescription　"文字列"　ファイル名　〔ファイル名　…〕

(9)　AddEncoding　圧縮形式　拡張子

(10)　AddHandler　ハンドラ名　拡張子　〔拡張子　…〕

(11)　AddIcon ｛(文字列，URL)｜URL｝　拡張子　〔拡張子　…〕

(12)　AddIconByEncoding　｛(文字列，URL)｜URL｝　MIMEエンコーディング　〔MIMEエンコーディング　…〕

(13)　AddIconByType　｛(文字列，URL)｜URL｝　MIMEタイプ　〔MIMEタイプ　…〕

(14)　AddLanguage　言語コード　拡張子

(15)　AddType　MIMEタイプ　拡張子　〔拡張子　…〕

(16)　Alias　URL　ディレクトリ名

(17)　AliasMatch　正規表現　新パス

(18)　Allow from　｛ホスト｜all｜env=環境変数｝　〔｛ホスト｜env=環境変数｝　…〕

(19)　AllowOverride　指示子　〔指示子　…〕

(20)　AuthAuthoritative　｛On｜Off｝

(21)　AuthGroupFile　ファイル名

(22)　AuthName　realm名

(23)　AuthType　認証タイプ名

(24)　AuthUserFile　ファイル名

(1)　AccessFileName　ファイル名　〔ファイル名　…〕

～《.htaccess》

(a)　内容

アクセス制御のディレクティブを定義しているファイル（アクセスコントロールファイル）のファイル名を定義します。AllowOverrideディレクティブで許可されていれば，コンテンツリクエスト時に毎回このファイルを参照しアクセス制限がチェックされます。

(b)　記述できる場所

httpsd.conf，<VirtualHost>

(c)　指定例

AccessFileName .htaccess

アクセスコントロールファイルのファイル名は，.htaccess

(2)　Action　｛MIMEタイプ｜ハンドラ｝　CGIスクリプト名

(a)　内容

MIMEタイプまたはハンドラで指定したコンテンツがWebブラウザからリクエストされたとき，実行させるスクリプトをCGIスクリプト名で指定します。CGIスクリプト名は，URLで指定します。このディレクティブを複数指定する場合，同じMIMEタイプに異なるCGIスクリプトは指定できません。

(b)　記述できる場所

httpsd.conf，<VirtualHost>，<Directory>，.htaccess

(c)　上書き許可

FileInfoレベル

(d)　指定例

Action image/gif /cgi-bin/images.cgi

(3)　AddAlt　"文字列"　拡張子　〔拡張子　…〕

(a)　内容

ディレクトリインデクス表示時に，拡張子に指定したファイルと関連づけて文字列を表示する場合に指定します。一つの文字列に対して複数の拡張子が指定できます。テキストモードのWebブラウザのようにアイコン表示ができない環境で，ファイルの属性を表示する場合などに利用できます。

拡張子に指定できるものを次に示します。

ファイル拡張子

ワイルドカード表記のファイル拡張子またはファイル名

ファイル名

このディレクティブを複数指定する場合，同じ拡張子に異なる文字列は指定できません。

(b)　記述できる場所

httpsd.conf，<VirtualHost>，<Directory>，.htaccess

(c)　上書き許可

Indexesレベル

(d)　指定例

AddAlt "HTML" htm html

拡張子がhtmまたはhtmlのファイルの場合，文字列"HTML"を表示します。

(4)　AddAltByEncoding　"文字列"　MIMEエンコーディング　〔MIMEエンコーディング　…〕

(a)　内容

ディレクトリインデクス表示時に，アイコンが表示できない環境で，MIMEエンコーディング（x-compressなど）と関連づけて文字列を表示する場合に指定します。一つの文字列に対して複数のMIMEエンコーディングが指定できます。このディレクティブを複数指定する場合，同じMIMEタイプに異なる文字列は指定できません。

(b)　記述できる場所

httpsd.conf，<VirtualHost>，<Directory>，.htaccess

(c)　上書き許可

Indexesレベル

(d)　指定例

AddAltByEncoding "gzip" x-gzip

(5)　AddAltByType　"文字列"　MIMEタイプ　〔MIMEタイプ　…〕

(a)　内容

ディレクトリインデクス表示時に，アイコンが表示できない環境で，MIMEタイプ（text/htmlなど）と関連づけて文字列を表示する場合に指定します。一つの文字列に対して複数のMIMEタイプが指定できます。このディレクティブを複数指定する場合，同じMIMEタイプに異なる文字列は指定できません。

(b)　記述できる場所

httpsd.conf，<VirtualHost>，<Directory>，.htaccess

(c)　上書き許可

Indexesレベル

(d)　指定例

AddAltByType "plain text" text/plain

(6)　AddCharset　文字セット　拡張子　〔拡張子　…〕

(a)　内容

ファイル拡張子に対する文字セットを指定します。文字セットはContent-Typeヘッダにcharset=の値として設定されます。クライアントに対して文字セットを明示する場合に使用します。このディレクティブを複数指定する場合，同じ拡張子に異なる文字列は指定できません。指定する拡張子は，AddTypeディレクティブまたはTypesConfigディレクティブで指定したファイルで，MIMEタイプの関連づけが必要です。

(b)　記述できる場所

httpsd.conf，<VirtualHost>，<directory>，.htaccess

(c)　上書き許可

FileInfoレベル

(d)　指定例

AddCharset EUC-JP .euc
AddCharset ISO-2022-JP .jis
AddCharset SHIFT_JIS .sjis

(7)　AddDefaultCharset　〔On｜Off｜文字セット〕

(a)　内容

ファイル拡張子に対する文字セットのデフォルト値を指定します。AddCharsetディレクティブの設定に対するデフォルト値となります。Content-Typeがtext/plain，text/htmlの場合のデフォルトとして設定されます。

On：デフォルト文字セットとしてISO-8859-1を設定します。

Off：文字セットを設定しません。

文字セット：指定した文字セットをデフォルト文字セットとします。

(b)　記述できる場所

httpsd.conf，<VirtualHost>，<directory>，.htaccess

(c)　上書き許可

FileInfoレベル

(d)　指定例

AddDefaultCharset ISO-2022-JP

(8)　AddDescription　"文字列"　ファイル名　〔ファイル名　…〕

(a)　内容

ディレクトリインデクス整形表示時に，ファイル名で指定したファイル拡張子，ワイルドカード表記ファイル名またはパス情報なしの完全なファイル名に対して，説明文として文字列を表示する場合に指定します。なお，ファイル名にスラッシュで終わる文字列を指定した場合，*が付けられワイルドカード指定と同様に見なされます。

ファイル名に指定できるものを次に示します。

ファイル拡張子

ワイルドカード表記のファイル名

ファイル名

このディレクティブを複数指定する場合，同じファイル名に異なる文字列は指定できません。

(b)　記述できる場所

httpsd.conf，<VirtualHost>，<Directory>，.htaccess

(c)　上書き許可

Indexesレベル

(d)　指定例

AddDescription "The planet Mars" /web/pics/mars.gif

(9)　AddEncoding　圧縮形式　拡張子

(a)　内容

Webサーバ内の圧縮データをWebブラウザに表示させるときに必要な拡張子と圧縮形式の関連づけを指定します。Webブラウザに圧縮ファイルの展開の情報としてContent-EncodingヘッダをWebサーバから送信する場合に設定します。このヘッダを利用した運用は，Webブラウザ側の実装に依存します。このディレクティブを複数指定する場合，同じ拡張子に異なる圧縮形式は指定できません。

(b)　記述できる場所

httpsd.conf，<VirtualHost>，<Directory>，.htaccess

(c)　上書き許可

FileInfoレベル

(d)　指定例

AddEncoding x-compress Z    拡張子がZのファイルの圧縮形式はx-compress
AddEncoding x-gzip gz       拡張子がgzのファイルの圧縮形式はx-gzip

(10)　AddHandler　ハンドラ名　拡張子　〔拡張子　…〕

(a)　内容

ハンドラで処理するファイル拡張子を対応付ける場合に定義します。

指定できるハンドラ名を次に示します。このディレクティブを複数指定する場合，同じ拡張子に異なるハンドラ名は指定できません。

cgi-script：CGIスクリプトの実行

imap-file：イメージマップ処理

server-status：ステータスの表示

hws_cache：静的コンテンツのキャッシュ

(b)　記述できる場所

httpsd.conf，<VirtualHost>，<Directory>，.htaccess

(c)　上書き許可

FileInfoレベル

(d)　指定例

AddHandler cgi-script .cgi              拡張子.cgiはcgi-scriptハンドラ
AddHandler imap-file map                拡張子mapはimap-fileハンドラ

(11)　AddIcon ｛(文字列，URL)｜URL｝　拡張子　〔拡張子　…〕

(a)　内容

拡張子などにディレクトリインデクスのアイコンを対応付けて表示する場合に指定します。文字列には画像表示ができないWebブラウザの場合に表示する文字を指定します。URLにアイコンの画像ファイルのURLを指定します。自ホスト内の画像ファイルを指定する場合，URLの「http：//IPアドレス」は省略できます。なお，URLの「http：//IPアドレス」を省略しないでIPv6アドレスを指定する場合は，IPv6アドレスを[　]で囲んでください。

拡張子として指定できるものを次に示します。

ファイル拡張子

ワイルドカード表記のファイル拡張子またはファイル名

ファイル名

拡張子として^^DIRECTORY^^を記述すると，ディレクトリに対するアイコンを設定できます。また，^^BLANKICON^^と指定すると，ディレクトリインデクスを表示した場合の，表示内容のヘッダのインデントを合わせるためのアイコンを設定できます。

このディレクティブを複数指定する場合，同じ拡張子に異なる文字列やURLは指定できません。

(b)　記述できる場所

httpsd.conf，<VirtualHost>，<Directory>，.htaccess

(c)　上書き許可

Indexesレベル

(d)　指定例

AddIcon /icons/tar.gif .tar

拡張子が.tarの場合のアイコン定義

AddIcon /icons/layout.gif .html .shtml .htm .pdf

拡張子が.html，.shtml，.htm，.pdfの場合のアイコン定義

AddIcon /icons/text.gif .txt

拡張子が.txtの場合のアイコン定義

AddIcon /icons/back.gif ..

親ディレクトリのアイコン定義

AddIcon /icons/hand.right.gif README

READMEファイルのアイコン定義

AddIcon /icons/folder.gif ^^DIRECTORY^^

ディレクトリの場合のアイコン定義

AddIcon /icons/blank.gif ^^BLANKICON^^

ディレクトリインデクスのヘッダのインデントアイコン定義

AddIcon http://[fec0::123:4567:89ab:cdef]/icons/text.gif .txt

IPv6アドレスを指定する場合のアイコン定義

(12)　AddIconByEncoding　｛(文字列，URL)｜URL｝　MIMEエンコーディング　〔MIMEエンコーディング　…〕

(a)　内容

ディレクトリインデクスの整形表示時のアイコンをMIMEエンコーディングと対応付けて表示する場合に指定します。文字列には画像表示ができないWebブラウザの場合に表示する文字を指定します。URLにアイコンの画像ファイルのURLを指定します。自ホスト内の画像ファイルを指定する場合，URLの「http：//IPアドレス」は省略できます。なお，URLの「http：//IPアドレス」を省略しないでIPv6アドレスを指定する場合は，IPv6アドレスを[　]で囲んでください。

このディレクティブを複数指定する場合，同じMIMEタイプに異なる文字列やURLは指定できません。

(b)　記述できる場所

httpsd.conf，<VirtualHost>，<Directory>，.htaccess

(c)　上書き許可

Indexesレベル

(d)　指定例

AddIconByEncoding (CMP，/icons/compressed.gif) x-compress x-gzip

MIMEエンコーディングx-compressおよびx-gzipの場合のアイコン定義

(13)　AddIconByType　｛(文字列，URL)｜URL｝　MIMEタイプ　〔MIMEタイプ　…〕

(a)　内容

ディレクトリインデクスの整形表示時のアイコンをMIMEタイプと対応付けて表示する場合に指定します。画像表示ができないWebブラウザの場合に表示する文字は文字列で指定できます。また，URLで表示するアイコンの画像ファイル名の場所を指定できます。なお，URLの「http：//IPアドレス」を省略しないでIPv6アドレスを指定する場合は，IPv6アドレスを[　]で囲んでください。

このディレクティブを複数指定する場合，同じMIMEタイプに異なるファイル名は指定できません。

(b)　記述できる場所

httpsd.conf，<VirtualHost>，<Directory>，.htaccess

(c)　上書き許可

Indexesレベル

(d)　指定例

AddIconByType (TXT，/icons/text.gif) text/*

MIMEタイプ　text/*の場合のアイコン定義

AddIconByType (IMG，/icons/image2.gif) image/*

MIMEタイプ　image/*の場合のアイコン定義

AddIconByType (SND，/icons/sound2.gif) audio/*

MIMEタイプ　audio/*の場合のアイコン定義

AddIconByType (VID，/icons/movie.gif) video/*

MIMEタイプ　video/*の場合のアイコン定義

(14)　AddLanguage　言語コード　拡張子

(a)　内容

ドキュメントで使用する言語を指定します。言語コードはContent-Languageレスポンスヘッダに設定されます。このディレクティブを指定すると，Webブラウザの言語設定で言語コードの優先順位（Accept-Languageヘッダ）がリクエストに設定されている場合，Webサーバから送信するコンテンツを選択するコンテントネゴシエーションができます。言語コードはWebブラウザが送信するヘッダ情報に依存します。基本的には，ISO639に定義されている言語コードに従って指定します。なお，コンテントネゴシエーションを有効にするためには，OptionsディレクティブでMultiViewsオプションを設定しなければなりません。このディレクティブを複数指定する場合，同じ拡張子に異なる言語コードは指定できません。

(b)　記述できる場所

httpsd.conf，<VirtualHost>，<Directory>，.htaccess

(c)　上書き許可

FileInfoレベル

(d)　指定例

AddLanguage ja .ja                 日本語
AddLanguage en .en                 英語
AddLanguage fr .fr                 フランス語
AddLanguage de .de                 ドイツ語
AddLanguage da .da                 デンマーク語
AddLanguage el .el                 ギリシャ語
AddLanguage it .it                 イタリア語

(15)　AddType　MIMEタイプ　拡張子　〔拡張子　…〕

(a)　内容

TypesConfigディレクティブで指定したファイルに未定義のコンテンツの拡張子とMIMEタイプを関連づけたい場合に指定します。このディレクティブを複数指定する場合，同じ拡張子に異なるMIMEタイプは指定できません。

(b)　記述できる場所

httpsd.conf，<VirtualHost>，<Directory>，.htaccess

(c)　上書き許可

FileInfoレベル

(d)　指定例

AddType text/html .shtml

MIMEタイプtext/htmlと拡張子.shtmlを関連づけます。

(16)　Alias　URL　ディレクトリ名

(a)　内容

Webブラウザからリクエストされた特定のURLを別名に置き換える場合に指定します。ただし，URLには，?以降（問い合わせ文字列）を指定できません。URLで指定されたディレクトリを，ディレクトリ名で指定したディレクトリに置き換えて，Webブラウザに表示します。

ディレクトリ名は，絶対パスで指定してください。

(b)　記述できる場所

httpsd.conf，<VirtualHost>

(c)　指定例

Alias /icons/ "C:/Program Files/Hitachi/httpsd/icons/"

/icons/をC:/Program Files/Hitachi/httpsd/icons/に置き換えます。

(17)　AliasMatch　正規表現　新パス

(a)　内容

WebブラウザからリクエストされたURLを別名に置き換える場合に指定します。ただし，URLには，?以降（問い合わせ文字列）を指定できません。

正規表現で記述した条件を満たすURLがWebブラウザからリクエストされた場合，指定した新パスのコンテンツをWebブラウザに表示します。正規表現で括弧（）を使用してグループ化している場合，そのi番目のグループの表現にマッチした文字列を，新パスで $iを使用して参照できます。iには1から9までの数字を指定します。

新パスは，絶対パスで指定してください。また，新パスの文字として，'$'または'&'を含める場合は，その文字の前に'¥'を付加してください。なお，$iを指定する際には，'$'の前に'¥'を付加する必要はありません。

(b)　記述できる場所

httpsd.conf，<VirtualHost>

(c)　指定例

AliasMatch ^/html/(.*) "C:/htdocs/html/$1"

"/html/"で始まるリクエストのとき，/html/部分をC:/htdocs/html/に置き換えます。例えば，/html/index.htmlへのアクセスの場合，C:/htdocs/html/index.htmlに置き換えます。

(18)　Allow from　｛ホスト｜all｜env=環境変数｝　〔｛ホスト｜env=環境変数｝　…〕

(a)　内容

Webサーバへアクセスできるクライアントを制限する場合に指定します。ホストにはアクセスを許可するホストのドメイン名，IPアドレス，サブネット，ネットマスクを指定できます。すべてのホストからのアクセスを許可する場合はallを指定します。

また，ホストには，IPv6アドレスに関するドメイン名，アドレスおよびプレフィックス長も指定できます。IPv6アドレスを指定する場合は，IPv6アドレスを[　]で囲まないでください。プレフィックス長は，「IPv6アドレス/プレフィックス長」の形式で指定します。プレフィックス長は10進数で指定してください。

env=環境変数を指定すると，サーバへのアクセスを環境変数の値で制御できます。BrowserMatch，BrowserMatchNoCase，SetEnvIf，SetEnvIfNoCaseディレクティブと併せて使用すれば，HTTPリクエストヘッダフィールドに基づいてアクセスを制限できます。

Allowディレクティブ（アクセス許可）とDenyディレクティブ（アクセス制限）は，Orderディレクティブで評価の順序を設定できます。

ホスト
意味

ドメイン名
ドメイン名で指定したホストからのアクセスを許可する。

IPアドレス
IPアドレスで指定したホストからのアクセスを許可する。

サブネット
サブネット（IPアドレスの最初の1から3バイト）で指定したホストからのアクセスを許可する。

ネットマスク
ネットマスク表記（例:10.1.0.0/255.255.0.0）で指定したホストからのアクセスを許可する。
10.1.0.0/16形式で表記した場合，10.1.0.0/255.255.0.0と同じ意味である。

(b)　記述できる場所

<Directory>，.htaccess

(c)　上書き許可

Limitレベル

(d)　指定例

（例1）

SetEnvIf User-Agent Mozilla.* access_ok
<Directory /docroot>
   Order deny,allow
   Deny from all
   Allow from env=access_ok
</Directory>

この場合，User-Agentの文字列がMozillaを含むブラウザからのリクエストだけがアクセスを許可されて，ほかのアクセスは拒否されます。

（例2）

ホストにIPv6アドレスを指定する場合は，次のように指定します。

allow from fec0::123:4567:89ab:cdef

また，プレフィックス長を指定するとき，次の指定はどれも同じ意味となります。

allow from fec0:0:0:1230::/64
allow from FEC0:0:0:1230::/64
allow from fec0::1230:0:0:0:0/64
allow from fec0:0000:0000:1230:0000:0000:0000:0000/64

(19)　AllowOverride　指示子　〔指示子　…〕

～《All》

(a)　内容

AccessFileNameディレクティブで指定したファイルでアクセス情報定義の上書きを許可するかどうかを設定します。各指示子によって制御できるディレクティブは，各ディレクティブの上書き許可の記述を参照してください。

指示子
内容

AuthConfig
AuthGroupFile，AuthName，AuthType，AuthUserFile，Requireディレクティブなど
サーバへのアクセス制御関連のディレクティブの上書きを許可

FileInfo
AddType，AddEncoding，AddLanguageディレクティブなど
コンテンツ管理，MIMEタイプ，暗号化などファイル情報関連のディレクティブの上書きを許可

Indexes
FancyIndexing，AddIcon，AddDescriptionディレクティブなど
ディレクトリインデクス関連のディレクティブの上書きを許可

Limit
Allow from，Deny from，Orderディレクティブ
ホスト名またはIPアドレスを用いたアクセス制御の上書きを許可

Options
Optionsディレクトリの使用を許可

All
すべての上書きを許可する

None
すべての上書きを禁止する

(b)　記述できる場所

<Directory>

(20)　AuthAuthoritative　｛On｜Off｝

(a)　内容

ユーザ認証をする場合の制御方法を指定します。

On：AuthUserFile，AuthGroupFile，Requireディレクティブの設定によるユーザ認証をします。ユーザ未登録またはパスワード不整合の場合は401エラーステータスをWebブラウザに表示します。

Off：AuthUserFile，AuthGroupFile，Requireディレクティブの設定によるユーザ認証をします。そのとき，パスワード不整合の場合は401エラーステータスをWebブラウザに表示します。さらに，ユーザ未登録の場合には他製品のモジュール（機能）でユーザ認証をします。

(b)　記述できる場所

<Directory>，.htaccess

(c)　上書き許可

AuthConfigレベル

(21)　AuthGroupFile　ファイル名

(a)　内容

グループでユーザ認証をする場合，認証するグループのリストを格納しているファイル名を指定します。ファイル名には，絶対パスまたはServerRootディレクティブの指定値からの相対パスが指定できます。

グループファイルはテキストエディタを使用して次に示すようなフォーマットで作成してください。

グループ名：ユーザ名〔 ユーザ名　…〕

任意のグループ名に，ユーザ認証のためのパスワードファイルに登録しているユーザ名を定義します。1行につき1グループで指定します。グループファイルには複数グループを定義できます。同じグループ名の行を複数指定した場合には，同じグループ名に登録されているすべてのユーザ名を含んだ一つのグループが定義されます。

(b)　記述できる場所

<Directory>，.htaccess

(c)　上書き許可

AuthConfigレベル

(22)　AuthName　realm名

(a)　内容

ユーザ認証する場合のrealm名（Webブラウザのユーザ認証画面に表示される）を指定します。このディレクティブを指定する場合はAuthType，Require，AuthUserFile（またはAuthGroupFile）ディレクティブを必ず指定しなければなりません。ただし，ディレクトリサービスを利用したユーザ認証を行う場合は，AuthUserFile（またはAuthGroupFile）ディレクティブの指定は必要ありません。

(b)　記述できる場所

<Directory>，.htaccess

(c)　上書き許可

AuthConfigレベル

(23)　AuthType　認証タイプ名

(a)　内容

ユーザ認証する場合の認証制御のタイプを指定します。認証タイプ名として"Basic"が指定できます。このディレクティブを指定する場合はAuthName，Require，AuthUserFile（またはAuthGroupFile）ディレクティブを必ず指定しなければなりません。ただし，ディレクトリサービスを利用したユーザ認証を行う場合は，AuthUserFile（またはAuthGroupFile）ディレクティブの指定は必要ありません。

Basic：Base64コード変換をします。

(b)　記述できる場所

<Directory>，.htaccess

(c)　上書き許可

AuthConfigレベル

(24)　AuthUserFile　ファイル名

(a)　内容

ユーザ名でユーザ認証をする場合，認証するユーザ名とパスワードのリストを格納しているファイル名を指定します。

ファイル名には，絶対パスまたはServerRootディレクティブの指定値からの相対パスが指定できます。

(b)　記述できる場所

<Directory>，.htaccess

(c)　上書き許可

AuthConfigレベル

6.2.3　B，C，Dで始まるディレクティブ

＜この項の構成＞

(1)　BindAddress　｛IPアドレス｜*｝

(2)　BrowserMatch　"ブラウザ名"　環境変数〔=値〕　〔環境変数〔=値〕　…〕

(3)　BrowserMatchNoCase　"ブラウザ名"　環境変数〔=値〕　〔環境変数〔=値〕　…〕

(4)　CacheNegotiatedDocs　〔｛On｜Off｝〕

(5)　CoreDumpDirectory　ディレクトリ名　

(6)　CustomLog　｛ファイル名｜パイプ｝　｛"フォーマット"｜ラベル名｝　〔env=〔!〕環境変数〕

(7)　DefaultIcon　URL

(8)　DefaultLanguage　言語コード

(9)　DefaultType　MIMEタイプ

(10)　Deny from　｛ホスト｜all｜env=環境変数｝　〔｛ホスト｜env=環境変数｝　…〕

(11)　DirectoryIndex　ファイル名　〔ファイル名　…〕

(12)　DocumentRoot　ディレクトリ名

(1)　BindAddress　｛IPアドレス｜*｝

～《*》

(a)　内容

Webサーバをインストールしたサーバ機に割り当てられたIPアドレスのうち，どのIPアドレスからWebサーバに接続できるようにするかを指定します。IPアドレスにIPv6アドレスは指定できません。どのIPv4アドレスからも接続できるようにする場合には，*を指定します。Listenディレクティブを指定した場合は，BindAddressディレクティブの指定は無視されます。

(b)　記述できる場所

httpsd.conf

(2)　BrowserMatch　"ブラウザ名"　環境変数〔=値〕　〔環境変数〔=値〕　…〕

(a)　内容

Webブラウザごとに環境変数を設定する場合に指定します。設定する値のデフォルト値は1です。環境変数の前に!が付いたときは，その環境変数の設定を解除します。ブラウザ名は正規表現で指定でき，大文字，小文字を区別します。

(b)　記述できる場所

httpsd.conf，<VirtualHost>，<Directory>，.htaccess

(c)　指定例

BrowserMatch "Mozilla/2" nokeepalive
BrowserMatch "MSIE 4¥.0b2;" nokeepalive downgrade-1.0 force-response-1.0
BrowserMatch "RealPlayer 4¥.0" force-response-1.0
BrowserMatch "Java/1¥.0" force-response-1.0
BrowserMatch "JDK/1¥.0" force-response-1.0
BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully
BrowserMatch "^WebDrive" redirect-carefully
BrowserMatch "^WebDAVFS/1.[012]" redirect-carefully
BrowserMatch "^gnome-vfs" redirect-carefully

指定例で示した環境変数の意味を次に示します。

環境変数 | 内容
nokeepalive | KeepAlive接続を無効にします。Viaヘッダがリクエストに付加されている場合は，KeepAlive接続を無効にできません。
downgrade-1.0 | HTTP/1.1以上のリクエストを，HTTP/1.0のリクエストとして扱います。
force-response-1.0 | HTTP/1.0のリクエストに対して，常にHTTP/1.0のレスポンスを応答します。
redirect-carefully | ディレクトリへのアクセスでURLの最後に'/'を付加していなく，かつそれがGETメソッド以外を使用していたとき，クライアントにリダイレクトを要求しません。

(3)　BrowserMatchNoCase　"ブラウザ名"　環境変数〔=値〕　〔環境変数〔=値〕　…〕

(a)　内容

Webブラウザごとに環境変数を設定する場合に指定します。設定する値のデフォルト値は1です。環境変数の前に!が付いたときは，その環境変数の設定を解除します。ブラウザ名は正規表現で指定でき，大文字，小文字を区別しません。

(b)　記述できる場所

httpsd.conf，<VirtualHost>，<Directory>，.htaccess

(4)　CacheNegotiatedDocs　〔｛On｜Off｝〕

(a)　内容

コンテントネゴシエーションをするリクエストで，クライアント側のキャッシュを有効にするかどうかを指定します。ディレクティブの引数を省略した場合は，Onを指定した場合と同様の動作をします。ディレクティブを設定しない場合は，Offを指定した場合と同様の動作をします。このディレクティブの指定は，HTTP/1.1のリクエストに対しては無効です。

On：キャッシュされるようになります。

Off：Expiresヘッダが付けられてキャッシュされなくなります。

(b)　記述できる場所

httpsd.conf

(5)　CoreDumpDirectory　ディレクトリ名　[図データ]

～《ServerRootディレクティブ指定値》

(a)　内容

コアをダンプするディレクトリを指定します。絶対パスまたはServerRootディレクティブの指定値からの相対パスが指定できます。なお，指定したディレクトリには，User，Groupディレクティブで指定したユーザ，グループからの書き込み権限を付与する必要があります。Linux版では，ディレクティブをコンフィグファイルに指定した場合だけ有効となります。

(b)　注意事項

SolarisおよびHP-UXの場合，ユーザIDが変更されたプロセスについては，コアはダンプされません。Hitachi Web Serverをスーパーユーザで起動すると，Userディレクティブで指定したユーザに変更されます。そのため，コアをダンプする事象が発生した場合でもダンプされません。

(c)　記述できる場所

httpsd.conf

(6)　CustomLog　｛ファイル名｜パイプ｝　｛"フォーマット"｜ラベル名｝　〔env=〔!〕環境変数〕

(a)　内容

任意のフォーマットのログをファイルに出力させる場合に指定します。フォーマットはLogFormatディレクティブで指定するフォーマットと同様です。

このディレクティブを複数指定する場合，同じファイル名は複数指定できません。

ファイル名：ログの出力先ファイル名を指定します。ファイル名には，絶対パスまたはServerRootディレクティブの指定値からの相対パスが指定できます。

パイプ：標準入力からログ情報を受け取るプログラムを"|プログラム名"の形式で指定します。Webサーバはログ情報に含める改行コードをCRLFにして渡します。

（Windows版での注意事項）

パイプで指定されたプログラムは，制御プロセスとWebサーバプロセス用にログ情報を受け取るそれぞれ別のプロセスとして生成されます。これをパイププロセスと呼びます。サービスとしてWebサーバを起動する場合には次の点に注意してください。

制御プロセスのログ情報取得不可
サービスとしてWebサーバを起動した場合には，制御プロセスからのログ情報を受け取るための標準入力はNULデバイスに関連づけられているため，制御プロセス用のパイププロセスは，制御プロセスからのログ情報を受け取ることはできません。制御プロセスからのログ情報とは，Webサーバ起動，停止時のエラーログ情報であり，これらの情報は採取できないことになります。Webサーバ起動後のエラーログ，アクセスログの情報はWebサーバプロセスからのログ情報となりますので，Webサーバプロセス用のパイププロセスで受け取れます。

プログラム作成時の留意点
制御プロセス用のパイププロセスは，NULデバイスからのデータ読み込み処理で，read()のバッファが小さいと入力データ待ち状態が解除されないことがあります。read()のバッファを十分大きい値を取るなどしてパイププロセスが入力データ待ち状態にならないようにしてください。

プログラムに引数を指定する場合の注意
プログラム，引数に空白を含む場合には，¥"で囲んでください。
プログラム，引数を¥"で囲む場合には，全体も¥"で囲んでください。
（例）
CustomLog "|¥"¥"C:/Program Files/Hitachi/httpsd/sbin/rotatelogs.exe¥" ¥"C:/Program Files/Hitachi/httpsd/logs/access¥" 86400 -diff 540¥"" common

"フォーマット"：ログフォーマットを指定します。指定できるフォーマット名を表6-3，表6-4に示します。

ラベル名：LogFormatディレクティブで定義したラベル名を指定します。

env=環境変数：指定した環境変数が設定されている場合に，ログを採取します。

env=!環境変数：指定した環境変数が設定されていない場合に，ログを採取します。

表6-3　フォーマット一覧

フォーマット
意味

%A※1
WebサーバのIPアドレス。

%a※1
クライアントのIPアドレス。

%B
送信バイト数（HTTPヘッダおよびchunkedエンコーディングによって追加されたデータを除く）。

%b
送信バイト数（HTTPヘッダおよびchunkedエンコーディングによって追加されたデータを除く）。ただし，0の場合は-（ハイフン）。

%{cookie_name}C
Cookieヘッダ値に含まれるクッキー名cookie_nameの値。Cookieヘッダ値に複数のcookie_nameが見つかった場合，すべての値を出力する。

%D
リクエスト処理時間をマイクロ秒で表示。

%{env_name}e
env_nameに指定した環境変数の値。

%f
クライアントが要求したディレクトリまたはファイル名。

%H
リクエストプロトコル(HTTP/1.0など)。

%h※2
クライアントのホスト名。

%I
リクエストとヘッダを含む，全受信バイト数。

%{header_name}i
header_nameに指定したHTTP通信によるリクエスト中のhttpプロトコルヘッダの値。

%l
クライアントの識別情報（IdentityCheckディレクティブがOn，かつクライアント上でidentdが動作している場合）。

%m
リクエストメソッド(GET，POSTなど)。

%{note_name}n
note_nameに指定したWebサーバ内モジュールの注記の値。

%O
ヘッダを含む，全送信バイト数。

%{header_name}o
header_nameに指定したHTTP通信で送信中のhttpプロトコルヘッダの値。

%P
HTTP通信のリクエストを処理するプロセスID。

%{hws_thread_id}P
HTTP通信のリクエストを処理するスレッドID。Windows版で有効。

%p
ポート番号。

%q
問い合わせ文字列。

%r
HTTP通信のリクエストの先頭行。

%s
ステータス（内部リダイレクトされた場合はオリジナルを示す）。

%T
リクエスト処理に掛かった時間（秒）。HWSLogTimeVerboseディレクティブでOnを指定すると，ミリ秒単位まで表示。

%t
リクエスト処理を開始した時刻。HWSLogTimeVerboseディレクティブでOnを指定すると，ミリ秒単位まで表示。

%{format}t
リクエスト処理を開始した時刻。strftime()で定義されているフォーマットをformatに指定する。

%U
URL。

%u
クライアントのユーザ名（ユーザ認証をした場合）。

%V※2
UseCanonicalNameディレクティブの指定に従い，ServerNameディレクティブ指定値，サーバ名またはIPアドレス。

%v
サーバ名。

%X
レスポンス完了時の接続ステータス。
　　＋：レスポンス送信後も接続を維持する。
　　－：レスポンス送信後に接続を切断する。
　　Ｘ：レスポンス完了前に接続を切断する。

%>s
最終ステータス。

注

フォーマットで示す{　}は選択を意味するものではありません。{　}内の太字はログを採取する変数名を，細字は文字列そのままを記述します。

注※1

フォーマットに%Aまたは%aを指定した場合，IPv6アドレスも出力できます。

注※2

フォーマットに%hまたは%Vを指定した場合，IPv6アドレスに対応したホスト名またはIPv6アドレスも出力できます。

表6-4　SSL関連のログフォーマット一覧

フォーマット | 意味
%{version}c | SSLのバージョン
%{cipher}c | 現在の通信で使用している暗号種別
%{clientcert}c | SSLクライアント証明書のsubjectのDistinguished Name

フォーマットの%の後ろにステータスコードを記述できます。

（例）エラーステータスコード400および501の場合，httpプロトコルヘッダのUser-Agent値のログを採取する。

%400,501 {User-Agent}i

（例）エラーステータスコード200，304および302の3種類以外の場合，httpプロトコルヘッダのReferer値のログを採取する。

%!200,304,302 {Referer}i

また，env=は，指定した環境変数の設定によって，ログの採取を分ける場合に指定します。

（例）gifへのアクセスはgif.logに，gif以外へのアクセスはnongif.logにログを採取する。

SetEnvIf Request-URI ¥.gif$ gif-image
CustomLog gif.log common env=gif-image
CustomLog nongif.log common env=!gif-image

(b)　記述できる場所

httpsd.conf，<VirtualHost>

(c)　指定例

CustomLog logs/access.log common
CustomLog logs/ssl.log "%t %{version}c %{cipher}c %{clientcert}c"

(7)　DefaultIcon　URL

(a)　内容

ディレクトリインデクスで表示するアイコンを指定します。AddIcon，AddIconByTypeおよびAddIconByEncodingディレクティブのどれにも該当しない場合に表示するアイコンのURLを指定します。なお，URLの「http：//IPアドレス」を省略しないでIPv6アドレスを指定する場合は，IPv6アドレスを[　]で囲んでください。

(b)　記述できる場所

httpsd.conf，<VirtualHost>，<Directory>，.htaccess

(c)　上書き許可

Indexesレベル

(d)　指定例

DefaultIcon /icons/unknown.gif

(8)　DefaultLanguage　言語コード

(a)　内容

ドキュメントで使用するデフォルトの言語を指定します。指定した言語コードはContent-Languageレスポンスヘッダに設定されます。AddLanguageディレクティブの設定に対するデフォルト値となります。デフォルト値が設定されていない場合，Content-Languageレスポンスヘッダは送信しません。

(b)　記述できる場所

httpsd.conf，<VirtualHost>，<directory>，.htaccess

(c)　上書き許可

FileInfoレベル

(9)　DefaultType　MIMEタイプ

～《text/plain》

(a)　内容

TypesConfigディレクティブで指定したファイルで定義したMIMEタイプのどれにも該当しないコンテンツに対して使用するMIMEタイプ名を指定します。

(b)　記述できる場所

httpsd.conf，<VirtualHost>，<Directory>，.htaccess

(c)　上書き許可

FileInfoレベル

(d)　指定例

DefaultType text/plain

(10)　Deny from　｛ホスト｜all｜env=環境変数｝　〔｛ホスト｜env=環境変数｝　…〕

(a)　内容

Webサーバへアクセスできるクライアントを制限する場合に指定します。ホストにはアクセスを禁止するホストのドメイン名，IPアドレス，サブネット，ネットマスクを指定できます。すべてのホストからアクセスを禁止する場合は，allを指定します。

また，ホストには，IPv6アドレスに関するドメイン名，アドレスおよびプレフィックス長も指定できます。IPv6アドレスを指定する場合は，IPv6アドレスを[　]で囲まないでください。プレフィックス長は，「IPv6アドレス/プレフィックス長」の形式で指定します。プレフィックス長は10進数で指定してください。

env=環境変数を指定すると，サーバへのアクセスを環境変数の値で制御できます。BrowserMatch，BrowserMatchNoCase，SetEnvIf，SetEnvIfNoCaseディレクティブと併せて使用すれば，HTTPリクエストヘッダフィールドに基づいてアクセスを制限できます。

Allowディレクティブ（アクセス許可）とDenyディレクティブ（アクセス制限）は，Orderディレクティブで評価の順序を設定できます。

ホスト
意味

ドメイン名
ドメイン名で示すホストからのアクセスを禁止する。

IPアドレス
IPアドレスで示すホストからのアクセスを禁止する。

サブネット
サブネット（IPアドレスの最初の1から3バイト）で指定したホストからのアクセスを禁止する。

ネットマスク
ネットマスク表記（例：10.1.0.0/255.255.0.0）で指定したホストからのアクセスを禁止する。
10.1.0.0/16形式で表記した場合10.1.0.0/255.255.0.0と同じ意味である。

(b)　記述できる場所

<Directory>，.htaccess

(c)　上書き許可

Limitレベル

(11)　DirectoryIndex　ファイル名　〔ファイル名　…〕

～《index.html》

(a)　内容

Webブラウザからのリクエストが特定のコンテンツを指定していない場合に，デフォルトとしてクライアントに送信するコンテンツのファイル名を指定します。ファイル名を複数指定した場合は，先に指定したファイル名を優先して送信します。

ここで指定したファイルがリクエストされたディレクトリにない場合，Optionsディレクティブの指定によってWebブラウザの表示が変わります。

Indexesが有効の場合
WebブラウザにWebサーバで作成したディレクトリのインデクスを表示します。

Indexesが無効の場合
ステータスコード403 Forbiddenを応答します。

(b)　記述できる場所

httpsd.conf，<VirtualHost>，<Directory>，.htaccess

(c)　上書き許可

Indexesレベル

(d)　指定例

DirectoryIndex index.html

ファイル名の指定がないリクエストの場合，ディレクトリにindex.htmlがあれば表示させます。

(12)　DocumentRoot　ディレクトリ名

～《/opt/hitachi/httpsd/htdocs》 (UNIX版)

～《ServerRootディレクティブのデフォルト値/htdocs》 (Windows版)

(a)　内容

コンテンツを格納するドキュメントルートディレクトリを絶対パスで指定します。ディレクトリ名の終端には/（スラッシュ）を記述しないでください。

ディレクトリ名は，絶対パスで指定してください。

(b)　記述できる場所

httpsd.conf，<VirtualHost>

(c)　指定例

DocumentRoot "C:/Program Files/Hitachi/httpsd/htdocs"

6.2.4　E，F，G，H，Iで始まるディレクティブ

＜この項の構成＞

(1)　ErrorDocument　エラーステータス番号　｛テキスト｜ローカルURL｜フルURL｝

(2)　ErrorLog　｛ファイル名｜パイプ｝

(3)　ExtendedStatus　｛On｜Off｝

(4)　ExpiresActive　｛On｜Off｝

(5)　ExpiresByType　MIMEタイプ　｛A｜M｝時間

(6)　ExpiresDefault　｛A｜M｝時間

(7)　FancyIndexing　｛On｜Off｝

(8)　FileETag　〔｛+｜-｝〕オプション　〔〔｛+｜-｝〕オプション …〕

(9)　ForceType　MIMEタイプ

(10)　Group　グループ名　

(11)　Header｛｛set｜append｜add｝ヘッダ　ヘッダ値〔env=〔!〕環境変数〕｜unset　ヘッダ｝

(12)　HeaderName　ファイル名

(13)　HostnameLookups　｛On｜Off｜double｝

(14)　HWSContentCacheMaxFileSize　サイズ　

(15)　HWSContentCacheSize　サイズ　

(16)　HWSErrorDocumentMETACharset ｛On｜Off｜文字セット｝　

(17)　HWSGracefulStopLog ｛On｜Off｝

(18)　HWSGracefulStopTimeout　強制停止時間

(19)　HWSImapMenuCharset　文字セット

(20)　HWSKeepStartServers ｛On｜Off｝　

(21)　HWSLogSSLVerbose {On｜Off}

(22)　HWSLogTimeVerbose ｛On｜Off｝

(23)　HWSMaxQueueSize　リクエストキューサイズ　

(24)　HWSNotModifiedResponseHeaders　ヘッダ名〔ヘッダ名 …〕

(25)　HWSProxyPassReverseCookie　パス名

(26)　HWSRequestLog　｛ファイル名｜パイプ｝

(27)　HWSRequestLogType　トレース種別　〔トレース種別　…〕

(28)　HWSSetEnvIfIPv6　リクエスト値　IPv6アドレス　環境変数〔=値〕〔環境変数〔=値〕…〕

(29)　HWSStackTrace｛On｜Off｝　

(30)　HWSSuppressModuleTrace　モジュールファイル名　〔all｜hook｜handler〕

(31)　HWSTraceIdFile　ファイル名

(32)　HWSTraceLogFile　ファイル名

(33)　IdentityCheck　｛On｜Off｝　

(34)　ImapBase　｛map｜referer｜URL｝

(35)　ImapDefault　｛error｜nocontent｜map｜referer｜URL｝

(36)　ImapMenu　｛none｜formatted｜semiformatted｜unformatted｝

(37)　Include　ファイル名

(38)　IndexIgnore　ファイル名　〔ファイル名　…〕

(39)　IndexOptions　〔｛+｜-｝〕オプション　〔〔｛+｜-｝〕オプション　…〕

(40)　IndexOrderDefault　｛Ascending｜Descending｝　｛Name｜Date｜Size｜Description｝

(1)　ErrorDocument　エラーステータス番号　｛テキスト｜ローカルURL｜フルURL｝

(a)　内容

エラーが発生したときに，Webブラウザへ表示するメッセージをカスタマイズする場合に指定します。

テキスト：文字列を"で囲み指定します。

ローカルURL：先頭に/を記述して，自サイト内のコンテンツを指定します。

フルURL：http://またはhttps://で始まるURLを記述し，他サイトのコンテンツを指定します。

このディレクティブに指定できるエラーステータス番号と，テキスト，ローカルURL，フルURLの指定可否について，次に示します。

エラーステータス番号（意味） | テキスト | ローカルURL | フルURL
400 (Bad Request) | ○ | × | ×
401 (Authorization Required) | ○ | ○ | ×
403 (Forbidden) | ○ | ○ | ○
404 (Not Found) | ○ | ○ | ○
405 (Method Not Allowed) | ○ | ○ | ○
406 (Not Acceptable) | ○ | ○ | ○
408 (Request Time-out) | × | × | ×
410 (Gone) | ○ | ○ | ○
411 (Length Required) | ○ | × | ×
412 (Precondition Failed) | ○ | ○ | ○
413 (Request Entity Too Large) | ○ | ○ | ○
414 (Request-URI Too Large) | ○ | × | ×
416 (Requested Range Not Satisfiable) | ○ | ○ | ○
417 (Expectation Failed) | ○ | × | ×
500 (Internal Server Error) | ○ | ○ | ○
501 (Method Not Implemented) | ○ | ○ | ○
502 (Bad Gateway) | ○ | ○ | ×
503 (Service Temporarily Unavailable) | ○※ | ○※ | ○※
506 (Variant Also Negotiates) | ○ | ○ | ○

（凡例）

○：指定できる。

×：指定できない。

注※

流量制限機能が返すメッセージをカスタマイズする場合は，QOSResponseディレクティブまたはQOSRedirectディレクティブを使用してください。

このディレクティブ指定時には，次の点に留意してください。

このディレクティブを複数指定する場合，同じエラー番号に異なる指定はできません。

CGIプログラム内で設定されたエラーステータスに対しては，メッセージをカスタマイズできません。

ローカルURL，フルURLの指定先でエラーとなる場合は，カスタマイズできません。

ローカルURLの指定先でコンテントネゴシエーションが発生する場合は，エラーとなりカスタマイズできないことがあります。

LoadModuleディレクティブによって動的に接続したモジュール内で設定されたエラーステータスに対しても，そのモジュールの実装方法によってメッセージをカスタマイズできない場合があります。

フルURLの指定時には，ステータスコード302 FoundおよびLocationヘッダに新パスを設定した応答を返します。通常，ステータスコード302を受けたWebブラウザは，Locationヘッダに指定されたアドレスに対して自動的にリダイレクトします。

フルURLの指定時には，IPv6アドレスまたはIPv6アドレスに対応したホスト名も指定できます。IPv6アドレスを指定する場合は，IPv6アドレスを[　]で囲んでください。

(b)　記述できる場所

httpsd.conf，<VirtualHost>，<Directory>，.htaccess

(c)　上書き許可

FileInfoレベル

(d)　指定例

ErrorDocument 500 "Server Error."
ErrorDocument 404 /missing.html
ErrorDocument 403 http://some.other_server.com/subscription_info.html
ErrorDocument 404 http://[fec0::123:4567:89ab:cdef]/missing.html

(2)　ErrorLog　｛ファイル名｜パイプ｝

～《logs/error_log》 (UNIX版)

～《logs/error.log》 (Windows版)

(a)　内容

エラーログを出力するファイル名を指定します。出力するログの内容は，LogLevelディレクティブで選択できます。

ファイル名には，絶対パスまたはServerRootディレクティブの指定値からの相対パスが指定できます。

ファイル名：エラーログを格納するファイル名を指定します。ServerRootディレクティブ指定値からの相対パスで指定できます。

パイプ：標準入力からエラーログ情報を受け取るプログラムを"|プログラム名"の形式で指定します。Windows版での注意事項は，CustomLogディレクティブを参照してください。

(b)　記述できる場所

httpsd.conf，<VirtualHost>

(c)　指定例

ErrorLog logs/error.log

(3)　ExtendedStatus　｛On｜Off｝

(a)　内容

server-statusハンドラによるステータス表示形式で，それぞれのリクエストの拡張ステータス情報を表示するかどうかを指定します。

On：拡張ステータス情報を表示します。この場合，クライアントのIPアドレスがIPv6アドレスでも表示します。ただし，最大表示数は31バイトです。

Off：拡張ステータス情報を表示しません。

(b)　記述できる場所

httpsd.conf

(4)　ExpiresActive　｛On｜Off｝

(a)　内容

レスポンスにExpiresヘッダおよびCache-Controlヘッダを追加するかどうかを指定します。

On：ExpiresヘッダおよびCache-Controlヘッダを追加します。

Off：ExpiresヘッダおよびCache-Controlヘッダを追加しません。

(b)　注意事項

有効期限設定機能を使用するためにはmod_expiresモジュールの組み込みが必要です。有効期限設定機能の詳細は，「4.11　有効期限設定機能」を参照してください。

ExpiresDefaultディレクティブまたはExpiresByTypeディレクティブを指定していない場合は，ExpiresActiveディレクティブにOnが指定されていても，レスポンスにExpiresヘッダおよびCache-Controlヘッダは追加されません。

(c)　記述できる場所

httpsd.conf，<VirtualHost>，<Directory>，.htaccess

(d)　上書き許可

Indexesレベル

(5)　ExpiresByType　MIMEタイプ　｛A｜M｝時間

～((0－2147483647))（単位：秒）

(a)　内容

レスポンスにExpiresヘッダおよびCache-Controlヘッダを追加する場合に，指定するMIMEタイプのドキュメントに対する有効期限を指定します。このディレクティブはExpiresActiveディレクティブでOnを指定している場合に有効になります。ExpiresDefaultディレクティブで設定されたデフォルトの有効期限は，この設定によってMIMEタイプ別に上書きされます。

基準時刻をAまたはMで指定し，基準時刻から有効期限までの時間を秒単位で指定します。AまたはMと，時間との間に空白は入りません。

A：クライアントがアクセスした時刻を基準時刻とします。

M：ファイルを最後に修正した時刻を基準時刻とします。

(b)　注意事項

有効期限設定機能を使用するためにはmod_expiresモジュールの組み込みが必要です。有効期限設定機能の詳細は，「4.11　有効期限設定機能」を参照してください。

グリニッジ標準時（GMT）の2038年1月19日3時14分7秒を超えないように，有効期限を設定してください。

(c)　記述できる場所

httpsd.conf，<VirtualHost>，<Directory>，.htaccess

(d)　上書き許可

Indexesレベル

(e)　指定例

ExpiresByType text/html A604800

(6)　ExpiresDefault　｛A｜M｝時間

～((0－2147483647))（単位：秒）

(a)　内容

レスポンスにExpiresヘッダおよびCache-Controlヘッダを追加する場合に，デフォルトの有効期限を指定します。このディレクティブはExpiresActiveディレクティブでOnを指定している場合に有効になります。この設定はExpiresByTypeディレクティブによってMIMEタイプごとに上書きされます。

基準時刻をAまたはMで指定し，基準時刻から有効期限までの時間を秒単位で指定します。AまたはMと，時間との間に空白は入りません。

A：クライアントがアクセスした時刻を基準時刻とします。

M：ファイルを最後に修正した時刻を基準時刻とします。

(b)　注意事項

有効期限設定機能を使用するためにはmod_expiresモジュールの組み込みが必要です。有効期限設定機能の詳細は，「4.11　有効期限設定機能」を参照してください。

グリニッジ標準時（GMT）の2038年1月19日3時14分7秒を超えないように，有効期限を設定してください。

(c)　記述できる場所

httpsd.conf，<VirtualHost>，<Directory>，.htaccess

(d)　上書き許可

Indexesレベル

(e)　指定例

ExpiresDefault A604800

(7)　FancyIndexing　｛On｜Off｝

(a)　内容

ディレクトリインデクスを表示する場合に，整形表示（ファンシーインデクス）をするかどうかを指定します。

On：整形表示をします。

Off：整形表示をしません。

(b)　記述できる場所

httpsd.conf，<VirtualHost>，<Directory>，.htaccess

(c)　上書き許可

Indexesレベル

(d)　指定例

FancyIndexing On

整形表示機能を使用します。

(8)　FileETag　〔｛+｜-｝〕オプション　〔〔｛+｜-｝〕オプション …〕

～《All》

(a)　内容

ETagレスポンスヘッダフィールドを作成するために使用されるファイル属性値を指定します。このディレクティブが指定されていない場合，ETagレスポンスヘッダフィールドにはファイルに割り振られた一意なID，最終更新時刻およびバイト数が設定されます。

オプションに＋－を指定しない場合は，オプションで指定した属性値が使用されます。

オプションに＋－を指定する場合は，FileETagディレクティブによって設定された属性値を変更できます。

＋：設定されている属性値にオプションで指定した属性値が追加されます。

－：設定されている属性値からオプションで指定した属性値が削除されます。

指定できるオプションの一覧を次に示します。

オプション | 意味
Inode | ファイルに割り振られた一意なIDが含まれます。
Mtime | ファイルの最終更新時刻が含まれます。
Size | ファイルのバイト数が含まれます。
All | Inode，Mtime，Sizeのオプションがすべて有効になります。
None | Etagヘッダが付きません。

(b)　注意事項

FileETagディレクティブのInodeオプションを有効にした場合，負荷分散をしているWebサーバ環境などで，同一のコンテンツを要求するごとに，異なるIDがEtagヘッダに含まれることがあります。このため，同一コンテンツでありながらそのEtagヘッダの内容が異なり，ブラウザやプロキシでのキャッシングにとって不都合となることがあります。この場合，FileETagディレクティブによって，Inodeオプションを無効にするように指定することで回避できます。

＋－を使用しないでこのディレクティブを複数指定すると，最後に指定したディレクティブだけが有効になります。

－を付加した属性値だけを指定した場合は，Allオプションを指定した場合と同じ動作になります。

AllオプションとNoneオプションには，＋－を指定できません。

オプションに'-Inode -Mtime -Size'と指定した場合は，このディレクティブを指定していない場合と同じ状態になります。ETagレスポンスヘッダフィールドにはファイルのinode番号，最終更新時刻およびバイト数が設定されます。

(c)　記述できる場所

httpsd.conf，<VirtualHost>，<Directory>，.htaccess

(d)　上書き許可

FileInfoレベル

(e)　指定例

（例1）

FileETag Inode Mtime Size
FileETag -Inode

この指定では，ファイルの最終更新時刻およびバイト数が属性値として使用されます。

（例2）

FileETag Inode Mtime
FileETag Size

この指定では，ファイルのバイト数が属性値として使用されます。

（例3）

FileETag All
FileETag -Inode -Mtime -Size

この指定では，ファイルの一意なID，最終更新時刻およびバイト数が属性値として使用されます。

(9)　ForceType　MIMEタイプ

(a)　内容

<Directory>ブロックまたはアクセスコントロールファイルに定義し，特定のディレクトリ下のすべてのコンテンツに対して使用するMIMEタイプを指定します。noneを指定すると，それまでのForceTypeディレクティブの指定が無効になります。

(b)　記述できる場所

<Directory>，.htaccess

(c)　上書き許可

FileInfoレベル

(10)　Group　グループ名　[図データ]

～《#-1》

(a)　内容

サーバプロセスが動作するときのグループ名を指定します。

(b)　記述できる場所

httpsd.conf

(c)　指定例

Group nogroup                     グループ名nogroupを定義

(11)　Header｛｛set｜append｜add｝ヘッダ　ヘッダ値〔env=〔!〕環境変数〕｜unset　ヘッダ｝

(a)　内容

200番台のステータスコード応答時のレスポンスヘッダをカスタマイズする場合に指定します。リバースプロキシとして使用する場合，バックエンドのWebサーバが返すステータスコードの値にかかわらず，レスポンスヘッダをカスタマイズします。

set：ヘッダを設定します。ヘッダがある場合は，指定したヘッダ値に書き換えます。

append：存在するヘッダにヘッダ値を追加します。存在するヘッダ値との間は，コンマで区切られます。ヘッダがない場合は，ヘッダを設定します。

add：ヘッダがあっても，別の行にヘッダを設定します。同じヘッダを複数行設定する場合に使用します。

unset：指定したヘッダがある場合，そのヘッダをすべて削除します。

env=環境変数：指定した環境変数が設定されている場合に，Headerディレクティブで指定した内容を実行します。

env=!環境変数：指定した環境変数が設定されていない場合に，Headerディレクティブで指定した内容を実行します。

ヘッダ値に空白がある場合は，"（引用符）で囲む必要があります。ヘッダ値は文字だけから成る文字列，フォーマット指示子を含む文字列または両方から成る文字列を指定できます。フォーマット指示子を次に示します。

フォーマット | 意味
%t | リクエストを受け取った時刻を，1970年1月1日0時0分0秒(GMT：Greenwich Mean Time)から経過した時間で表示する。単位はマイクロ秒。先頭には"t="が付けられる。
%D | リクエスト処理に掛かった時間を表示する。単位はマイクロ秒。先頭には"D="が付けられる。
%{env_name}e | 環境変数env_nameの値。

(b)　注意事項

ヘッダカスタマイズ機能を使用するためにはmod_headersモジュールの組み込みが必要です。ヘッダカスタマイズ機能については，「4.10　ヘッダカスタマイズ機能」を参照してください。

(c)　記述できる場所

httpsd.conf，<VirtualHost>，<Directory>，.htaccess

(d)　上書き許可

FileInfoレベル

(e)　指定例

Header set Cache-Control no-cache

(12)　HeaderName　ファイル名

(a)　内容

ディレクトリインデクス表示時のヘッダに付けるコメントを記述したファイルのファイル名（パス情報なし）を指定します。HTMLまたはプレーンテキストで記述できます。ただし，AddTypeディレクティブまたはTypesConfigディレクティブで指定したファイルで，MIMEタイプが正しく定義されている必要があります。プレーンテキストでコメントを作成した場合，ディレクトリインデクス表示のHTMLには<PRE>タグが追加されます。

(b)　記述できる場所

httpsd.conf，<VirtualHost>，<Directory>，.htaccess

(c)　上書き許可

Indexesレベル

(d)　指定例

HeaderName HEADER.html

各ディレクトリ下のHEADER.htmlの内容をヘッダに付けます。

(13)　HostnameLookups　｛On｜Off｜double｝

(a)　内容

CGIのREMOTE_HOST環境変数のIPアドレスおよびログファイルに出力するクライアントのIPアドレスをホスト名に変換するために，ホスト名のルックアップの逆引きをするかどうかを指定します。なお，逆引きを使用する場合，レスポンスが遅くなります。

On：IPアドレスをホスト名に変換します。

Off：IPアドレスをホスト名に変換しません。

double：IPアドレスをホスト名に変換します。その後，再変換し，IPアドレスが正しいかどうかを確認します。

このディレクティブは，IPv6アドレスにも対応しています。

(b)　記述できる場所

httpsd.conf，<VirtualHost>，<Directory>

(c)　指定例

HostnameLookups Off

IPアドレスをホスト名に変換しません。

(14)　HWSContentCacheMaxFileSize　サイズ　[図データ]

～((1－2097093))《256》（単位：KB）

(a)　内容

キャッシュ可能なファイルのサイズの上限値をKB単位で指定します。HWSContentCacheMaxFileSizeディレクティブに HWSContentCacheSizeディレクティブの値よりも大きな値を設定した場合には，HWSContentCacheSizeディレクティブの値が設定されます。

(b)　注意事項

静的コンテンツキャッシュ機能を使用するためにはmod_hws_cacheモジュールの組み込みが必要です。静的コンテンツキャッシュ機能については，「4.12　静的コンテンツキャッシュ機能」を参照してください。

(c)　記述できる場所

httpsd.conf

(d)　指定例

HWSContentCacheMaxFileSize 32

(15)　HWSContentCacheSize　サイズ　[図データ]

～((1－2097093))《8192》（単位：KB）

(a)　内容

サーバプロセス内にキャッシュするデータのメモリサイズの上限値をKB単位で指定します。

(b)　注意事項

静的コンテンツキャッシュ機能を使用するためにはmod_hws_cacheモジュールの組み込みが必要です。静的コンテンツキャッシュ機能については，「4.12　静的コンテンツキャッシュ機能」を参照してください。

(c)　記述できる場所

httpsd.conf

(d)　指定例

HWSContentCacheSize 1024

(16)　HWSErrorDocumentMETACharset ｛On｜Off｜文字セット｝　[図データ]

(a)　内容

エラーが発生したときにWebブラウザへ表示するメッセージ（以降，エラードキュメントと呼びます）についての文字セットを設定します。文字セットは，エラードキュメント中にMETAタグでcharset=の値として設定されます。ErrorDocument ディレクティブで，カスタマイズされたエラードキュメントは，このディレクティブのMETAタグによる文字セットの設定対象とはなりません。

On：文字セットISO-8859-1を設定します。

Off：文字セットを設定しません。

文字セット：指定した文字セットを設定します。

(b)　記述できる場所

httpsd.conf

(c)　指定例

HWSErrorDocumentMETACharset ISO-2022-JP

(17)　HWSGracefulStopLog ｛On｜Off｝

(a)　内容

計画停止時に，強制停止待ち時間を経過した後に強制停止させたリクエスト情報を，エラーログファイルに出力するかどうかを指定します。

On：強制停止させたリクエスト情報をエラーログファイルに出力します。

Off：強制停止させたリクエスト情報をエラーログファイルに出力しません。

(b)　記述できる場所

httpsd.conf

(c)　指定例

HWSGracefulStopLog On

(18)　HWSGracefulStopTimeout　強制停止時間

～((0－3600))《300》（単位：秒）

(a)　内容

計画停止時に，実行中のリクエストを直ちに終了するまでの強制停止待ち時間を秒単位で指定します。なお，0を指定すると，強制停止待ち時間の上限は設定されません。

(b)　記述できる場所

httpsd.conf

(c)　指定例

HWSGracefulStopTimeout 600

(19)　HWSImapMenuCharset　文字セット

～《ISO-8859-1》

(a)　内容

次の場合のメニュー表示に対する文字セットを指定します。

イメージマップファイルの指定値にmapを指定した場合

イメージマップ画像の座標(0,0)をマウスでポイントした場合

座標指定のない形でイメージマップファイルがリクエストされた場合

文字セットは，レスポンスのContent-Typeヘッダでcharset=の値として設定されます。

(b)　記述できる場所

httpsd.conf，<VirtualHost>，<Directory>，.htaccess

(c)　上書き許可

Indexesレベル

(d)　指定例

HWSImapMenuCharset SHIFT_JIS

(20)　HWSKeepStartServers ｛On｜Off｝　[図データ]

(a)　内容

サーバプロセスの稼働数をStartServersディレクティブに指定した数だけ維持するかどうかを指定します。

On：StartServersディレクティブに指定した数だけ，稼働しているサーバプロセスが維持されます。サーバプロセス数がStartServersディレクティブ指定値より小さくなった場合，新しいプロセスが生成されます。この機能は，プロセス数に関する各ディレクティブの指定値が，次の関係にある場合に有効です。

MinSpareServers < StartServers≦MaxClients

かつ

MinSpareServers < MaxSpareServers≦MaxClients

StartServersディレクティブ設定値が，MinSpareServersディレクティブ設定値より小さい場合は，MinSpareServersディレクティブの値でサーバプロセス数が維持されます。

Off：StartServersディレクティブに指定した数の稼働しているサーバプロセスは維持されません。

プロセス数に関連するほかのディレクティブについては，「4.1　Hitachi Web Serverの処理とディレクティブとの関係」を参照してください。

(b)　記述できる場所

httpsd.conf

(21)　HWSLogSSLVerbose {On｜Off}

(a)　内容

クライアントとサーバ間のSSLハンドシェイク処理中に，ログに出力されるエラーのうちinfoレベルおよびerrorレベルのエラーについて，詳細情報を表示するかどうかを指定します。SSLを有効にする場合には，このディレクティブをOnに設定することを推奨します。

On：詳細情報を表示します。

Off：詳細情報を表示しません。

(b)　記述できる場所

httpsd.conf

(22)　HWSLogTimeVerbose ｛On｜Off｝

(a)　内容

エラーログ※とリクエストログの時刻，アクセスログのアクセス時刻，リクエスト処理に掛かった時間(%T)，およびリクエスト処理を開始した時刻(%t)をミリ秒まで表示するかどうかを指定します。

注※　ErrorLogディレクティブで指定するエラーログが対象になります。ScriptLogディレクティブで指定するCGIスクリプトのエラーログは対象になりません。

On：時刻および時間をミリ秒まで表示します。

Off：時刻および時間を秒まで表示します。

(b)　記述できる場所

httpsd.conf

(23)　HWSMaxQueueSize　リクエストキューサイズ　[図データ]

～((0－2147483647))《8192》

(a)　内容

クライアントからのリクエストについての最大の待ちリクエスト数を指定します。0を指定した場合は，無制限となります。このディレクティブで指定したリクエストキューサイズを超えたクライアントからのリクエストは，サーバ側で切断されます。

(b)　記述できる場所

httpsd.conf

(24)　HWSNotModifiedResponseHeaders　ヘッダ名〔ヘッダ名 …〕

(a)　内容

ステータスコード304 Not Modifiedをクライアントへ送信する際に付加するレスポンスヘッダを指定します。

なお，次のヘッダについては，このディレクティブに指定がなくてもレスポンスに付加します。ただし，必ず付加するのではなく，外部モジュールまたはサーバ内部などで設定された場合にだけ付加します。

Date

Server

Connection

Keep-Alive

ETag

Content-Location

Expires

Cache-Control

Vary

Warning

WWW-Authenticate

Proxy-Authenticate

(b)　記述できる場所

httpsd.conf

(c)　指定例

HWSNotModifiedResponseHeaders Set-Cookie Set-Cookie2

(25)　HWSProxyPassReverseCookie　パス名

(a)　内容

リバースプロキシを使用する場合，リバースプロキシはバックエンドサーバから受信したSet-Cookieヘッダを変換します。これは，WebブラウザがSet-Cookieヘッダを受信したあとに，リバースプロキシを経由するバックエンドサーバへのリクエストに対して，クッキーを送信させるために必要になります。

パス名：ProxyPassディレクティブと同じパス名を指定します。

(b)　注意事項

リバースプロキシを使用するためにはmod_proxyモジュールおよびmod_proxy_httpモジュールの組み込みが必要です。リバースプロキシの詳細は，「4.7　リバースプロキシの設定」を参照してください。

(c)　記述できる場所

httpsd.conf，<VirtualHost>

(26)　HWSRequestLog　｛ファイル名｜パイプ｝

(a)　内容

リクエストログを出力するファイル名を指定します。リクエストログとは，モジュールトレース，リクエストトレースおよびI/Oフィルタトレースの総称です。出力するリクエストログの種別は，HWSRequestLogTypeディレクティブで選択できます。

ファイル名：リクエストログを出力するファイル名を指定します。ファイル名には，絶対パスまたはServerRootディレクティブの指定値からの相対パスを指定できます。

パイプ：標準入力からリクエストログ情報を受け取るプログラムを「 |プログラム名」の形式で指定します。Windows版での注意事項は，CustomLogディレクティブを参照してください。

(b)　注意事項

このディレクティブを省略した場合のモジュールトレース出力先は，ErrorLogディレクティブで指定したファイルになります。モジュールトレースの採取レベルは，LogLevelディレクティブで指定してください。モジュールトレースの詳細は，「4.2.6　モジュールトレースの採取」を参照してください。

リクエストトレースとI/Oフィルタトレースの出力先を，ErrorLogディレクティブで指定したファイルにすることはできません。

(c)　記述できる場所

httpsd.conf

(27)　HWSRequestLogType　トレース種別　〔トレース種別　…〕

～《module-info request》

(a)　内容

HWSRequestLogディレクティブで設定するリクエストログに出力するトレース種別を指定します。トレース種別を次に示します。

トレース種別 | 内容
module-debug | 内部モジュールに対するモジュールトレースおよびmodule-info相当のトレースを出力します。出力量が多いため，デバッグ目的以外では指定しないでください。
module-info | 外部モジュールとCGIプログラム実行時のモジュールトレースを出力します。
request | リクエスト処理開始時およびリクエスト処理完了時にトレースを出力します。また，KeepAlive接続の場合は，次のリクエストライン受信完了時にもトレースを出力します。これらのトレースをリクエストトレースと呼びます。
filter | モジュールが実装している入出力フィルタ関数の実行契機を示すI/Oフィルタトレースを出力します。出力量が多いため，デバッグ目的以外では指定しないでください。
none | リクエストログを採取しません。

(b)　注意事項

指定したトレース種別にnoneが含まれている場合，リクエストログを一切採取しません。

(c)　記述できる場所

httpsd.conf

(28)　HWSSetEnvIfIPv6　リクエスト値　IPv6アドレス　環境変数〔=値〕〔環境変数〔=値〕…〕

(a)　内容

クライアントまたはサーバのIPv6アドレスを基に環境変数を定義します。リクエスト値がIPv6アドレスで表した条件を満たす場合，指定した環境変数を設定します。設定する値のデフォルト値は1です。環境変数の前に「!」が付いたときは，その環境変数の設定を解除します。

リクエスト値として，次に示す値を指定できます。

リクエスト値 | 意味
Remote_Addr | クライアントのIPv6アドレス
Server_Addr | リクエストを受信したサーバのIPv6アドレス

IPv6アドレスは，[　]で囲まないで指定してください。なお，IPv6アドレスの後に，10進数でプレフィックス長も指定できます。プレフィックス長は，「IPv6アドレス/プレフィックス長」の形式で指定します。

(b)　記述できる場所

httpsd.conf，<VirtualHost>，<Directory>，.htaccess

(c)　上書き許可

FileInfoレベル

(d)　指定例

HWSSetEnvIfIPv6 Remote_Addr fec0:0:0:1230::/64 IPV6_CLIENT

クライアントのIPv6アドレスがfec0:0:0:1230から始まる場合，環境変数IPV6_CLIENTを設定します。

(29)　HWSStackTrace｛On｜Off｝　[図データ]

(a)　内容

サーバプロセスが異常終了した場合に，スタックトレースの内容をエラーログファイルに出力するかどうかを指定します。HP-UX版だけで有効です。

On：スタックトレースの内容をエラーログファイルに出力します。

Off：スタックトレースの内容をエラーログファイルに出力しません。

(b)　記述できる場所

httpsd.conf

(c)　指定例

HWSStackTrace On

(30)　HWSSuppressModuleTrace　モジュールファイル名　〔all｜hook｜handler〕

(a)　内容

モジュールトレースの出力を抑止するモジュールファイル名および抑止する関数種別を指定します。

all：指定したモジュールが出力するモジュールトレースをすべて抑止します。

hook：指定したモジュールが出力するモジュールトレースのうち，handler関数以外のモジュールトレースを抑止します。関数の種別については，「4.2.6　モジュールトレースの採取」の表4-4を参照してください。

handler：指定したモジュールが出力するモジュールトレースのうち，handler関数のモジュールトレースを抑止します。関数の種別については，「4.2.6　モジュールトレースの採取」の表4-4を参照してください。

モジュールファイル名には，エラーログまたはリクエストログに出力されるモジュールファイル名称を指定します。次の例のモジュールトレースを抑止する場合は，モジュールファイル名に"mod_example.c"を指定します。

（例）

[Mon Dec 18 14:57:14 2006] [info] hws : module --> (mod_example.c[12])(1896)
[Mon Dec 18 14:57:14 2006] [info] hws : module <-- (mod_example.c[12])(1896)(-1)

Hitachi Web Serverが標準提供している外部モジュールとモジュールファイル名の対応を次に示します。

表6-5　Hitachi Web Serverが標準提供している外部モジュールとモジュールファイル名の対応

モジュール名 | モジュールファイル名
mod_expires.so | mod_expires.c
mod_headers.so | mod_headers.c
mod_hws_cache.so | mod_hws_cache.c
mod_hws_ldap.so | mod_hws_ldap.c
mod_hws_qos.so | mod_hws_qos.c
mod_proxy.so | mod_proxy.c
mod_proxy_http.so | モジュールトレースは出力されません。

Hitachi Web Serverが標準提供している外部モジュール以外を使用する場合は，そのモジュールのトレースが出力される可能性があります。また，LogLevelディレクティブにdebugを設定またはHWSRequestLogTypeディレクティブにmodule-debugを設定している場合は，内部モジュールに対するトレースも出力されます。

なお，このディレクティブは，複数指定できます。同じモジュールファイル名を指定した場合は，後に指定したものが有効となります。

(b)　注意事項

CGIプログラム実行時のモジュールトレースは抑止できません。

(c)　記述できる場所

httpsd.conf

(d)　指定例

（例1）

HWSSuppressModuleTrace mod_proxy.c all

この指定では，プロキシモジュール内のすべての関数に対するモジュールトレースを抑止します。

（例2）

HWSSuppressModuleTrace mod_proxy.c hook

この指定では，プロキシモジュール内のhandler以外の関数に対するモジュールトレースを抑止します。

(31)　HWSTraceIdFile　ファイル名

～《logs/hws.trcid》

(a)　内容

トレース採取のための共有メモリIDを格納するファイル名を指定します。ファイル名には，絶対パスまたはServerRootディレクティブの指定値からの相対パスが指定できます。

このファイルは複数のWebサーバでは共有できません。同一ServerRootディレクティブ指定で複数のWebサーバを起動する場合は，このディレクティブで異なるファイル名を指定する必要があります。

(b)　記述できる場所

httpsd.conf

(32)　HWSTraceLogFile　ファイル名

～《logs/hws.trclog》

(a)　内容

サーバプロセスが異常終了した場合に共有メモリに採取されたトレースを出力するファイル名を指定します。ファイル名には，絶対パスまたはServerRootディレクティブの指定値からの相対パスが指定できます。

トレースは複数のファイルにラップアラウンドして出力します。

UNIX版では，最大5ファイル出力します。出力するファイルは「指定したファイル名.nn」のファイル名となります。nnは01から05までです。Hitachi Web Serverの起動時には，「指定したファイル名.01」がカレントの出力ファイル名となります。カレントの出力ファイル名が「指定したファイル名.nn」であった場合にトレースをファイルに出力すると，次のカレントのファイル名は「指定したファイル名.nn+1」になります。なお，「指定したファイル名.nn」が.05の場合には，次のカレントのファイル名は「指定したファイル名.01」になります。

Windows版では，最大2ファイル出力します。出力するファイルは「指定したファイル名.01」または「指定したファイル名.02」のファイル名になります。Hitachi Web Serverの起動時には，「指定したファイル名.01」がカレントの出力ファイル名となります。カレントの出力ファイル名が「指定したファイル名.01」のときにトレースをファイルに出力すると，次のカレントのファイル名は「指定したファイル名.02」になります。なお，カレントの出力ファイル名が「指定したファイル名.02」のときにトレースをファイルに出力すると，次のカレントのファイル名は「指定したファイル名.01」になります。

(b)　記述できる場所

httpsd.conf

(33)　IdentityCheck　｛On｜Off｝　[図データ]

(a)　内容

クライアントホストのidentdデーモンを使用してクライアントの確認をするかどうかを指定します。 identについては，RFC1413を参照してください。

ただし，クライアントホストがIPv6アドレスの場合は，Onを指定してもidentdデーモンを使用してクライアントの確認をしません。また，ログフォーマットに%lを指定している場合，CGI環境変数 REMOTE_IDENTには「unknown」を出力します。

On：identdデーモンを使用してクライアントの確認をします。

Off：identdデーモンを使用してクライアントの確認をしません。

(b)　記述できる場所

httpsd.conf，<VirtualHost>，<Directory>

(34)　ImapBase　｛map｜referer｜URL｝

(a)　内容

イメージマップファイルのbase行のデフォルトを指定します。

map：マップファイルの場所

referer：ドキュメントの場所（イメージマップを表示したHTMLファイルの場所）

URL：指定したURL

URLには，IPv6アドレスまたはIPv6アドレスに対応したホスト名も指定できます。

(b)　記述できる場所

httpsd.conf，<VirtualHost>，<Directory>，.htaccess

(c)　上書き許可

Indexesレベル

(35)　ImapDefault　｛error｜nocontent｜map｜referer｜URL｝

(a)　内容

イメージマップファイルのdefault行のデフォルトを指定します。

error：標準のエラーメッセージを表示します（ステータスコード500 Server Errorを応答します）。

nocontent：リクエストを無視します（ステータスコード204 No Contentを応答します）。

map：マップファイル中のURLをメニュー表示します。

referer：ステータスコード302 Foundを応答します。

URL：指定したURLのコンテンツを表示します。

URLには，IPv6アドレスまたはIPv6アドレスに対応したホスト名も指定できます。

(b)　記述できる場所

httpsd.conf，<VirtualHost>，<Directory>，.htaccess

(c)　上書き許可

Indexesレベル

(36)　ImapMenu　｛none｜formatted｜semiformatted｜unformatted｝

(a)　内容

イメージマップファイルの指定値にmapを与えた場合またはイメージマップ画像の(0,0)座標をマウスでポイントした場合のメニュー表示を指定します。座標指定のない形でイメージマップファイルがリクエストされた場合の動作もこの設定に従います。

none：メニューは生成しません。このときの動作は，マップファイル中のdefault行の指定に従います。

formatted：ヘッダおよびリンク一覧を表示します。マップファイル中のコメントは無視されます。

semiformatted：リンク一覧を表示します。マップファイル中のコメントも表示します。

unformatted：マップファイル中にHTMLを記述することで，メニューの形式を自由に設定できます。

(b)　記述できる場所

httpsd.conf，<VirtualHost>，<Directory>，.htaccess

(c)　上書き許可

Indexesレベル

(37)　Include　ファイル名

(a)　内容

ファイル名で指定したファイルをコンフィグファイルとして利用できるようにします。

ファイル名には，絶対パスまたはServerRootディレクティブの指定値からの相対パスが指定できます。このディレクティブを複数指定する場合，マージされた内容が使用されます。ファイル内に同じディレクティブがある場合，後に指定した方で上書きされます。

(b)　記述できる場所

httpsd.conf

(38)　IndexIgnore　ファイル名　〔ファイル名　…〕

(a)　内容

ディレクトリインデクス表示時に，Webブラウザに表示させないファイル名を指定します。正規表現でも指定できます。

(b)　記述できる場所

httpsd.conf，<VirtualHost>，<Directory>，.htaccess

(c)　上書き許可

Indexesレベル

(d)　指定例

IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t

(39)　IndexOptions　〔｛+｜-｝〕オプション　〔〔｛+｜-｝〕オプション　…〕

(a)　内容

ディレクトリインデクスの整形表示機能のオプション設定をします。オプションの前に+を指定するかまたは+-を省略するとそのオプションが有効になります。デフォルトではすべてのオプションが無効です。指定できるオプションの一覧を次に示します。

表6-6　オプション一覧

オプション
意味

Charset=文字セット
～《ISO-8859-1》　[図データ]
～《UTF-8》　[図データ]
インデクス表示するページの文字セットを指定します。HeaderNameディレクティブまたはReadmeNameディレクティブで指定したファイルで使用している文字セットが，デフォルトの文字セット（UNIX版：ISO-8859-1，Windows版：UTF-8）と異なる場合は，このオプションでHeaderNameディレクティブまたはReadmeNameディレクティブで指定したファイルと同じ文字セットを指定してください。このオプションでは，=文字セットを省略できません。また，-Charset指定時も+Charset指定時と同様の動作をします。

DescriptionWidth〔=｛文字数|*｝〕
《23，30，42または49》
ファイル説明文エリアの幅を文字数(1文字＝１バイト)で指定します。*を指定した場合はAddDescriptionディレクティブで指定したファイル説明文の最大長に合わせて表示します。このオプションを省略した場合のファイル説明文エリアの幅は，23バイト(ただし，SuppressSize指定時＋7，SuppressLastModified指定時＋19)です。
-DescriptionWidth指定時は=｛文字数|*｝を省略できます。この場合の表示幅は23バイトです。

FancyIndexing
ディレクトリインデクスの整形表示機能を有効にします。

FoldersFirst
ファイルよりディレクトリを先にインデクス表示する場合に指定します。ただし，FancyIndexingが有効な場合だけです。

IconsAreLinks
ディレクトリインデクス整形表示時のアイコンをファイルに対するアンカーにします。

IconHeight〔=ピクセル数〕((>0))《22》
ディレクトリインデクス整形表示時のアイコンの高さをピクセル数で指定します。IconWidthオプションと一緒に指定します。インデクスを表示するHTMLのIMGタグのHEIGHT属性になります。

IconWidth〔=ピクセル数〕((>0))《20》
ディレクトリインデクス整形表示時のアイコンの幅をピクセルで指定します。IconHeightオプションと一緒に指定します。インデクスを表示するHTMLのIMGタグのWIDTH属性になります。

IgnoreCase
ディレクトリインデクス整形表示時に，ファイル名およびディレクトリ名の大文字と小文字の区別をしないで並べ替えます。

NameWidth〔=｛文字数｜*｝〕《23》
ファイル名およびディレクトリ名エリアの幅を文字数（1文字＝1バイト）で指定します。*を指定した場合はファイル名およびディレクトリ名の最大長に合わせて表示します。
=｛文字数｜*｝を省略する場合は必ず-NameWidthと指定してください。

ScanHTMLTitles
AddDescriptionディレクティブの指定がない場合に，HTMLファイル中の<TITLE>タグを検索し，説明文として表示します。

SuppressColumnSorting
ファイル名，ディレクトリ名，最終更新日時，ファイルサイズおよびファイルの説明文の各カラムでインデクスを並べ替える機能を抑止します。

SuppressDescription
ファイルの説明文を表示しません。

SuppressHTMLPreamble
HeaderNameディレクティブが指定されている場合，HeaderNameディレクティブで指定されたファイルの内容と，自動生成されるHTMLヘッダ部（<HTML>や<TITLE>など）が共に出力されます。このオプションは，HeaderNameディレクティブで指定されたファイルがHTMLで記述されている場合，自動生成されるHTMLヘッダ部の出力を抑制します。

SuppressLastModified
最終更新日時を表示させません。

SuppressSize
ファイルサイズを表示させません。

TrackModified
ディレクトリ表示のためのレスポンスのHTTPレスポンスヘッダに，Last-Modified値とEtag値を設定します。このオプションを指定すると，クライアントはHEADリクエストでディレクトリはファイル構成の変更を確認できるため，クライアントのキャッシュ機能を有効に活用できます。このオプションはオペレーティングシステムとファイルシステムがstat()をサポートしている場合だけ有効です。

(b)　注意事項

このディレクティブを複数指定する場合，同じファイル名に異なる文字列は指定できません。

IconHeight，IconWidth，NameWidthで=値を指定する場合，-の指定はできません。

設定されたオプションは，httpsd.conf，<VirtualHost>，<Directory>，.htaccessの順で，また，上位ディレクトリから下位ディレクトリへ継承します。継承したオプションを最終的にマージして，インデクス整形表示形式を決定します。

httpsd.confで+-を付けてオプションを指定しても無効になります。ただし，httpsd.conf，<VirtualHost>，<Directory>，.htaccessの順で，また，下位ディレクトリに継承されます。継承されたオプション指定はマージ処理で有効になります。参照順位が下位の指定場所でオプションの指定がある場合または次に示すディレクティブのどれかの指定がある場合，マージ処理が実行されます。

AddAlt

AddAltByEncoding

AddAltByType

AddDescription

AddIcon

AddIconByEncoding

AddIconByType

DefaultIcon

HeaderName

ReadmeName

（例）
httpsd.confファイルにIndexOptions +FancyIndexing +IconsAreLinksを指定した場合，下位の指定場所でインデクス関係のディレクティブ指定がなければFancyIndexing，IconsAreLinksは無効になります。
httpsd.confファイルにIndexOptions +FancyIndexing +IconsAreLinks，かつ下位ディレクトリのアクセスコントロールファイルに，AddDescription "テキストファイル" *.txtを指定した場合，FancyIndexing，IconsAreLinksは有効になります。

+-指定のないCharset，IconHeight，IconWidth，NameWidthディレクティブを指定すると，その指定場所内でそのオプションが指定されている位置より前に指定されている+-付のオプション（Charset，IconHeight，IconWidth，NameWidthを除いて）は無効になります。
（例）
IndexOptions FancyIndexing -IconsAreLinks IconHeight IconWidth
この場合，FancyIndexing，IconHeight，IconWidthディレクティブが有効になります。IconsAreLinksの-指定は継承されません。

指定場所間で同じディレクトリのインデクスを対象にオプション指定した場合のマージ処理は，参照順位がより後方の指定場所で+-のないオプションを指定すると，先に指定したオプションは無効になります。ただし，IconHeight，IconWidth，NameWidthは無効になりません。
（例1）

httpsd.confファイルの指定
IndexOptions +FancyIndexing +IconsAreLinks

アクセスコントロールファイルの指定
IndexOptions FancyIndexing SuppressLastModified

これらを指定した場合，IconsAreLinksは無効になります。FancyIndexing，SuppressLastModifiedは有効になります。
（例2）

httpsd.confファイルの指定
IndexOptions SuppressColumnSorting +FancyIndexing +IconsAreLinks

アクセスコントロールファイルの指定
IndexOptions FancyIndexing SuppressLastModified

これらを指定した場合，SuppressColumnSorting，IconsAreLinksは無効になります。また，FancyIndexing，SuppressLastModifiedは有効になります。

指定場所間で，同じディレクトリのインデクスを対象にオプション指定した場合のマージ処理は，同じオプションに対して+と-の両方を指定すると-指定が有効になります。
（例）

httpsd.confファイルの指定
IndexOptions +FancyIndexing -IconsAreLinks

アクセスコントロールファイルの指定
IndexOptions +IconsAreLinks

これらを指定した場合，IconsAreLinksは無効になります。

同じ指定場所で+-を指定しないオプションを指定すると，Charset，IconHeight，IconWidth，NameWidthディレクティブ以外の+-で指定したオプションは無効になります。
（例1）

httpsd.confファイルの指定
IndexOptions +IconsAreLinks FancyIndexing +SuppressLastModified

この場合，IconsAreLinksは無効になります。
（例2）

<VirtualHost>ブロック，<Directory>ブロックまたはアクセスコントロールファイルの指定
IndexOptions +IconsAreLinks FancyIndexing +SuppressLastModified

この場合，IconsAreLinks，SuppressLastModifiedは無効になります。

(c)　記述できる場所

httpsd.conf，<VirtualHost>，<Directory>，.htaccess

(d)　上書き許可

Indexesレベル

(40)　IndexOrderDefault　｛Ascending｜Descending｝　｛Name｜Date｜Size｜Description｝

(a)　内容

ディレクトリインデクス表示での，ファイルの並び順のデフォルトを指定します。

Ascending：昇順

Descending：降順

Name：ファイル名で並べます。

Date：ファイル更新日付で並べます。

Size：ファイルサイズで並べます。

Description：AddDescriptionディレクティブで指定した説明文で並べます。

(b)　記述できる場所

httpsd.conf，<VirtualHost>，<Directory>，.htaccess

(c)　上書き許可

Indexesレベル

6.2.5　K，Lで始まるディレクティブ

＜この項の構成＞

(1)　KeepAlive　｛On｜Off｝

(2)　KeepAliveTimeout　時間

(3)　LanguagePriority　言語コード　〔言語コード　…〕

(4)　LDAPBaseDN　DN値　〔DN値…〕

(5)　LDAPNoEntryStatus　｛Authorization｜Forbidden｝

(6)　LDAPRequire　〔%DN属性%〕　〔LDAP検索フィルタ〕

(7)　LDAPServerName　｛ホスト名｜IPアドレス｝　〔｛ホスト名｜IPアドレス｝…〕

(8)　LDAPServerPort　ポート番号　〔ポート番号…〕

(9)　LDAPSetEnv　環境変数　属性

(10)　LDAPTimeout　値

(11)　LDAPUnsetEnv　環境変数

(12)　LimitRequestBody　リクエストボディサイズ

(13)　LimitRequestFields　ヘッダ数

(14)　LimitRequestFieldsize　ヘッダサイズ

(15)　LimitRequestLine　リクエストライン長

(16)　Listen　〔IPアドレス:〕ポート番号

(17)　ListenBacklog　バックログ数

(18)　LoadFile　ファイル名　〔ファイル名　…〕

(19)　LoadModule　module構造体名　ライブラリファイル名

(20)　LogFormat　"フォーマット"　〔ラベル名〕

(21)　LogLevel　｛debug｜info｜notice｜warn｜error｜crit｜alert｜emerg｝

(1)　KeepAlive　｛On｜Off｝

(a)　内容

KeepAlive接続を有効にするかどうかを指定します。実際にKeepAliveが実行されるのはクライアント側もKeepAliveに対応している場合だけです。KeepAliveはサーバプロセスとクライアントとのコネクションが持続されるので，連続したリクエストのレスポンスが良くなります。反面，サーバプロセスが特定のクライアント専用になるので，Webサーバ全体としてサービス能力が低下することもあります。KeepAliveTimeout，MaxKeepAliveRequestsディレクティブを使用して調整する必要があります。

On：持続型接続（KeepAlive）を有効にします。

Off：持続型接続（KeepAlive）を無効にします。

(b)　記述できる場所

httpsd.conf

(c)　指定例

KeepAlive On

(2)　KeepAliveTimeout　時間

～((0－65535))《15》（単位：秒）

(a)　内容

KeepAlive接続時の要求待ち時間を秒単位で指定します。この時間以上経過しても，クライアントから次のリクエストが来ない場合，コネクションを切断します。KeepAliveはサーバプロセスが特定のクライアントに占有されます。あるWebページから次のWebページへ移る場合に必要とする標準的な時間以上は，タイムアウトにしてコネクションを切断し，サーバプロセスをほかのリクエストの処理に当てるようにします。時間に0を指定した場合は，KeepAlive接続が無効になります。

(b)　記述できる場所

httpsd.conf

(c)　指定例

KeepAliveTimeout 15

KeepAlive接続時の要求待ち時間は15秒

(3)　LanguagePriority　言語コード　〔言語コード　…〕

(a)　内容

使用言語を優先順位の高い順に指定します。コンテントネゴシエーションで，Webブラウザからのリクエストに言語コードの優先順位（Accept-Languageヘッダ）が含まれていない場合に，ここで指定した優先順位が使用されます。ここで指定する言語コードなどについては，AddLanguageディレクティブを参照してください。

(b)　記述できる場所

httpsd.conf，<VirtualHost>，<Directory>，.htaccess

(c)　上書き許可

FileInfoレベル

(d)　指定例

LanguagePriority ja en fr de

優先順位は日本語，英語，フランス語，ドイツ語の順

(4)　LDAPBaseDN　DN値　〔DN値…〕

(a)　内容

LDAPサーバで認証する場合，検索を開始する最上位のDNを指定します。このDNでは，Webサーバからのアクセスを許可する必要があります。

このDNの下に，検索するすべてのユーザエントリとグループエントリが必要です。また，Webサーバにこれらすべてのエントリ，属性へのアクセス権限が必要です。LDAPServerNameディレクティブで複数のLDAPサーバが指定されている場合，LDAPサーバごとにDNを指定してください。また，DNを複数指定する場合，DNごとに"（引用符）で囲みます。DNの指定が一つの場合は引用符で囲む必要はありません。DN中に引用符が含まれる場合は引用符の前に¥を付けます。

(b)　注意事項

LDAPサーバを利用したユーザ認証を使用するためにはmod_hws_ldapモジュールの組み込みが必要です。LDAPサーバを利用したユーザ認証については，「4.5.4　ディレクトリサービスを利用したユーザ認証とアクセス制御」を参照してください。

(c)　記述できる場所

httpsd.conf，<VirtualHost>，<Directory>

(5)　LDAPNoEntryStatus　｛Authorization｜Forbidden｝

(a)　内容

LDAPサーバを利用したユーザ認証に成功しても，LDAPRequireディレクティブのアクセス制御によってアクセスを拒否する場合，WebサーバがWebブラウザに返すステータスコードを指定します。

Authorization：ステータスコード401を返します。

Forbidden：ステータスコード403を返します。

(b)　注意事項

LDAPサーバを利用したユーザ認証を使用するためにはmod_hws_ldapモジュールの組み込みが必要です。LDAPサーバを利用したユーザ認証については，「4.5.4　ディレクトリサービスを利用したユーザ認証とアクセス制御」を参照してください。

(c)　記述できる場所

httpsd.conf，<VirtualHost>

(6)　LDAPRequire　〔%DN属性%〕　〔LDAP検索フィルタ〕

(a)　内容

AuthNameディレクティブ，AuthTypeディレクティブおよびRequire valid-userディレクティブと一緒に指定してアクセス制御するユーザの範囲を指定します。

先頭に％で囲んだ文字列がある場合，この文字列をクライアントが入力したユーザ名を識別するDN属性として利用します。％がない場合にはDN属性としてcn（エントリによって定義される人を識別する必須属性）を仮定します。

LDAPBaseDNディレクティブの指定値に，クライアントが入力したユーザ名をDN属性として設定された値と組み合わせることで，ユーザが登録されているDNを求めます。このDNとクライアントが入力したパスワードを使ってLDAPサーバで認証します。

指定したユーザがLDAPサーバで認証され，かつLDAP検索フィルタに当てはまる場合にコンテンツをアクセスできます。フィルタが指定されていない場合には，検索フィルタとして(objectClass=*)が設定されます。

SSLクライアント認証と併用した場合，LDAPサーバへのアクセスは，クライアント証明書内のSubjectフィールドの，CNの値をユーザ名として，パスワードなしの匿名アクセスになります。LDAPサーバを検索した結果，ユーザ名がLDAPサーバに登録されており，かつLDAP検索フィルタに当てはまる場合にコンテンツをアクセスできます。フィルタが指定されていない場合には，検索フィルタとして(objectClass=*)が設定されます。

このディレクティブを指定した場合，そのディレクトリ内に指定されているRequireディレクティブ指定値は無効になりますが，Requireディレクティブの指定は必須です。

検索フィルタは次の形式で定義できます。

（属性　演算子　値）

演算子として次の演算子が使用できます。

表6-7　検索フィルタで使用できる演算子

検索種類
シンボル
説明

Equality
=
指定値に設定された属性エントリを含むエントリを返します。
例：cn=hitachi taro

Substring
=<文字列>*<文字列>
指定の部分文字列を含む属性を持ったエントリを返します。
例：cn=hita*，cn=*hanako，cn=*hi*，cn=h*hanako

Greater than or equal to
>=
指定値以上の属性を含むエントリを返します。
例：employeenumber>=100

Less than or equal to
<=
指定値以下の属性を含むエントリを返します。
例：employeenumber<=100

Presence
=*
指定の属性を含むエントリを返します。
例：cn=*，telephonenumber=*，manager=*

さらに，これらの検索フィルタを複数組み合わせたフィルタを作成できます。

(演算子(検索フィルタ)(検索フィルタ)…)

この場合，次の演算子が使用できます。

認証するユーザが一つの属性に対して複数の属性エントリを持っている場合，一つの属性エントリが演算に一致する場合にアクセスを許可します。

表6-8　複数の検索フィルタ間で使用できる演算子

演算子
シンボル
説明

And
&
すべてのフィルタが真のエントリを返します。
例：(&(filter)(filter)(filter)…)

Or
|
最低一つの指定フィルタが真のエントリを返します。
例：(|(filter)(filter)(filter)…)

Not
!
指定したフィルタが真でないエントリを返します。
例：(!(filter))

注　Not演算子の場合，フィルタを複数指定できません。

認証に失敗した場合，ステータスコード401 Authorization Requiredを応答します。フィルタ条件に一致しない場合，LDAPNoEntryStatusディレクティブに従ったステータスコード(デフォルトでは401 Authorization Required)を応答します。また，フィルタ形式の文法に誤りがある場合，ステータスコード500 Internal Server Errorを応答します。

同一ユーザを複数指定する場合，その中の一つでアクセス権限を与えれば，アクセスできます。

(b)　注意事項

LDAPサーバを利用したユーザ認証を使用するためにはmod_hws_ldapモジュールの組み込みが必要です。LDAPサーバを利用したユーザ認証については，「4.5.4　ディレクトリサービスを利用したユーザ認証とアクセス制御」を参照してください。

(c)　記述できる場所

<Directory>，.htaccess

(d)　上書き許可

AuthConfigレベル

(e)　指定例

ユーザ名がhitachi taroとhitachi hanakoにアクセス権限を与える場合

LDAPRequire (|(cn=hitachi taro)(cn=hitachi hanako))

ユーザIDが99001から99029までの人と，99051から99059までの人にアクセス権限を与える場合

LDAPRequire (|(&(uid>=99001)(uid<=99029))(&(uid>=99051)(uid<=99059)))

(7)　LDAPServerName　｛ホスト名｜IPアドレス｝　〔｛ホスト名｜IPアドレス｝…〕

～《127.0.0.1》

(a)　内容

LDAPサーバのホスト名またはIPアドレスを指定します。複数のLDAPサーバを指定する場合，それぞれのLDAPサーバに対応するポート番号（LDAPServerPortディレクティブ）と検索を開始する最上位のDN（LDAPBaseDNディレクティブ）を指定してください。指定したLDAPサーバ，ポート番号およびDNの数が一致しないと，LDAPサーバでの認証をしません。エラーログを出力し，Webブラウザにステータスコード500を返します。

ただし，このディレクティブで指定するすべてのLDAPサーバで同じポート番号を使用する場合，ポート番号の指定は簡略化できます。

また，複数のLDAPサーバを指定する場合，優先順位の高い順に指定します。それぞれのリクエストに対しては必ず最初に指定されたLDAPサーバからユーザ認証をします。

デフォルトはローカルホスト（127.0.0.1）です。

なお，ホスト名にIPv6アドレスに対応したホスト名は指定できません。また，IPアドレスにIPv6アドレスは指定できません。

(b)　注意事項

LDAPサーバを利用したユーザ認証を使用するためにはmod_hws_ldapモジュールの組み込みが必要です。LDAPサーバを利用したユーザ認証については，「4.5.4　ディレクトリサービスを利用したユーザ認証とアクセス制御」を参照してください。

(c)　記述できる場所

httpsd.conf，<VirtualHost>，<Directory>

(d)　指定例

LDAPServerName server01 server02 server03
LDAPServerPort 389
LDAPBaseDN "ou=employee, o=hitachi, c=jp" "ou=employee, o=example.com" "o=hitachi, c=jp"

このように指定すると，LDAPサーバ，ポート番号およびDNの組み合わせは次のようになります。

利用するLDAPサーバの順 | ホスト名 | ポート番号 | 検索を開始するDN
1 | server01 | 389 | ou=employee，o=hitachi，c=jp
2 | server02 | 389 | ou=employee，o=example.com
3 | server03 | 389 | o=hitachi，c=jp

(8)　LDAPServerPort　ポート番号　〔ポート番号…〕

～((1－65535))《389》

(a)　内容

LDAPサーバのポート番号を指定します。LDAPServerNameディレクティブで複数のLDAPサーバが指定されている場合，LDAPサーバごとにポート番号を指定してください。ただし，LDAPServerNameディレクティブで指定したすべてのLDAPサーバで同じポート番号を使用するときは複数指定する必要はありません。ポート番号を一つ指定するだけで，すべてのLDAPサーバに適用されます。複数のLDAPサーバを指定する場合の指定例はLDAPServerNameディレクティブを参照してください。LDAPサーバの数とポート番号の数が一致しないと，エラーになります。

(b)　注意事項

LDAPサーバを利用したユーザ認証を使用するためにはmod_hws_ldapモジュールの組み込みが必要です。LDAPサーバを利用したユーザ認証については，「4.5.4　ディレクトリサービスを利用したユーザ認証とアクセス制御」を参照してください。

(c)　記述できる場所

httpsd.conf，<VirtualHost>，<Directory>

(9)　LDAPSetEnv　環境変数　属性

(a)　内容

LDAPサーバで認証する場合，認証されたユーザのDNによって識別されるエントリを構成する属性の値を環境変数の値として設定します。属性の値は，LDAPサーバから得られる文字コードで設定します。返送される文字コードについては，使用するLDAPサーバのマニュアルを参照してください。一つの属性に対して複数の値がある場合には，環境変数は設定されません。バイナリオプション(;binary)のある属性は指定できません。そのほかのオプションを持つ属性では，属性の値が文字列でないかぎり正常に設定されません。同じ環境変数を別の属性で定義した場合はエラーとなりませんが，環境変数の値は不定になります。

(b)　注意事項

LDAPサーバを利用したユーザ認証を使用するためにはmod_hws_ldapモジュールの組み込みが必要です。LDAPサーバを利用したユーザ認証については，「4.5.4　ディレクトリサービスを利用したユーザ認証とアクセス制御」を参照してください。

(c)　記述できる場所

httpsd.conf，<VirtualHost>，<Directory>，.htaccess

(d)　上書き許可

FileInfoレベル

(10)　LDAPTimeout　値

～((1－86400))《30》（単位：秒）

(a)　内容

ユーザ認証後，一つのLDAPRequireディレクティブで指定したフィルタの検索処理の最大待ち時間を秒単位で指定します。次に示すどれかの場合に，ステータスコード500 Internal Server Errorになります。

このディレクティブで指定した間応答がない場合

LDAPサーバ自身がタイムアウトを通知した場合

LDAPサーバがアクセスに失敗した場合

(b)　注意事項

LDAPサーバを利用したユーザ認証を使用するためにはmod_hws_ldapモジュールの組み込みが必要です。LDAPサーバを利用したユーザ認証については，「4.5.4　ディレクトリサービスを利用したユーザ認証とアクセス制御」を参照してください。

(c)　記述できる場所

httpsd.conf，<VirtualHost>，<Directory>

(11)　LDAPUnsetEnv　環境変数

(a)　内容

LDAPSetEnvディレクティブで指定した環境変数を無効化します。

(b)　注意事項

LDAPサーバを利用したユーザ認証を使用するためにはmod_hws_ldapモジュールの組み込みが必要です。LDAPサーバを利用したユーザ認証については，「4.5.4　ディレクトリサービスを利用したユーザ認証とアクセス制御」を参照してください。

(c)　記述できる場所

httpsd.conf，<VirtualHost>，<Directory>，.htaccess

(d)　上書き許可

FileInfoレベル

(12)　LimitRequestBody　リクエストボディサイズ

～((0－2147483647))《0》（単位：バイト）

(a)　内容

HTTP通信によって，Webブラウザが送信してくるリクエストをサーバが受信する場合のオブジェクトボディ（デ ータ）のサイズの上限を指定します。Webブラウザから<FORM METHOD=POST ACTION=...>によるリクエストを送る場合などにオブジェクトボディが用いられます。上限値を設定しない場合は，0を指定してください。

(b)　記述できる場所

httpsd.conf，<VirtualHost>，<Directory>，.htaccess

(13)　LimitRequestFields　ヘッダ数

～((0－32767))《100》

(a)　内容

HTTP通信によって，Webブラウザが送信してくるリクエストをサーバが受信する場合のHTTPヘッダ数の上限を指定します。リクエストのHTTPヘッダ数は，Webブラウザやリクエストを中継するプロキシなどの仕様で変わります。上限値を設定しない場合は，0を指定してください。

(b)　記述できる場所

httpsd.conf

(14)　LimitRequestFieldsize　ヘッダサイズ

～((0－8190))《8190》（単位：バイト）

(a)　内容

HTTP通信によって，Webブラウザが送信してくるリクエストをサーバが受信する場合，一つのHTTPヘッダの，サイズの上限を指定します。リクエストヘッダのサイズはWebブラウザやリクエストを中継するプロキシなどの仕様で変わります。

(b)　記述できる場所

httpsd.conf

(15)　LimitRequestLine　リクエストライン長

～((0－8190))《8190》（単位：バイト）

(a)　内容

HTTP通信によって，Webブラウザが送信してくるリクエストをサーバが受信する場合のリクエストライン（メソッド，問い合わせ文字列などを含むURI，HTTPバージョン）の長さの上限を指定します。Webブラウザから<FORM METHOD=GET ACTION...>によるリクエストを送る場合などに問い合わせ文字列としてリクエストラインが用いられます。なお，リクエストラインとしてWebブラウザから何バイト送れるかは，Webブラウザやリクエストを中継するプロキシなどの仕様で変わります。

(b)　記述できる場所

httpsd.conf

(16)　Listen　〔IPアドレス:〕ポート番号

(a)　内容

リクエストを受け付けるIPアドレスおよびポート番号を指定します。Portディレクティブと異なり，複数指定できます。Listenディレクティブを指定すると，PortディレクティブおよびBindAddressディレクティブの指定は無視されます。

IPアドレスにはIPv6アドレスも指定できます。IPv6アドレスを指定する場合は，IPv6アドレスを[　]で囲んでください。ただし，IPアドレスを省略してポート番号だけを指定した場合は，IPv4アドレスを使用したリクエストだけを受け付けます。このため，IPv6アドレスを使用する場合は，必ずListenディレクティブにIPv6アドレスを指定してください。

ListenディレクティブのIPアドレスを変更してサーバを再起動する場合，サーバをいったん停止後，起動してください。コマンドなどで再起動を選択すると，サーバの起動に失敗する場合があります。

(b)　記述できる場所

httpsd.conf

(c)　指定例

Listen 80
Listen [fec0::123:4567:89ab:cdef]:8080
Listen [::]:80

(17)　ListenBacklog　バックログ数

～((1－2147483647))《511》

(a)　内容

クライアントからの接続要求の最大の待ち行列数を指定します。この指定値はシステムコールlisten( )のバックログ数として設定されます。ただし，指定値の制限値や，実際の待ち行列数の最大値についてはOSによって異なるため，詳細は各OSのlisten( )についてのマニュアルや，各OSのTCP/IP実装の詳細を説明しているドキュメントを参照してください。

(b)　記述できる場所

httpsd.conf

(18)　LoadFile　ファイル名　〔ファイル名　…〕

(a)　内容

DSOによって組み込むモジュールが参照するコードがあるオブジェクトファイルまたはライブラリを指定します。ファイル名には，絶対パスまたはServerRootディレクティブの指定値からの相対パスが指定できます。

LoadModuleディレクティブでこのファイルを参照するモジュールを指定する場合，それらがhttpsd.confで使用される前に，このディレクティブを指定する必要があります。

(b)　記述できる場所

httpsd.conf

(19)　LoadModule　module構造体名　ライブラリファイル名

(a)　内容

Webサーバに動的に組み込むモジュールを指定します。ライブラリファイル名には，絶対パスまたはServerRootディレクティブの指定値からの相対パスが指定できます。

(b)　記述できる場所

httpsd.conf

(c)　指定例

LoadModule hws01_module libexec/mod_hws01.so
LoadModule hws02_module libexec/mod_hws02.so

モジュールhws01_moduleとモジュールhws02_moduleを組み込みます。

(20)　LogFormat　"フォーマット"　〔ラベル名〕

～<<"%h %l %u %t ¥"%r¥" %>s %b">>

(a)　内容

ログのフォーマットにラベル名を定義します。ここで定義したラベル名をCustomLogディレクティブで指定できます。指定できるフォーマットはCustomLogディレクティブを参照してください。なお，フォーマットに%Aまたは%aを指定した場合，IPv6アドレスも出力できます。また，フォーマットに%hまたは%Vを指定した場合，IPv6アドレスに対応したホスト名またはIPv6アドレスも出力できます。

ラベル名を付けない場合は，このディレクティブを複数指定できません。

(b)　記述できる場所

httpsd.conf，<VirtualHost>

(c)　指定例

LogFormat "%h %l %u %t ¥"%r¥" %>s %b ¥"%{Referer}i¥" ¥"%{User-Agent}i¥"" combined
LogFormat "%h %l %u %t ¥"%r¥" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent

(21)　LogLevel　｛debug｜info｜notice｜warn｜error｜crit｜alert｜emerg｝

(a)　内容

エラーログに出力するエラーのレベルを指定します。指定したレベルの上位レベルのログを出力します。ただし，noticeレベルのログはこの指定に関係なく出力されます。また，Hitachi Web Server起動時など，レベル指定の解析終了前に出力されるメッセージは，この指定に関係なく出力される場合があります。

次にエラーレベルを上位順に示します。

レベル | 意味
emerg | 緊急メッセージ
alert | 即時処理要求メッセージ
crit | 致命的な状態のメッセージ
error | 一般的エラーメッセージ
warn | 警告レベルメッセージ
notice | 標準的だが重要なメッセージ
info | インフォメーションメッセージ，外部モジュールとCGIプログラム実行時のモジュールトレース※
debug | デバッグレベルメッセージ，内部モジュールトレースおよびinfo相当のモジュールトレース※

注※　モジュールトレースは，エラーログではなくリクエストログに出力するよう設定できます。詳細は，「4.2.2(5)　各トレースの出力先」および「4.2.6　モジュールトレースの採取」を参照してください。

(b)　記述できる場所

httpsd.conf，<VirtualHost>

(c)　指定例

LogLevel info

6.2.6　M，N，O，P，Q，Rで始まるディレクティブ

＜この項の構成＞

(1)　MaxClients　接続数　

(2)　MaxKeepAliveRequests　接続数

(3)　MaxRequestsPerChild　リクエスト処理回数　

(4)　MaxSpareServers　プロセス数　

(5)　MinSpareServers　プロセス数　

(6)　MultiviewsMatch　｛NegotiatedOnly｜Handlers｝

(7)　NameVirtualHost　｛IPアドレス｜*｝〔:ポート番号〕

(8)　Options　｛+｜-｝オプション　〔｛+｜-｝オプション　…〕

(9)　Order　指示子

(10)　PassEnv　環境変数　〔環境変数　…〕

(11)　PidFile　ファイル名

(12)　Port　ポート番号

(13)　ProxyErrorOverride　｛On｜Off｝

(14)　ProxyPass　パス名　URL

(15)　ProxyPassReverse　パス名　URL

(16)　ProxyPreserveHost　｛On｜Off｝

(17)　ProxyVia　｛on｜off｜full｜block｝

(18)　QOSCookieDomain　ドメイン名

(19)　QOSCookieExpires　値

(20)　QOSCookieName　クッキー名　〔｛hws｜user｝〕

(21)　QOSCookieSecure｛on｜off｝

(22)　QOSCookieServers　値

(23)　QOSRedirect　旧パス　新パス

(24)　QOSRejectionServers　値

(25)　QOSResponse　｛file［MIMEタイプ］ファイル名｜message　テキスト｝

(26)　ReadmeName　ファイル名

(27)　Redirect　〔｛permanent｜temp｜seeother｜gone｜ステータスコード｝〕　旧パス　新パス

(28)　RedirectMatch　〔｛permanent｜temp｜seeother｜gone｜ステータスコード｝〕　正規表現　新パス

(29)　RequestHeader｛｛set｜append｜add｝ヘッダ　ヘッダ値〔env=〔!〕環境変数〕｜unset　ヘッダ｝

(30)　Require　｛user　ユーザ名　〔ユーザ名　…〕｜group　グループ名　〔グループ名　…〕｜valid-user｜file-owner｜file-group｝

(1)　MaxClients　接続数　[図データ]

～((1－1024)) 《1024》

(a)　内容

同時に接続できるクライアントの最大数を指定します。

サーバを起動すると，StartServerディレクティブで指定した数のプロセスが起動されリクエストを待ちます。多くのリクエストが同時に発生した場合，複数のプロセスでリクエストを処理することになります。リクエスト待ちの残りプロセス数がMinSpareServersディレクティブで指定した数より少なくなると，徐々に新規プロセスを生成します。このとき，プロセス数がこのディレクティブで指定した数になるまでプロセスが生成されます。その後，リクエストの処理が終了しリクエスト待ちプロセスが増加すると，MaxSpareServersディレクティブで指定した数までプロセスを終了させます。

プロセス数に関連するほかのディレクティブについては，「4.1　Hitachi Web Serverの処理とディレクティブとの関係」を参照してください。

(b)　記述できる場所

httpsd.conf

(c)　指定例

MaxClients 150

(2)　MaxKeepAliveRequests　接続数

～((0－2147483647))《100》

(a)　内容

KeepAlive連続接続回数の上限を指定します。上限値を設定しない場合は0を指定します。KeepAliveはサーバプロセスが特定のクライアントに占有されるので，ほかのクライアントにもサービスの機会を与えるために上限を設けます。

(b)　記述できる場所

httpsd.conf

(c)　指定例

MaxKeepAliveRequests 100

(3)　MaxRequestsPerChild　リクエスト処理回数　[図データ]

～((0－2147483647))《0》

(a)　内容

サーバプロセスのリクエスト処理回数を指定します。サーバプロセスは指定されたリクエスト処理回数だけ動作し，終了します。 ユーザが作成したアプリケーションなどによるメモリリークによる障害を未然に防ぐ効果があります。なお，0を指定すると，サーバプロセスのリクエスト処理回数の上限は設定されません。サーバプロセスは終了することなく，リクエストを待ち，処理します。

(b)　記述できる場所

httpsd.conf

(c)　指定例

MaxRequestsPerChild 10000

(4)　MaxSpareServers　プロセス数　[図データ]

～((1－1024))《10》

(a)　内容

リクエスト待ち状態で稼働させておくサーバプロセスの最大数を指定します。プロセス数に関連するほかのディレクティブについては，「4.1　Hitachi Web Serverの処理とディレクティブとの関係」を参照してください。

MinSpareServers以下の値を設定した場合，MinSpareServers指定値+1の値が仮定されます。

(b)　記述できる場所

httpsd.conf

(c)　指定例

MaxSpareServers 10

(5)　MinSpareServers　プロセス数　[図データ]

～((1－1024))《5》

(a)　内容

リクエスト待ち状態で稼働しているサーバプロセスの最小数を指定します。サーバプロセス数がこの指定値より少なくなったら，新しいプロセスを生成します。プロセス数に関連するほかのディレクティブについては，「4.1　Hitachi Web Serverの処理とディレクティブとの関係」を参照してください。

(b)　記述できる場所

httpsd.conf

(c)　指定例

MinSpareServers 5

(6)　MultiviewsMatch　｛NegotiatedOnly｜Handlers｝

(a)　内容

コンテントネゴシエーションの対象となる拡張子の種類を指定します。

NegotiatedOnly：拡張子が文字セット，圧縮形式，言語コード，MIMEタイプと関連づけられたものだけをコンテントネゴシエーションの対象にします。

Handlers：NegotiatedOnlyを指定した場合の対象に加え，ハンドラと関連づけられた拡張子についてもコンテントネゴシエーションの対象にします。

(b)　記述できる場所

httpsd.conf，<VirtualHost>，<Directory>，.htaccess

(c)　上書き許可

FileInfoレベル

(d)　指定例

MultiviewsMatch Handlers

(7)　NameVirtualHost　｛IPアドレス｜*｝〔:ポート番号〕

(a)　内容

サーバ名に基づくバーチャルホストで使用するIPアドレスを指定します。IPアドレスには，IPv6アドレスも指定できます。IPv6アドレスを指定する場合は，IPv6アドレスを[　]で囲んでください。

IPアドレスの代わりに*を指定すると，IPv4アドレスを指定したNameVirtualHostディレクティブや<VirtualHost>ブロックで使用していないIPv4アドレスによるコネクションに対応して，サーバ名に基づくバーチャルホストを生成します。この指定はサーバ名に基づくバーチャルホストだけを使用している場合で，コンフィグファイルにIPアドレスを固定したくないときに便利です。

(b)　記述できる場所

httpsd.conf

(8)　Options　｛+｜-｝オプション　〔｛+｜-｝オプション　…〕

～《All》

(a)　内容

ユーザが利用できる機能を制限する場合に指定します。

+：オプションで指定した機能の利用を許可します。

-：オプションで指定した機能の利用を禁止します。

オプション | 機能
All | MultiViews，SymLinksIfOwnerMatchを除くすべてのオプションが有効です。
ExecCGI | CGIスクリプトの実行を許可します。
FollowSymLinks | シンボリックリンクをたどります。Windows版では指定できません。
Indexes | URLにディレクトリが指定されたとき，DirectoryIndexディレクティブで指定したファイル（デフォルトはindex.html）がない場合，ディレクトリのインデクスを表示します。
MultiViews | Content-negotiated Multiviewsをサポートします。
None | すべてのオプションで指定できる機能を無効にします。
SymLinksIfOwnerMatch | ファイルまたはディレクトリの所有者がシンボリックリンクの所有者と同じ場合だけ，リンクをたどります。Windows版では指定できません。

注　+-を使用しないでこのディレクティブを複数指定すると，最後に指定したディレクティブだけが有効になります。

（例1）

Options All
Options ExecCGI

このようにオプションに+-を指定しないディレクティブを2行指定した場合，ユーザはCGIスクリプトの実行機能だけが利用できます。ディレクトリインデクスなどの機能は利用できません。

（例2）

httpsd.confファイルの指定

Options All

アクセスコントロールファイルの指定

Options ExecCGI

httpsd.confファイルの後にアクセスコントロールファイルが参照されるので，アクセスコントロールファイルがあるディレクトリではCGIスクリプトの実行機能だけが利用できます。

（例3）

Options Indexes ExecCGI

このように1行に+-を指定しないオプションを指定した場合は，指定した機能の両方を利用できます。

(b)　記述できる場所

httpsd.conf，<VirtualHost>，<Directory>，.htaccess

(c)　上書き許可

Optionsレベル

(9)　Order　指示子

～《deny,allow》

(a)　内容

AllowディレクティブとDenyディレクティブの指定の評価の順序を指定します。指示子に指定できるものを次に示します。先に評価されたものは，後に評価されるものに上書きされます。

指示子 | 意味
deny,allow | Denyディレクティブの指定を，Allowディレクティブの指定より先に評価
allow,deny | Allowディレクティブの指定を，Denyディレクティブの指定より先に評価
mutual-failure | Allowディレクティブに指定され，Denyディレクティブに指定されていないホストだけアクセスを許可

(b)　記述できる場所

<Directory>，.htaccess

(c)　上書き許可

Limitレベル

(10)　PassEnv　環境変数　〔環境変数　…〕

(a)　内容

CGIスクリプトに渡す任意の環境変数を指定できます。

(b)　記述できる場所

httpsd.conf，<VirtualHost>，<Directory>，.htaccess

(c)　上書き許可

FileInfoレベル

(d)　指定例

PassEnv TMP

(11)　PidFile　ファイル名

～《logs/httpd.pid》

(a)　内容

制御プロセスIDを格納するファイル名を指定します。ファイル名には，絶対パスまたはServerRootディレクティブの指定値からの相対パスが指定できます。

(b)　注意事項

Windows版の場合，再起動時には，PidFileディレクティブ指定値の変更は反映されません。PidFileディレクティブ指定値を変更した場合は，いったんWebサーバを停止してから，再起動してください。

UNIX版の場合，再起動時には，PidFileディレクティブ指定値の変更は反映されません。PidFileディレクティブ指定値を変更した場合は，いったんWebサーバをkillコマンドで停止してから，起動してください。停止時にhttpsdctlユティリティは使用できません。

(c)　記述できる場所

httpsd.conf

(d)　指定例

PidFile logs/httpd.pid

(12)　Port　ポート番号

～((1－65535))《80》

(a)　内容

IPv4アドレスを使用したWebブラウザからの要求を受け付けるサーバのポート番号を指定します。

Portディレクティブを指定しても，IPv6アドレスを使用したWebブラウザからの要求は受け付けません。IPv6アドレスを使用する場合は，Listenディレクティブで指定してください。その場合，IPv4アドレスと併用するときは，IPv4アドレスについてもListenディレクティブを指定してください。

(b)　記述できる場所

httpsd.conf

(c)　指定例

Port 80

(13)　ProxyErrorOverride　｛On｜Off｝

(a)　内容

バックエンドサーバからのステータスコードが300番台，400番台または500番台の場合，レスポンスヘッダとレスポンスボディをオーバーライドします。その結果，リバースプロキシはバックエンドサーバからのレスポンスではなく，自身が生成したレスポンスをクライアントに返します。

On：バックエンドサーバからのステータスコードが300番台，400番台または500番台の場合，レスポンスヘッダとレスポンスボディをオーバーライドします。

Off：レスポンスヘッダとレスポンスボディをオーバーライドしません。

(b)　注意事項

リバースプロキシを使用するためにはmod_proxyモジュールおよびmod_proxy_httpモジュールの組み込みが必要です。リバースプロキシの詳細は，「4.7　リバースプロキシの設定」を参照してください。

(c)　記述できる場所

httpsd.conf，<VirtualHost>

(d)　指定例

ProxyErrorOverride On

バックエンドサーバからのステータスコードが300番台，400番台または500番台の場合，リバースプロキシが生成したレスポンスをクライアントに返します。

(14)　ProxyPass　パス名　URL

(a)　内容

リバースプロキシを使用する場合，Webブラウザからのリクエストとそれを転送するアドレスを指定します。

パス名：Webブラウザからリバースプロキシへのリクエストを/（スラッシュ）から始まるURLで指定します。

URL：転送先となるバックエンドサーバのURLを"http://ホスト名〔:ポート番号〕"を含む形で指定します。

URLには，IPv6アドレスまたはIPv6アドレスに対応したホスト名も指定できます。

(b)　注意事項

リバースプロキシを使用するためにはmod_proxyモジュールおよびmod_proxy_httpモジュールの組み込みが必要です。リバースプロキシの詳細は，「4.7　リバースプロキシの設定」を参照してください。

(c)　記述できる場所

httpsd.conf，<VirtualHost>

(15)　ProxyPassReverse　パス名　URL

(a)　内容

リバースプロキシを使用する場合，バックエンドサーバからのリダイレクトレスポンスのLocationヘッダで示すURLを変更します。Webブラウザからのリダイレクトによるリクエストをリバースプロキシを通すリクエストにするためにLocationヘッダをこのディレクティブの指定値に変更します。

パス名：リダイレクトのリクエスト先であるリバースプロキシのパス名を，/（スラッシュ）から始まるURLで指定します。

URL：変更対象となるLocationヘッダ中のバックエンドサーバのURLを"http://ホスト名〔:ポート番号〕"を含む形で指定します。

URLには，IPv6アドレスまたはIPv6アドレスに対応したホスト名も指定できます。IPv6アドレスにはさまざまな表記方法がありますので，指定値に注意してください。IPv6アドレスの表記が指定値と一致しない場合，ディレクティブが有効になりません。IPv6アドレスを指定する場合は，バックエンドサーバからの応答のLocationヘッダ値に含まれるIPv6アドレスの表記を確認してください。

(b)　注意事項

リバースプロキシを使用するためにはmod_proxyモジュールおよびmod_proxy_httpモジュールの組み込みが必要です。リバースプロキシの詳細は，「4.7　リバースプロキシの設定」を参照してください。

(c)　記述できる場所

httpsd.conf，<VirtualHost>

(16)　ProxyPreserveHost　｛On｜Off｝

(a)　内容

リバースプロキシを使用する場合，クライアントから受信したHostヘッダの値をそのままバックエンドサーバに転送するかどうかを指定します。

On：クライアントから受信したHostヘッダの値をそのままバックエンドサーバに転送します。

Off：クライアントから受信したHostヘッダの値をProxyPassディレクティブの指定値に従って変更して，バックエンドサーバに転送します。

(b)　注意事項

リバースプロキシを使用するためにはmod_proxyモジュールおよびmod_proxy_httpモジュールの組み込みが必要です。リバースプロキシの詳細は，「4.7　リバースプロキシの設定」を参照してください。

(c)　記述できる場所

httpsd.conf，<VirtualHost>

(d)　指定例

ProxyPreserveHost On

クライアントから受信したHostヘッダの値をそのままバックエンドサーバに転送します。

(17)　ProxyVia　｛on｜off｜full｜block｝

(a)　内容

このディレクティブはプロキシでViaヘッダの使用を制御する場合に指定します。

on：Viaヘッダに自ホストの情報を追加します。すでにある情報は変更しません。

off：Viaヘッダに自ホストの情報を追加しません。すでにある情報は変更しません。

full：コメントとして自ホストのバージョンを付けた情報をViaヘッダに追加します。すでにある情報は変更しません。

block：Viaヘッダに自ホストの情報を追加しません。リクエスト中のViaヘッダは削除します。

(b)　注意事項

リバースプロキシを使用するためにはmod_proxyモジュールおよびmod_proxy_httpモジュールの組み込みが必要です。リバースプロキシの詳細は，「4.7　リバースプロキシの設定」を参照してください。

(c)　記述できる場所

httpsd.conf，<VirtualHost>

(18)　QOSCookieDomain　ドメイン名

(a)　内容

流量制限機能に使用するクッキーが有効とされるドメインを指定します。この値は，HWS作成モードで使用され，ユーザ作成モードでは使用されません。複数のホストを設定している場合，このディレクティブを設定することでドメイン部分の共通するホスト間でクッキーを使用できるようになります。ドメイン名には，少なくとも"."が二つ含まれていなければなりません。

なお，IPv6アドレスに対応したドメイン名も指定できます。

（例）

a.example.comとb.example.comの二つのホストを設定している場合，このディレクティブで .example.comと指定すると，二つのホストのどちらにアクセスしても優先度処理が行われます。

(b)　注意事項

流量制限機能を使用するためにはmod_hws_qosモジュールの組み込みが必要です。流量制限機能については，「4.9　流量制限機能」を参照してください。

(c)　記述できる場所

httpsd.conf，<VirtualHost>

(19)　QOSCookieExpires　値

～((0－86400))《300》（単位：秒）

(a)　内容

流量制限機能に使用するクッキーの有効時間を秒単位で指定します。この値は，HWS作成モードで使用され，ユーザ作成モードでは使用されません。

(b)　注意事項

流量制限機能を使用するためにはmod_hws_qosモジュールの組み込みが必要です。流量制限機能については，「4.9　流量制限機能」を参照してください。

(c)　記述できる場所

httpsd.conf，<VirtualHost>，<Location>

(20)　QOSCookieName　クッキー名　〔｛hws｜user｝〕

～《HWSCHK》

(a)　内容

流量制限機能に使用するクッキー名を指定します。クッキー名にセミコロン，コンマ，空白文字は使用できません。ホスト間およびURL間でそれぞれ異なるクッキーを利用したセション管理を行う場合は，別のクッキー名を指定する必要があります。

hws：Hitachi Web Serverが作成するクッキーを用いて，セション管理を実施します。これをHWS作成モードと呼びます。

user：Hitachi Web Server以外の外部モジュールなどで作成されたクッキーを用いて，セション管理を実施します。これをユーザ作成モードと呼びます。

(b)　注意事項

流量制限機能を使用するためにはmod_hws_qosモジュールの組み込みが必要です。流量制限機能については，「4.9　流量制限機能」を参照してください。

QOSCookieNameディレクティブを特定のブロックに指定した場合，上位に指定されているQOSCookieNameディレクティブは継承しません。

（例）

QOSCookieName Cookie1 hws

<Location /loc1>

　　QOSCookieName Cookie2 user

</Location>

この場合，"/loc1"から始まるリクエストでは，クッキー名Cookie2の指定が有効になります。"/loc1"以外から始まるリクエストでは，クッキー名Cookie1の指定が有効になります。

QOSCookieNameディレクティブを複数指定する場合は，クッキー名を重複させないでください。重複している場合は，起動エラーになります。

（例）

QOSCookieName Cookie1 hws

QOSCookieName Cookie1 user

この場合，クッキー名が重複しているため起動エラーになります。

HWS作成モードのQOSCookieNameディレクティブを複数指定した場合は，後に指定した方が有効になります。

(例)

QOSCookieName Cookie1 hws

QOSCookieName Cookie2 hws

この場合，クッキー名Cookie1の指定は無効になり，Cookie2の指定が有効になります。

(c)　記述できる場所

httpsd.conf，<VirtualHost>，<Location>

(21)　QOSCookieSecure｛on｜off｝

(a)　内容

クライアントに対し，SSLによるアクセス時だけにクッキーを送信させるよう設定します。この値は，HWS作成モードで使用され，ユーザ作成モードでは使用されません。クッキーの確認はSSLの暗号処理の終了後であることに注意してください。

on：SSLによるアクセス時だけ，クライアントにクッキーを送信させるよう設定します。

off：SSL以外によるアクセス時にも，クライアントにクッキーを送信させるよう設定します。

（例）

SSLが有効であるホストと無効であるホストを設定している場合，このディレクティブを設定すると，SSLが有効なホストへのアクセスだけクッキーが送信されます。

(b)　注意事項

流量制限機能を使用するためにはmod_hws_qosモジュールの組み込みが必要です。流量制限機能については，「4.9　流量制限機能」を参照してください。

(c)　記述できる場所

httpsd.conf，<VirtualHost>，<Location>

(22)　QOSCookieServers　値

UNIX版の場合

～((0－MaxClientsディレクティブ指定値))《10》

Windows版の場合

～((0－ThreadsPerChildディレクティブ指定値))《10》

(a)　内容

リクエスト待ち状態のサーバプロセス数が減少した場合に，クッキーを送信してきたリクエストだけを処理するときの，サーバプロセス数を指定します。

Windows版の場合は，サーバスレッド数を指定します。

(b)　注意事項

流量制限機能を使用するためにはmod_hws_qosモジュールの組み込みが必要です。流量制限機能については，「4.9　流量制限機能」を参照してください。

(c)　記述できる場所

httpsd.conf，<VirtualHost>，<Location>

(23)　QOSRedirect　旧パス　新パス

(a)　内容

流量制限機能によって処理が拒否された場合に，クライアントからのリクエストを指定されたパスにリダイレクトさせるときに指定します。新パスには，"プロトコル名://ホスト名〔:ポート番号〕"を含むURLのパスを指定します。また，新パスに指定するURLには，IPv6アドレスまたはIPv6アドレスに対応したホスト名も指定できます。

旧パスでリクエストを受けた場合，ステータスコード302とLocationヘッダに新パスを設定したレスポンスを返します。レスポンスをカスタマイズすることはできません。

旧パス，新パスの指定については，Redirectディレクティブを参照してください。

(b)　注意事項

流量制限機能を使用するためにはmod_hws_qosモジュールの組み込みが必要です。流量制限機能については，「4.9　流量制限機能」を参照してください。

(c)　記述できる場所

httpsd.conf，<VirtualHost>，<Location>

(24)　QOSRejectionServers　値

UNIX版の場合

～((0－MaxClientsディレクティブ指定値))《1》

Windows版の場合

～((0－ThreadsPerChildディレクティブ指定値))《1》

(a)　内容

リクエスト待ち状態のサーバプロセス数が減少し，受信したすべてのリクエストを拒否するようになるときの，サーバプロセス数を指定します。

Windows版の場合は，サーバスレッド数を指定します。

(b)　注意事項

流量制限機能を使用するためにはmod_hws_qosモジュールの組み込みが必要です。流量制限機能については，「4.9　流量制限機能」を参照してください。

(c)　記述できる場所

httpsd.conf，<VirtualHost>，<Location>

(25)　QOSResponse　｛file［MIMEタイプ］ファイル名｜message　テキスト｝

(a)　内容

流量制限機能によって処理が拒否された場合に，503ステータスコードとともに返送するコンテンツを指定します。コンテンツはサーバプロセス内にキャッシュされるため，変更する場合にはサーバの再起動が必要です。

file：指定したファイルを，指定したMIMEタイプで返送します。MIMEタイプを省略したときは"text/html"が設定されます。また，ファイル名には，絶対パスまたはServerRootディレクティブの指定値からの相対パスが指定できます。

message：指定したテキストを返送します。テキストは先頭に"を記述して文字列を指定します。MIMEタイプには"text/html"が設定されます。

(b)　注意事項

流量制限機能を使用するためにはmod_hws_qosモジュールの組み込みが必要です。流量制限機能については，「4.9　流量制限機能」を参照してください。

(c)　記述できる場所

httpsd.conf，<VirtualHost>，<Location>

(d)　指定例

QOSResponse file "text/html; charset=ISO-8859-1" htdocs/busy.html
QOSResponse message "Server busy.

(26)　ReadmeName　ファイル名

(a)　内容

ディレクトリインデクス表示時のReadmeとして付けるコメントを記述したファイルのファイル名（パス情報なし）を指定します。HTMLまたはプレーンテキストで記述できます。ただし，AddTypeディレクティブまたはTypesConfigディレクティブで指定したファイルで，MIMEタイプが正しく定義されている必要があります。プレーンテキストでコメントを作成した場合，ディレクトリインデクス表示のHTMLには<PRE>タグが追加されます。

(b)　記述できる場所

httpsd.conf，<VirtualHost>，<Directory>，.htaccess

(c)　上書き許可

Indexesレベル

(d)　指定例

ReadmeName README.html

ディレクトリ下のREADME.htmlファイルの内容を表示します。

(27)　Redirect　〔｛permanent｜temp｜seeother｜gone｜ステータスコード｝〕　旧パス　新パス

(a)　内容

旧パスに対するクライアントからのリクエストを，新パスに再リクエスト（リダイレクト）する場合に指定します。

旧パスには，スラッシュから始まるリクエストURLのパスを指定します。ただし，旧パスには，?以降（問い合わせ文字列）を指定できません。

新パスには，"プロトコル名://ホスト名〔:ポート番号〕"を含むURLのパスを指定します。また，新パスに指定するURLには，IPv6アドレスまたはIPv6アドレスに対応したホスト名も指定できます。

旧パスでリクエストを受けた場合，指定したステータスコードとLocationヘッダに新パスを設定した応答を返します。通常，300番台のステータスコードを受けたWebブラウザは，自動的にLocationヘッダに指定されたアドレスに対してリダイレクトします。

Redirectディレクティブでは，特定のファイルへのリクエストを特定のファイルへリダイレクトするか，特定のディレクトリ下の，任意のパスへのリクエストを特定のディレクトリ下の，同名パスへリダイレクトする指定ができます。特定のディレクトリ下の，任意のパスへのリクエストを，特定のファイルへリダイレクトしたい場合はRedirectMatchディレクティブを使用してください。

permanent：ステータスコード301 Moved Permanentlyを応答します。

temp：ステータスコード302 Foundを応答します。

seeother：ステータスコード303 See Otherを応答します。

gone：ステータスコード410 Goneを応答します。新パスは指定できません。

ステータスコード：指定したステータスコードを応答します。指定できる値は，「付録A　ステータスコード」を参照してください。ただし，300番台以外を指定する場合，新パスは指定できません。

(b)　記述できる場所

httpsd.conf，<VirtualHost>，<Directory>，.htaccess

(c)　上書き許可

FileInfoレベル

(d)　指定例

Redirect temp /index.html http://ホスト名:port番号/default.html

/index.htmlに対するリクエストを，ステータスコード302で"http://ホスト名:port番号/default.html"にリダイレクトします。

(28)　RedirectMatch　〔｛permanent｜temp｜seeother｜gone｜ステータスコード｝〕　正規表現　新パス

(a)　内容

正規表現で記述した条件を満たすパスに対するクライアントからのリクエストを，新パスに再リクエスト（リダイレクト）する場合に指定します。

正規表現には，スラッシュから始まるリクエストURLの旧パスを正規表現で指定します。ただし，旧パスには，?以降（問い合わせ文字列）を指定できません。

新パスには，"プロトコル名://ホスト名〔:ポート番号〕"を含むURLのパスを指定します。また，新パスに指定するURLには，IPv6アドレスまたはIPv6アドレスに対応したホスト名も指定できます。

正規表現で括弧（）を使用してグループ化している場合，そのi番目のグループの表現にマッチした文字列を，新パスで $iを使用して参照できます。iには1から9までの数字を指定します。正規表現で記述した条件を満たすパスへのリクエストを受信した場合に，指定したステータスコードと，新パスを設定したLocationヘッダを応答します。通常，300番台のステータスコードを受けたWebブラウザは，自動的にLocationヘッダに指定されたアドレスに対して再リクエスト（リダイレクト）します。

各ステータスコードの指定については，Redirectディレクティブを参照してください。

(b)　記述できる場所

httpsd.conf，<VirtualHost>，<Directory>，.htaccess

(c)　上書き許可

FileInfoレベル

(d)　指定例

（例1）

RedirectMatch ^/other/ http://www.example.com/

/other/で始まるすべてのリクエストを，ステータスコード302で "http://www.example.com/"にリダイレクトします。

（例2）

RedirectMatch permanent ^/old/(.*) http://www.example.com/new/$1

"/old/ファイル名"に対するリクエストを，ステータスコード301で "http://www.example.com/new/ファイル名"にリダイレクトします。

(29)　RequestHeader｛｛set｜append｜add｝ヘッダ　ヘッダ値〔env=〔!〕環境変数〕｜unset　ヘッダ｝

(a)　内容

クライアントから受信したヘッダ値をカスタマイズする場合に指定します。

set：ヘッダを設定します。ヘッダがある場合は，指定したヘッダ値に書き換えます。

append：存在するヘッダにヘッダ値を追加します。存在するヘッダ値との間は，コンマで区切られます。ヘッダがない場合は，ヘッダを設定します。

add：ヘッダがあっても，別の行にヘッダを設定します。同じヘッダを複数行設定する場合に使用します。

unset：指定したヘッダがある場合，そのヘッダをすべて削除します。

env=環境変数：指定した環境変数が設定されている場合に，RequestHeaderディレクティブで指定した内容を実行します。

env=!環境変数：指定した環境変数が設定されていない場合に，RequestHeaderディレクティブで指定した内容を実行します。

ヘッダ値に空白がある場合は，"（引用符）で囲む必要があります。ヘッダ値は文字だけから成る文字列，フォーマット指示子を含む文字列または両方から成る文字列を指定できます。フォーマット指示子を次に示します。

フォーマット指示子 | 意味
%t | リクエストを受け取った時刻を，1970年1月1日0時0分0秒(GMT：Greenwich Mean Time)から経過した時間で表示する。単位はマイクロ秒。先頭には"t="が付けられる。
%D | リクエスト処理に掛かった時間を表示する。単位はマイクロ秒。先頭には"D="が付けられる。
%{env_name}e | 環境変数env_nameの値。

(b)　注意事項

ヘッダカスタマイズ機能を使用するためにはmod_headersモジュールの組み込みが必要です。ヘッダカスタマイズ機能については，「4.10　ヘッダカスタマイズ機能」を参照してください。

(c)　記述できる場所

httpsd.conf，<VirtualHost>，<Directory>，.htaccess

(d)　上書き許可

FileInfoレベル

(e)　指定例

RequestHeader set Host www.example.com

(30)　Require　｛user　ユーザ名　〔ユーザ名　…〕｜group　グループ名　〔グループ名　…〕｜valid-user｜file-owner｜file-group｝

(a)　内容

AuthNameディレクティブ，AuthTypeディレクティブ，AuthUserFileディレクティブ（またはAuthGroupFileディレクティブ）と一緒に指定し，アクセス制限を定義します。

user：AuthUserFileディレクティブで指定したパスワードファイルに登録されているユーザのうち，ユーザ名で指定したユーザだけアクセスできます。

group：AuthGroupFileディレクティブで指定したグループファイルに登録されているグループ名で指定したグループに属するユーザだけがアクセスできます。

valid-user：AuthUserFileディレクティブで指定したパスワードファイルに登録されているすべてのユーザまたはLDAPRequireディレクティブで指定したグループのユーザだけがアクセスできます。パスワードファイルとLDAPRequireディレクティブの組み合わせはできません。組み合わせた場合の動作は保証しません。

file-owner：AuthUserFileディレクティブで指定したパスワードファイルに登録されているユーザのうち，アクセス対象ファイルのシステムの所有ユーザと一致しているユーザだけがアクセスできます（Windows版では指定できません）。

file-group：AuthGroupFileディレクティブで指定したグループファイルに登録されているグループ名で指定したグループに属するユーザのうち，グループ名がアクセス対象ファイルのシステムの所有グループに一致しているユーザだけがアクセスできます（Windows版では指定できません）。

(b)　記述できる場所

<Directory>，.htaccess

(c)　上書き許可

AuthConfigレベル

6.2.7　Sで始まるディレクティブ

＜この項の構成＞

(1)　Satisfy　｛any｜all｝

(2)　Script　メソッド　CGIスクリプト名

(3)　ScriptAlias　URL　ディレクトリ名

(4)　ScriptAliasMatch　正規表現　新パス

(5)　ScriptInterpreterSource｛ registry｜script ｝　

(6)　ScriptLog　ファイル名

(7)　ScriptLogBuffer　バッファ数

(8)　ScriptLogLength　ファイルサイズ

(9)　ServerAdmin　E-Mailアドレス

(10)　ServerAlias　ホスト名　〔ホスト名　…〕

(11)　ServerName　サーバ名〔:ポート番号〕

(12)　ServerPath　パス名

(13)　ServerRoot　ディレクトリ名

(14)　ServerSignature　｛On｜Off｜Email｝

(15)　ServerTokens　｛Minimal｜OS｜Full｜ProductOnly｝

(16)　SetEnv　環境変数　値

(17)　SetEnvIf　リクエスト値　正規表現　環境変数〔=値〕　〔環境変数〔=値〕　…〕

(18)　SetEnvIfNoCase　リクエスト値　正規表現　環境変数〔=値〕　〔環境変数〔=値〕　…〕

(19)　SetHandler　ハンドラ名

(20)　SSLBanCipher　暗号種別　〔暗号種別　…〕

(21)　SSLCACertificateFile　ファイル名

(22)　SSLCACertificatePath　ディレクトリ　

(23)　SSLCacheServerPath　パス名　

(24)　SSLCacheServerPort　｛ポート番号｜パス名｝　

(25)　SSLCacheServerRunDir　パス名　

(26)　SSLCertificateFile　ファイル名

(27)　SSLCertificateKeyFile　ファイル名

(28)　SSLCertificateKeyPassword　パス名

(29)　SSLCRLAuthoritative　｛On｜Off｝

(30)　SSLCRLDERPath　パス名

(31)　SSLCRLPEMPath　パス名

(32)　SSLDenySSL

(33)　SSLDisable

(34)　SSLEnable

(35)　SSLExportCertChainDepth　値

(36)　SSLExportClientCertificates

(37)　SSLFakeBasicAuth

(38)　SSLProtocol プロトコル名　〔プロトコル名 …〕

(39)　SSLRequireCipher　暗号種別　〔暗号種別　…〕

(40)　SSLRequiredCiphers　暗号種別　〔:暗号種別　…〕

(41)　SSLRequireSSL

(42)　SSLSessionCacheTimeout　値

(43)　SSLSessionCacheSize　｛サイズ｜max｝

(44)　SSLSessionCacheSizePerChild　｛サイズ｜max｝　

(45)　SSLVerifyClient　｛0｜1｜2｜3｝

(46)　SSLVerifyDepth　段階数

(47)　StartServers　プロセス数　

(1)　Satisfy　｛any｜all｝

(a)　内容

コンテンツへのアクセスが，ユーザ認証（AuthUserFile，Requireディレクティブなどを指定）とホスト名またはIPアドレス（Allow from，Deny fromディレクティブなどを指定）の両方によって制限されている場合にその関係を設定します。

any：そのどちらかの条件を満たしていれば，コンテンツへのアクセスを許可します。

all：そのどちらの条件も満たさなければ，コンテンツへのアクセスを禁止します。

(b)　記述できる場所

<Directory>，.htaccess

(2)　Script　メソッド　CGIスクリプト名

(a)　内容

指定されたメソッドによるリクエストがあった場合にCGIスクリプト名で示すスクリプトを実行します。

指定できるメソッド：GET，POST，PUT，DELETE

メソッドは大文字，小文字を区別します。

ただし，GETメソッドの場合，スクリプトは問い合わせ引数があるときだけ（例えば，/foo.html?bar）呼ばれます。

(b)　記述できる場所

httpsd.conf，<VirtualHost>，<Directory>

(c)　指定例

Script POST /cgi-bin/search

(3)　ScriptAlias　URL　ディレクトリ名

(a)　内容

WebブラウザからURLで指定されたCGIプログラム実行のリクエストに対して，実行するCGIプログラムのあるディレクトリ名を指定します。

ディレクトリ名は，絶対パスで指定してください。

(b)　記述できる場所

httpsd.conf，<VirtualHost>

(c)　指定例

ScriptAlias /cgi-bin/ "C:/Program Files/Hitachi/httpsd/cgi-bin/"

(4)　ScriptAliasMatch　正規表現　新パス

(a)　内容

Webブラウザから指定されたCGIプログラム実行要求のURLが正規表現で記述した条件を満たす場合，指定した新パスのCGIプログラムを実行します。正規表現で括弧（）を使用してグループ化している場合，そのi番目のグループの表現にマッチした文字列を，新パスで $iを使用して参照できます。iには1から9までの数字を指定します。

新パスは，絶対パスで指定してください。また，新パスの文字として，'$'または'&'を含める場合は，その文字の前に'¥'を付加してください。なお，$iを指定する際には，'$'の前に'¥'を付加する必要はありません。

(b)　記述できる場所

httpsd.conf，<VirtualHost>

(c)　指定例

ScriptAliasMatch ^/cgi-bin/(.*) "C:/Program Files/Hitachi/httpsd/cgi-bin/$1"

(5)　ScriptInterpreterSource｛ registry｜script ｝　[図データ]

(a)　内容

CGIスクリプトの実行に使用されるインタプリタを定義します。

registry：レジストリが検索され，拡張子に関連づけられているプログラムがインタプリタとして使用されます。

script：スクリプト内の#!行で指定されたインタプリタが使用されます。

(b)　記述できる場所

httpsd.conf，<VirtualHost>，<Directory>，.htaccess

(c)　上書き許可

FileInfoレベル

(6)　ScriptLog　ファイル名

(a)　内容

CGIスクリプトのエラーログ出力先のファイルを指定します。ファイル名には，絶対パスまたはServerRootディレクティブの指定値からの相対パスが指定できます。

UNIXの場合，指定するファイルは，Userディレクティブで指定したユーザの権限で書き込みができるようになっている必要があります。

(b)　記述できる場所

httpsd.conf

(7)　ScriptLogBuffer　バッファ数

～((0－2147483647))《1024》（単位：バイト）

(a)　内容

PUT，POSTメソッドによるリクエストのボディ部のログを採取する場合の最大値をバイト単位で指定します。ScriptLogディレクティブでエラーログ出力先のファイルを指定した場合だけ，この指定は有効になります。

このディレクティブでの指定値分の領域が，リクエスト処理中に確保されます。そのため，大きい値を指定すると，メモリ確保失敗となって，Webサーバが終了する場合があります。デフォルト値または必要最小限の値を指定することを推奨します。

(b)　記述できる場所

httpsd.conf

(8)　ScriptLogLength　ファイルサイズ

～((0－2147483647))《10385760》（単位：バイト）

(a)　内容

CGIスクリプトのエラーログファイルの最大サイズをバイト単位で指定します。ScriptLogディレクティブでエラーログ出力先のファイルを指定した場合だけ指定が有効になります。

(b)　記述できる場所

httpsd.conf

(9)　ServerAdmin　E-Mailアドレス

(a)　内容

サーバ管理者のE-Mailアドレスを指定します。ServerSignatureディレクティブでE-Mailを指定する場合は，必ず指定してください。

(b)　記述できる場所

httpsd.conf，<VirtualHost>

(c)　指定例

ServerAdmin www-admin@server.example.com

(10)　ServerAlias　ホスト名　〔ホスト名　…〕

(a)　内容

サーバ名に基づくバーチャルホストで使用するホスト名（ServerName）の別名を指定します。IPv6アドレスに対応したホスト名も指定できます。

(b)　記述できる場所

<VirtualHost>

(11)　ServerName　サーバ名〔:ポート番号〕

(a)　内容

Hitachi Web Serverのサーバ名およびポート番号を指定します。ポート番号を省略した場合は，Portディレクティブ指定値が設定されます。

サーバ名は，FQDN（完全修飾ドメイン名）またはIPアドレスで指定します。また，サーバ名には，IPv6アドレスまたはIPv6アドレスに対応したFQDNも指定できます。IPv6アドレスを指定し，かつポート番号を指定する場合は，IPv6アドレスを[　]で囲んでください。

UseCanonicalNameディレクティブ指定値に従い，Redirectディレクティブの指定，イメージマップの利用または末尾を/（スラッシュ）で閉じないディレクトリ指定のリクエストなど，Webサーバでリダイレクトが指示された場合のリダイレクト先としてLocationヘッダに設定されクライアントに返信されるため，クライアントからアクセスできるサーバ名を指定しなければなりません。このディレクティブの指定は必須です。

(b)　記述できる場所

httpsd.conf，<VirtualHost>

(c)　指定例

ServerName www.example.com
ServerName fec0::123:4567:89ab:cdef
ServerName [fec0::123:4567:89ab:cdef]
ServerName [fec0::123:4567:89ab:cdef]:8080

(12)　ServerPath　パス名

(a)　内容

サーバ名に基づくバーチャルホストで，Hostヘッダの代わりにパス名を利用して各ホストに接続する場合に指定します。

(b)　記述できる場所

<VirtualHost>

(13)　ServerRoot　ディレクトリ名

～《/opt/hitachi/httpsd》 (UNIX版)

～《インストール先ディレクトリ》 (Windows版)

(a)　内容

サーバのルートディレクトリを絶対パスで指定します。

(b)　記述できる場所

httpsd.conf

(c)　指定例

ServerRoot "C:/Program Files/Hitachi/httpsd"

(14)　ServerSignature　｛On｜Off｜Email｝

(a)　内容

Webサーバが作成するエラーメッセージなどのコンテンツのフッタに署名するかどうかを指定します。

On：ServerTokensディレクティブに従った文字列（Hitachi Web Serverやバージョン番号など）およびUseCanonicalNameディレクティブ指定値に従ったサーバ名とポート番号を表示します。

Hitachi Web Server 03-00 at www.example.com Port 80

Off：コンテンツのフッタに署名を表示しません。

Email：Onを指定した場合の表示に加えServerAdminディレクティブの指定値をmailtoタグで追加します。

なお，Onを指定した場合，ServerNameディレクティブに指定したIPv6アドレスまたはIPv6アドレスに対応したホスト名を表示できます。

(b)　記述できる場所

httpsd.conf，<VirtualHost>，<Directory>，.htaccess

(c)　指定例

ServerSignature On

(15)　ServerTokens　｛Minimal｜OS｜Full｜ProductOnly｝

(a)　内容

HTTPレスポンスヘッダのServerヘッダのフォーマットを設定します。それぞれの設定によるServerヘッダの値を次に示します。OS種別には，UnixまたはWin32が設定されます。Serverヘッダの値がどのように利用されるかはクライアントの仕様によります。

Minimal：Hitachi Web Server バージョン番号

OS：Hitachi Web Server バージョン番号(OS種別)

Full：Hitachi Web Server バージョン番号(OS種別) 付加PPで設定された情報

ProductOnly：Hitachi Web Server

(b)　記述できる場所

httpsd.conf

(c)　指定例

ServerTokens Full

(16)　SetEnv　環境変数　値

(a)　内容

CGIスクリプトに任意の環境変数を渡す場合に設定する環境変数の値を指定します。このディレクティブを複数指定する場合，同じ環境変数に異なる値は指定できません。

(b)　記述できる場所

httpsd.conf，<VirtualHost>，<Directory>，.htaccess

(c)　上書き許可

FileInfoレベル

(d)　指定例

SetEnv MY_ENV myenv

(17)　SetEnvIf　リクエスト値　正規表現　環境変数〔=値〕　〔環境変数〔=値〕　…〕

(a)　内容

クライアントからのリクエストを基に環境変数を定義します。クライアントからのリクエスト値が正規表現で表した条件を満たす場合，指定した環境変数を設定します。設定する値のデフォルト値は1です。環境変数の前に!が付いたときは，その環境変数の設定を解除します。

リクエスト値としては，HTTPリクエストヘッダか次の表に示す値を指定できます。先に指定された環境変数をリクエスト値として指定することで環境変数の検査ができます。ただし，この場合の環境変数は，HTTPリクエストヘッダにも次の表に示す指定値にも一致していない必要があります。

リクエスト値 | 意味
Remote_Addr | クライアントのIPアドレス
Remote_Host | クライアントのホスト名（リクエストに設定されている場合だけ）
Request_Protocol | リクエストのプロトコル（HTTP/1.1　など）
Request_Method | リクエストのメソッド名（GET，POST，HEADなど）
Request_URI | リクエストのURI
Server_Addr | リクエストを受信したサーバのIPアドレス

このディレクティブを複数指定する場合，同じリクエスト値は複数指定できません。

なお，リクエスト値にRemote_Hostを指定した場合，正規表現にはIPv6アドレスに対応したホスト名も指定できます。また，IPv6を使用した接続に対しては，Remote_AddrとServer_Addrのリクエスト値は使用できません。Remote_AddrとServer_Addrを使用したい場合は，HWSSetEnvIfIPv6ディレクティブで設定してください。

(b)　記述できる場所

httpsd.conf，<VirtualHost>，<Directory>，.htaccess

(c)　上書き許可

FileInfoレベル

(d)　指定例

（例1）

SetEnvIf User-Agent "Mozilla.*" SETENVIF_USER_AGENT=Mozilla

（例2）

SetEnvIf Request_URI "¥.(gif)|(jpg)$" request_is_image

（例3）

IPv4を使用した接続のうち，特定のクライアントに対して環境変数を設定する場合は，次のように指定します。

Listen 123.123.123.123:80
Listen [fec0::123:4567:89ab:cdef]:80
<VirtualHost 123.123.123.123:80>
       SetEnvIf Remote_Addr ^234¥.234¥.234¥.234$ IPV4_CLIENT
</VirtualHost>

(18)　SetEnvIfNoCase　リクエスト値　正規表現　環境変数〔=値〕　〔環境変数〔=値〕　…〕

(a)　内容

クライアントからのリクエストを基に環境変数を定義します。クライアントからのリクエスト値が正規表現で表した条件を満たす場合，指定した環境変数を設定します。設定する値のデフォルト値は1です。環境変数の前に!が付いたときは，その環境変数の設定を解除します。

リクエスト値に指定できる値については，SetEnvIfディレクティブを参照してください。

ただし，このディレクティブでは，正規表現の大文字，小文字の区別をしません。また，このディレクティブを複数指定する場合，同じリクエスト値は複数指定できません。

なお，リクエスト値にRemote_Hostを指定した場合，正規表現にはIPv6アドレスに対応したホスト名も指定できます。また，IPv6を使用した接続に対しては，Remote_AddrとServer_Addrのリクエスト値は使用できません。Remote_AddrとServer_Addrを使用したい場合は，HWSSetEnvIfIPv6ディレクティブで設定してください。

(b)　記述できる場所

httpsd.conf，<VirtualHost>，<Directory>，.htaccess

(c)　上書き許可

FileInfoレベル

(19)　SetHandler　ハンドラ名

(a)　内容

指定した<Directory>またはアクセスコントロールファイルの範囲すべてのリクエストをハンドラ名で指定したハンドラに関連づける場合，指定します。ハンドラ名としてnoneを指定すると，それまでのSetHandlerディレクティブの設定が無効になります。

(b)　記述できる場所

<Directory>，.htaccess

(c)　上書き許可

FileInfoレベル

(20)　SSLBanCipher　暗号種別　〔暗号種別　…〕

(a)　内容

指定した暗号種別でのアクセスを拒否し，クライアントにステータスコード403 Forbidden を応答します。暗号種別を次に示します。

暗号種別
鍵交換方式※³
認証方式
対称鍵暗号方式
暗号鍵サイズ(bit)
メッセージ認証アルゴリズム

EXP-DES-CBC-SHA※1

RSA(512bit)

RSA

DES

40

SHA

EXP-RC2-CBC-MD5

RSA(512bit)

RSA

RC2

40

MD5

EXP-RC4-MD5

RSA(512bit)

RSA

RC4

40

MD5

EXP-DES-56-SHA※1

RSA(512，1024bit)

RSA

DES

56

SHA

EXP-RC4-56-SHA※1

RSA(512，1024bit)

RSA

RC4

56

SHA

DES-CBC-MD5※2

RSA(512，1024，2048bit)

RSA

DES

56

MD5

DES-CBC-SHA※1

RSA(512，1024，2048bit)

RSA

DES

56

SHA

RC2-CBC-MD5※2

RSA(512，1024，2048bit)

RSA

RC2

128

MD5

RC4-MD5

RSA(512，1024，2048bit)

RSA

RC4

128

MD5

RC4-SHA※1

RSA(512，1024，2048bit)

RSA

RC4

128

SHA

AES128-SHA※1

RSA(512，1024，2048bit)

RSA

AES

128

SHA

DES-CBC3-MD5※2

RSA(512，1024，2048bit)

RSA

DES

168

MD5

DES-CBC3-SHA※1

RSA(512，1024，2048bit)

RSA

DES

168

SHA

AES256-SHA※1

RSA(512，1024，2048bit)

RSA

AES

256

SHA

注※1

SSLv2では使用できません。

注※2

SSLv2でだけ使用できます。

注※3

表中のビット長は，それぞれの暗号種別に対応するWebサーバの秘密鍵のビット長を表します。Webサーバの秘密鍵のビット長が，対応するビット長より長い場合には，Webサーバは対応するビット長を持つ一時的な公開鍵と秘密鍵を作成します。例えば，sslckey genrsaユティリティで秘密鍵のビット長を1024としてWebサーバの秘密鍵を作成した場合，暗号種別EXP-RC4-MD5を使用して通信する際には，512bitの一時鍵が作成されます。一時鍵はサーバプロセス生成時に作成されます。一時鍵の作成にはオーバヘッドを伴うので，注意してください。Windows版では，一時鍵は基本的にサーバに一つだけ作成されますが，バーチャルホスト構成の場合には複数個作成されることがあります。

(b)　記述できる場所

httpsd.conf，<VirtualHost>，<Directory>，.htaccess

(c)　上書き許可

FileInfoレベル

(21)　SSLCACertificateFile　ファイル名

(a)　内容

SSLでサーバ認証およびクライアント認証する場合，CA（認証局）の公開鍵（PEM形式）のファイル名を指定します。複数の証明書ファイルを連結させて，一つのファイルに複数の証明書が混在できます。

ファイル名は，絶対パスで指定してください。

サーバ認証時の利用
チェーンしたCAで発行されたサーバ証明書を使用して運用する場合，チェーンCAの証明書を設定します。

クライアント認証時の利用
クライアント証明書を発行したCAの証明書を設定します。チェーンされたクライアント証明書の場合，チェーンCAの証明書も設定します。

(b)　記述できる場所

httpsd.conf，<VirtualHost>

(c)　指定例

SSLCACertificateFile "C:/Program Files/Hitachi/httpsd/conf/ssl/cacert/anycert.pem"

(22)　SSLCACertificatePath　ディレクトリ　[図データ]

(a)　内容

SSLでサーバ認証およびクライアント認証する場合，CAの証明書（PEM形式）へのハッシュリンクを格納したディレクトリを指定します。ハッシュリンクの作成および運用方法については「5.2.6　ハッシュリンクの作成（UNIX版）」を参照してください。

クライアント証明書の検証をする場合にハッシュリンクが必要になります。取得したCAの証明書は，特定のディレクトリでハッシュリンクを作成し，このディレクトリをSSLCACertificatePathディレクティブに指定してください。

ディレクトリ名は，絶対パスで指定してください。

(b)　記述できる場所

httpsd.conf，<VirtualHost>

(c)　指定例

SSLCACertificatePath /opt/hitachi/httpsd/conf/ssl/cacerts

(23)　SSLCacheServerPath　パス名　[図データ]

(a)　内容

SSLセション管理キャッシュサーバgcacheヘのパス名を指定します。パス名は絶対パスまたはServerRootディレクティブからの相対パスで指定できます。

(b)　記述できる場所

httpsd.conf

(c)　指定例

SSLCacheServerPath /opt/hitachi/httpsd/sbin/gcache

(24)　SSLCacheServerPort　｛ポート番号｜パス名｝　[図データ]

～((ポート番号を指定する場合は1－65535))

(a)　内容

Webサーバ本体とSSLセション管理キャッシュサーバgcacheとの間でデータ交換するためのポート番号またはパス名を指定します。パス名は絶対パスまたはServerRootディレクティブからの相対パスで指定できます。

(b)　記述できる場所

httpsd.conf

(c)　指定例

SSLCacheServerPort logs/gcache_port

(25)　SSLCacheServerRunDir　パス名　[図データ]

～《ServerRootディレクティブ指定値》

(a)　内容

SSLセション管理キャッシュサーバgcacheが動作するパス名を指定します。gcacheがコアダンプを出力するディレクトリを指定するために使用します。パス名は絶対パスまたはServerRootディレクティブからの相対パスで指定できます。パス名に指定したディレクトリには，Userディレクティブに指定したユーザの読み込み権限，書き込み権限および実行権限が必要です。

(b)　記述できる場所

httpsd.conf

(c)　指定例

SSLCacheServerRunDir /opt/hitachi/httpsd/logs

(26)　SSLCertificateFile　ファイル名

(a)　内容

SSLで認証する場合，Webサーバの証明書（PEM形式）のファイル名を指定します。

ファイル名は，絶対パスで指定してください。

(b)　記述できる場所

httpsd.conf，<VirtualHost>

(c)　指定例

SSLCertificateFile "C:/Program Files/Hitachi/httpsd/conf/ssl/server/httpsd.pem"

(27)　SSLCertificateKeyFile　ファイル名

～《SSLCertificateFileディレクティブ指定値》

(a)　内容

SSLで認証する場合，Webサーバの秘密鍵のファイル名を指定します。

ファイル名は，絶対パスで指定してください。

(b)　記述できる場所

httpsd.conf，<VirtualHost>

(c)　指定例

SSLCertificateKeyFile "C:/Program Files/Hitachi/httpsd/conf/ssl/server/httpsdkey.pem"

(28)　SSLCertificateKeyPassword　パス名

(a)　内容

パスワード保護をされているサーバ秘密鍵のパスワードを格納しておくファイルのパス名を指定します。パスワード格納ファイルは，sslpasswdユティリティによって作成します。パス名は絶対パスまたはServerRootディレクティブからの相対パスで指定します。

(b)　記述できる場所

httpsd.conf，<VirtualHost>

(29)　SSLCRLAuthoritative　｛On｜Off｝

(a)　内容

SSLクライアント認証時に使用するCRLの次回発行日の扱いについて指定します。

On：

SSLクライアント認証時，クライアント証明書に対応するCRLの次回発行日を過ぎていた場合，Webサーバは認証に失敗したとして，クライアントとの接続を拒否します。CRLの正しい運用が必要です。

Off：

CRLの次回発行日を無視します。次回発行日を過ぎていてもCRLは有効であると扱うため，CRLに登録されていなければ，クライアントは接続できます。セキュリティレベルは下がりますが，CRLを正しく運用しなかったときでも，最低限のセキュリティを維持して，サービスを継続できます。

(b)　記述できる場所

httpsd.conf，<VirtualHost>

(c)　指定例

SSLCRLAuthoritative On

CRLの次回発行日を過ぎている場合，そのCRLを発行したCAが発行した証明書を持つクライアントのアクセスはすべて拒否します。

(30)　SSLCRLDERPath　パス名

(a)　内容

DER形式のCRLを格納するディレクトリを絶対パスで指定します。指定したディレクトリに必要なCRLを格納して，Webサーバを起動または再起動すると，SSLでのクライアント認証時にCRLを適用できます。SSLCRLPEMPathディレクティブで指定したディレクトリ内のCRLも含め，同じCAから発行されたCRLを複数格納している場合，発行日が最新のCRLを適用します。ディレクトリ内にDER形式のCRL以外のファイルがある場合，Webサーバは起動しません。

(b)　記述できる場所

httpsd.conf，<VirtualHost>

(c)　指定例

SSLCRLDERPath "C:/Program Files/Hitachi/httpsd/conf/ssl/crl/DER"

DER形式のCRLファイルを格納しているディレクトリを指定します。

(31)　SSLCRLPEMPath　パス名

(a)　内容

PEM形式のCRLを格納するディレクトリを絶対パスで指定します。指定したディレクトリに必要なCRLを格納して，Webサーバを起動または再起動すると，SSLでのクライアント認証時にCRLを適用できます。SSLCRLDERPathディレクティブで指定したディレクトリ内のCRLも含め，同じCAから発行されたCRLを複数格納している場合，発行日が最新のCRLを適用します。ディレクトリ内にPEM形式のCRL以外のファイルがある場合，Webサーバは起動しません。

(b)　記述できる場所

httpsd.conf，<VirtualHost>

(c)　指定例

SSLCRLPEMPath "C:/Program Files/Hitachi/httpsd/conf/ssl/crl/PEM"

PEM形式のCRLファイルを格納しているディレクトリを指定します。

(32)　SSLDenySSL

(a)　内容

SSLによるアクセスを禁止する場合に指定します。このディレクティブが指定されている場合，SSLEnableディレクティブでSSLを有効にしてもhttpsによるアクセスがステータスコード403 Forbiddenで拒否されます。SSLRequireSSLディレクティブの逆の動作をします。

(b)　記述できる場所

httpsd.conf，<VirtualHost>，<directory>，.htaccess

(c)　上書き許可

FileInfoレベル

(33)　SSLDisable

(a)　内容

SSLを無効にします。デフォルト値はSSLEnableディレクティブ（SSLを有効）です。バーチャルホストで特定のホストに対してSSLを無効にする場合などに指定します。

(b)　記述できる場所

httpsd.conf，<VirtualHost>

(34)　SSLEnable

(a)　内容

SSLを有効にします。SSLDisableディレクティブを指定しないかぎり，デフォルトで有効になります。

(b)　記述できる場所

httpsd.conf，<VirtualHost>

(35)　SSLExportCertChainDepth　値

～((0－9))《0》

(a)　内容

SSLクライアント認証をする場合，環境変数SSL_CLIENT_CERT_CHAIN_ｎにクライアントの証明書を発行したCAからルートCAまでの証明書を設定するときに指定します。指定した値がｎの最大値になります。このディレクティブはSSLExportClientCertificatesディレクティブを指定している場合だけ有効になります。指定された数のCA証明書がgcacheサーバへキャッシュされるため，CGIまたはServletで必要な数だけをこのディレクティブに指定することでキャッシュを有効に利用できます。ただし，メモリの制限でキャッシュされた一部の証明書が削除されて取得できなかった場合は，取得できたものだけを環境変数に設定します。

0：

環境変数は設定しません。

1～9：

クライアントの証明書に近い方から順に番号が割り当てられ，環境変数を設定します。環境変数にはDER形式の証明書をBase64エンコーディングした値を設定します。一つの証明書をBase64エンコーディングした場合のバイト数は約1KBです。

(b)　記述できる場所

httpsd.conf，<VirtualHost>

(c)　指定例

「ルートCA－下位CA－クライアント証明書」という証明書チェーンの場合を説明します。この場合，環境変数と証明書の対応は次のようになります。

環境変数 | 証明書
SSL_CLIENT_CERT | クライアント証明書
SSL_CLIENT_CERT_CHAIN_1 | 下位CAの証明書
SSL_CLIENT_CERT_CHAIN_2 | ルートCAの証明書

この環境変数と証明書チェーンをすべて取得するには，次のようにディレクティブを指定します。

SSLExportClientCertificates
SSLExportCertChainDepth 2      2以上の値を指定します

(36)　SSLExportClientCertificates

(a)　内容

SSLクライアント認証をする場合，環境変数SSL_CLIENT_CERTにクライアント証明書を設定するときに指定します。環境変数SSL_CLIENT_CERTにはDER形式の証明書をBase64エンコーディングした値を設定します。

(b)　記述できる場所

httpsd.conf，<VirtualHost>，<Directory>，.htaccess

(37)　SSLFakeBasicAuth

(a)　内容

SSLクライアント認証の機能と併せて，WebブラウザでユーザIDとパスワードを入力することなく，クライアント証明書の提示だけでBasic認証をできるようにします。AuthUserFileディレクティブで指定するファイルにはX509クライアント証明書のSubjectとパスワードを記述します。パスワードは，次に示す値で常に固定とします（どちらも"password"を暗号化したもの）。

UNIX版："xxj31ZMTZzkVA"

Windows版："{SHA}W6ph5Mm5Pz8GgiULbPgzG37mj9g="

(b)　記述できる場所

httpsd.conf，<VirtualHost>

(c)　指定例

証明書のSubjectフィールドの値

Subject: C=JP,ST=Kanagawa,L=Yokohama-shi,O=HITACHI,OU=Software,CN=username/Email=username@userhost

この場合AuthUserFileディレクティブで指定するファイルは次のように指定します。

UNIX版の場合

/C=JP/ST=Kanagawa/L=Yokohama-shi/O=HITACHI/OU=Software/CN=username/Email=username@userhost:xxj31ZMTZzkVA

Windows版の場合

/C=JP/ST=Kanagawa/L=Yokohama-shi/O=HITACHI/OU=Software/CN=username/Email=username@userhost:{SHA}W6ph5Mm5Pz8GgiULbPgzG37mj9g=

LogFormatディレクティブのu指定ではSubjectがロギングされます。

認証に失敗した場合，ステータスコード401 Authorization Requiredを応答します。

(38)　SSLProtocol プロトコル名　〔プロトコル名 …〕

～《All》

(a)　内容

使用するSSLプロトコルのバージョンを指定します。

プロトコル名として設定できる値は次のとおりです。

SSLv2: SSLプロトコルバージョン2を使用する。

SSLv3: SSLプロトコルバージョン3を使用する。

TLSv1: TLSプロトコルバージョン1を使用する。

All: 上記すべてのプロトコルを使用する。

(b)　記述できる場所

httpsd.conf，<VirtualHost>

(39)　SSLRequireCipher　暗号種別　〔暗号種別　…〕

(a)　内容

指定した暗号種別以外でのアクセスを拒否し，クライアントにステータスコード403 Forbidden を応答します。指定できる暗号種別は，SSLBanCipherディレクティブを参照してください。

(b)　記述できる場所

httpsd.conf，<VirtualHost>，<Directory>，.htaccess

(c)　上書き許可

FileInfoレベル

(40)　SSLRequiredCiphers　暗号種別　〔:暗号種別　…〕

(a)　内容

SSL通信で使用可能とする暗号種別を指定します。ディレクティブに指定した暗号種別とクライアントが使用できる暗号種別との間で一致するものがあれば，SSL通信が確立されHTTPリクエストを受信します。一致するものがない場合は，SSL通信は確立されないでHTTPリクエストを受信しません。指定できる暗号種別は，SSLBanCipherディレクティブを参照してください。

(b)　記述できる場所

httpsd.conf，<VirtualHost>

(c)　指定例

SSLRequiredCiphers EXP-RC4-MD5:RC4-MD5:EXP-RC2-CBC-MD5:DES-CBC-SHA:DES-CBC3-SHA

(41)　SSLRequireSSL

(a)　内容

SSL以外によるアクセスを禁止する場合に指定します。このディレクティブが指定されている場合，SSLDisableディレクティブでSSLを無効にしてもhttpによるアクセスがステータスコード403 Forbiddenで拒否されます。異なるディレクティブの記述場所で，不用意にSSLを無効にしコンテンツを公開してしまうことを防止します。

(b)　記述できる場所

httpsd.conf，<VirtualHost>，<Directory>，.htaccess

(c)　上書き許可

FileInfoレベル

(d)　指定例

<VirtualHost 172.17.40.10:443>
SSLDisable
...
 <Directory /secure/dir>
   SSLRequireSSL    
   ...
 </Directory>
</VirtualHost>

172.17.40.10ホストの443ポートに対するhttpアクセスは，/secure/dirディレクトリへのアクセスを除いてできます。/secure/dirディレクトリへのhttpアクセスは，ステータスコード403 Forbiddenを応答します。

(42)　SSLSessionCacheTimeout　値

～((1－2147483647))《3600》（単位：秒）

(a)　内容

Webサーバ内またはSSLセション管理キャッシュサーバgcache内で保持されるセションIDなどのデータの有効時間を秒単位で指定します。

(b)　注意事項

グリニッジ標準時（GMT）の2038年1月19日3時14分7秒を超えないように，有効時間を設定してください。

(c)　記述できる場所

httpsd.conf，<VirtualHost>

(d)　指定例

SSLSessionCacheTimeout 3600

(43)　SSLSessionCacheSize　｛サイズ｜max｝

～((0－2147483647))《16777216》（単位：バイト）

(a)　内容

UNIX版の場合，SSLセションを管理するキャッシュサーバgcache内のメモリにキャッシュされるセションIDなどのデータの，メモリサイズの上限値をバイト単位で指定します。0を指定した場合，gcacheサーバは起動しないで，セションキャッシュは実施されません。

Windows版の場合，セションキャッシュサイズの上限値をバイト単位で指定します。0を指定した場合，セションキャッシュは実施されません。

maxを指定した場合，上限を設定しません。１SSLセション当たり，サーバ認証だけする場合約200バイト，クライアント認証もする場合約１キロバイト使用します。

(b)　記述できる場所

httpsd.conf

(c)　指定例

SSLSessionCacheSize 1024

(44)　SSLSessionCacheSizePerChild　｛サイズ｜max｝　[図データ]

～((0－2147483647))《20480》（単位：バイト）

(a)　内容

サーバプロセス内のメモリにキャッシュされるセションIDなどのデータの，メモリサイズの上限値をバイト単位で指定します。maxを指定した場合，上限を設定しません。

(b)　記述できる場所

httpsd.conf

(c)　指定例

SSLSessionCacheSizePerChild 1024

(45)　SSLVerifyClient　｛0｜1｜2｜3｝

～《0》

(a)　内容

クライアント認証時の証明書に関する設定を指定します。

0：証明書の要求をしません。

1：クライアントは証明書を提示できます。運用テスト用。

2：クライアントは証明書を提示しなければなりません。

3：クライアントは証明書を提示できますが，サーバが鍵を持っているCA（認証局）が発行したものである必要はありません。運用テスト用。

(b)　記述できる場所

httpsd.conf，<VirtualHost>

(c)　指定例

SSLVerifyClient 2

(46)　SSLVerifyDepth　段階数

～((0－10))《0》

(a)　内容

証明書のチェーンを何段階までたどるかを指定します。

クライアント認証に使用するCA証明書のチェーンについて，認証チェックをする段階数を指定します。チェーンされたCAをどこまで信用するかを制限するために使用します。自己署名の証明書は認証しないため，段階数は2以上を指定します。例を次に示します。

（例）

条件

CA1は，root CAに署名されている。

証明書1は，root CAに署名されている。

証明書2は，CA1に署名されている。

SSLVerifyDepthの指定

この場合，証明書1，証明書2とも認証チェックをするためには，SSLVerifyDepthディレクティブに3以上を指定します。また，証明書1は認証チェックし，証明書2は認証チェックをしないようにするにはSSLVerifyDepthディレクティブに2を指定します。

(b)　記述できる場所

httpsd.conf，<VirtualHost>

(c)　指定例

SSLVerifyDepth 10

(47)　StartServers　プロセス数　[図データ]

～((0－1024))《5》

(a)　内容

Webサーバ起動時のサーバプロセス数を指定します。プロセス数に関連するほかのディレクティブについては，「4.1　Hitachi Web Serverの処理とディレクティブとの関係」を参照してください。

(b)　記述できる場所

httpsd.conf

(c)　指定例

StartServers 5

6.2.8　T，Uで始まるディレクティブ

＜この項の構成＞

(1)　Timeout　時間

(2)　ThreadsPerChild　スレッド数　

(3)　TraceEnable ｛On｜Off｜extended｝

(4)　TransferLog　｛ファイル名｜パイプ｝

(5)　TypesConfig　ファイル名

(6)　UnsetEnv　環境変数　〔環境変数　…〕

(7)　UseCanonicalName　｛On｜Off｜dns｝

(8)　User　ユーザ名　

(9)　UserDir　｛ディレクトリ名｜disabled　〔ユーザ名　〔ユーザ名　…〕〕｝

(1)　Timeout　時間

～((0－65535))《300》（単位：秒）

(a)　内容

次の待ち時間を秒単位で指定します。0を指定した場合は，待ち時間が0秒になります。

クライアントからのリクエスト受信（コネクション確立後，HTTPプロトコルの受信）中にデータを受信しなくなった場合の待ち時間

クライアントへのレスポンス送信中にデータを送信できなくなった場合の待ち時間

CGIプログラムへのリクエスト送信中にデータを送信できなくなった場合の待ち時間

CGIプログラムへのリクエスト送信後からレスポンス受信までの待ち時間

CGIプログラムからのレスポンス受信中にデータを受信しなくなった場合の待ち時間

リバースプロキシを使用している場合の，バックエンドサーバへのリクエスト送信中にデータを送信できなくなった場合の待ち時間

リバースプロキシを使用している場合の，バックエンドサーバへのリクエスト送信後からレスポンス受信までの待ち時間

リバースプロキシを使用している場合の，バックエンドサーバからのレスポンス受信中にデータを受信しなくなった場合の待ち時間

(b)　記述できる場所

httpsd.conf

(c)　指定例

Timeout 300

(2)　ThreadsPerChild　スレッド数　[図データ]

～((1－1024))《40》

(a)　内容

サーバとして起動するスレッド数を指定します。指定したスレッド数はサーバの最大同時接続数を示します。

(b)　記述できる場所

httpsd.conf

(3)　TraceEnable ｛On｜Off｜extended｝

(a)　内容

TRACEメソッドによるリクエストを拒否するかどうかを指定します。

On：TRACEメソッドによるリクエストを許可します。ただし，リクエストボディが付加されている場合は，413 Request Entity Too Largeを応答します。

Off：TRACEメソッドによるリクエストを拒否します。TRACEメソッドによるリクエストの場合は，ステータスコード403 Forbiddenを応答します。

extended：TRACEメソッドによるリクエストを許可します。リクエストボディが付加されていても許可します。ただし，リバースプロキシ以外のリクエストボディサイズの上限は64KBです。

(b)　記述できる場所

httpsd.conf，<VirtualHost>

(c)　指定例

TraceEnable Off

(4)　TransferLog　｛ファイル名｜パイプ｝

(a)　内容

ログを格納するファイルまたはログを出力するプログラムを指定します。ログのフォーマットはラベル名を指定しないLogFormatディレクティブで指定できます。

LogFormatディレクティブでログのフォーマットを指定する場合は，IPv6アドレスやIPv6アドレスに対応したホスト名も出力できます。指定できるフォーマットはCustomLogディレクティブを参照してください。

LogFormatディレクティブでフォーマットを指定しない場合は，標準のログフォーマットで出力します。

ファイル名：ログを格納するファイル名を指定します。ファイル名には，絶対パスまたはServerRootディレクティブの指定値からの相対パスが指定できます。

パイプ：標準入力からログ情報を受け取るプログラムを"|プログラム名"のフォーマットで指定します。Windows版での注意事項は，CustomLogディレクティブを参照してください。

(b)　記述できる場所

httpsd.conf，<VirtualHost>

(c)　指定例

TransferLog "|¥"¥"C:/Program Files/Hitachi/httpsd/sbin/rotatelogs.exe¥" ¥"C:/Program Files/Hitachi/httpsd/logs/access¥" 86400¥""

rotatelogsユティリティを使用してログを24時間ごとに分割して採取します。

(5)　TypesConfig　ファイル名

～《conf/mime.types》

(a)　内容

ファイル拡張子とコンテントタイプ（MIMEタイプ）の関係を定義する設定ファイルを指定します。ファイル名には，絶対パスまたはServerRootディレクティブの指定値からの相対パスが指定できます。

(b)　記述できる場所

httpsd.conf

(c)　指定例

TypesConfig conf/mime.types

MIMEタイプの設定ファイルはmime.types

(6)　UnsetEnv　環境変数　〔環境変数　…〕

(a)　内容

CGIスクリプトに渡す環境変数から，SetEnvディレクティブまたはPassEnvディレクティブで指定した環境変数を削除する場合に指定します。

(b)　記述できる場所

httpsd.conf，<VirtualHost>，<Directory>，.htaccess

(c)　上書き許可

FileInfoレベル

(d)　指定例

UnsetEnv MY_ENV

(7)　UseCanonicalName　｛On｜Off｜dns｝

(a)　内容

サーバの正式な名前の生成方法を指定します。サーバの正式な名前は，自サーバを参照するURLや環境変数のSERVER_NAMEとSERVER_PORTに設定されます。

On：サーバの正式な名前は，ServerNameディレクティブ指定値から作成され，自サーバを参照するURLや環境変数に設定されます。VirtualHost指定時にIPアドレスを使用する場合は，VirtualHostブロック内でServerNameを指定してください。ブロック内でServerNameを指定していない場合は，IPアドレスからホスト名を取得します。

Off：サーバの正式な名前は，Hostヘッダによってクライアントから与えられたホスト名称とポート番号から作成され，自サーバを参照するURLや環境変数に設定されます。ただし，Hostヘッダが与えられない場合は，ServerNameディレクティブ値と，実際のコネクションに使用されているポート番号から作成されます。

dns：Hostヘッダを持たない古いクライアントのためのオプションです。このオプション指定時には，サーバの正式な名前は，クライアントから与えられたサーバのIPアドレスから逆引きしたホスト名称および実際にコネクションに使用されているポート番号から作成され，自サーバを参照するURLや環境変数に設定されます。

なお，On，Off，dnsすべての場合で，IPv6アドレスに対応しています。

(b)　記述できる場所

httpsd.conf，<VirtualHost>，<Directory>

(8)　User　ユーザ名　[図データ]

～《#-1》

(a)　内容

サーバプロセスが動作するときのユーザ名を指定します。

(b)　記述できる場所

httpsd.conf

(c)　指定例

User nobody

(9)　UserDir　｛ディレクトリ名｜disabled　〔ユーザ名　〔ユーザ名　…〕〕｝

～《public_html》(UNIX版)

～《disabled》(Windows版)

(a)　内容

Webブラウザからの/~ユーザ名/へのリクエストに対して公開するサーバ上の場所をディレクトリ名で指定します。disabledを指定すると，Webコンテンツを公開しないユーザを指定できます。

ディレクトリ名は，相対パスまたは絶対パスで指定します。

Windows版では，絶対パスだけ有効です。

ディレクトリ名：

相対パスで指定した場合
サーバ上にユーザIDを持つユーザが，ユーザのホームディレクトリ下のWebコンテンツを公開する場合の場所を指定します。/~ユーザ名/へのリクエストがあった場合，"ユーザのホームディレクトリ/ディレクトリ名" にアクセスします。

絶対パスで指定した場合
ユーザディレクトリの場所を指定します。/~ユーザ名/へのリクエストがあった場合，"ディレクトリ名/ユーザ名" にアクセスします。

disabled：

Webブラウザからの/~ユーザ名/へのリクエストに対して，Webコンテンツを公開しないユーザを指定します。指定されたユーザ名でのリクエストに対しては，アクセスするディレクトリ名を変換しません。ユーザ名の指定がない場合は，すべてのユーザについてdisabledを指定したことになります。

(b)　注意事項

複数のUserDirディレクティブでディレクトリ名を指定した場合，後から指定したものに上書きされます。

disabledに指定するユーザ名は，複数のUserDirディレクティブを用いて指定できます。

(c)　記述できる場所

httpsd.conf，<VirtualHost>

(d)　指定例

(例1)

UserDir public_html

ユーザuser1のホームディレクトリを/home/user1とすると，リクエストhttp://ホスト名〔:ポート番号〕/~user1/index.htmlで，/home/user1/public_html/index.htmlにアクセスします。

(例2)

UserDir /home
UserDir disabled user3
UserDir disabled user4 user5

リクエストhttp://ホスト名〔:ポート番号〕/~user1/index.htmlで，/home/user1/index. htmlにアクセスします。ただし，user3はdisabledが指定されているため，http://ホスト名〔:ポート番号〕/~user3/index.htmlというリクエストで/home/user3/index.htmlにアクセスできません。user4，user5についてもuser3と同様です。

(例3)

UserDir disabled

すべてのユーザに対してdisabledを指定します。

7.　メッセージ

この章では，Hitachi Web Serverで出力するメッセージについて説明します。

＜この章の構成＞

7.1　メッセージの形式

7.2　メッセージ一覧

7.1　メッセージの形式

＜この節の構成＞

(1)　出力形式

(2)　メッセージの記法

(3)　メッセージの出力先

(4)　注意事項

(1)　出力形式

メッセージは，時刻，エラーレベルとそれに続くメッセージテキストで構成されているものと，メッセージテキストだけで構成されているものがあります。形式を次に示します。

[時刻] [エラーレベル] メッセージテキスト
または
メッセージテキスト

(2)　メッセージの記法

このマニュアルでは次の形式で説明しています。

メッセージテキスト

メッセージの説明文

エラーレベル：エラーログに出力するエラーのレベルを示します。エラーレベルはLogLevelディレクティブで指定します。エラーレベルが「なし」のメッセージは，レベル設定のないメッセージで，メッセージテキストだけ出力します。

(Ｓ)システムの処置を示します。

(Ｏ)メッセージが出力されたときに，オペレータの取る処置を示します。

(3)　メッセージの出力先

メッセージの出力先には次の3種類があります。

標準出力

標準エラー出力

エラーログファイル

(4)　注意事項

noticeレベルのメッセージは，LogLevelディレクティブの指定に関係なく出力されます。

Hitachi Web Server起動時など，レベル指定解析前には，LogLevelディレクティブの指定に関係なくメッセージが出力される場合があります。

次に示すメッセージは一部を除き，記載していません。

Hitachi Web Serverの起動時に出力される，コンフィグファイルの文法エラーに伴うメッセージ

Hitachi Web Serverの起動後に出力される，エラーレベルがdebugのメッセージ

Hitachi Web Serverの起動後に出力される，エラーレベルがないメッセージ

メッセージテキストの説明で「詳細情報」と記載している部分には，「（エラーコード）エラー文字列」などが出力されます。

7.2　メッセージ一覧

＜この節の構成＞

7.2.1　基本機能についてのメッセージ

7.2.2　SSLについてのメッセージ

7.2.3　リバースプロキシについてのメッセージ

7.2.4　流量制限機能についてのメッセージ

7.2.5　静的コンテンツキャッシュ機能についてのメッセージ

7.2.6　LDAP連携機能についてのメッセージ

7.2.7　ユティリティについてのメッセージ

7.2.1　基本機能についてのメッセージ

＜この項の構成＞

(1)　emergレベルのメッセージ

(2)　alertレベルのメッセージ

(3)　critレベルのメッセージ

(4)　errorレベルのメッセージ

(5)　warnレベルのメッセージ

(6)　noticeレベルのメッセージ

(7)　infoレベルのメッセージ

(8)　レベルなしのメッセージ

(1)　emergレベルのメッセージ

詳細情報: OpenEvent on イベント名称 event

イベントのオープンに失敗しました。

エラーレベル：emerg

(Ｓ)Webサーバは停止，再起動処理を中断します。

(Ｏ)OpenEvent()関数が返す詳細情報について見直してください。

詳細情報: SetEvent on イベント名称 event

イベントの通知に失敗しました。

エラーレベル：emerg

(Ｓ)Webサーバは停止，再起動処理を中断します。

(Ｏ)SetEvent()関数が返す詳細情報について見直してください。

詳細情報: couldn't grab the accept mutex

acceptの排他獲得処理に失敗しました。

エラーレベル：emerg

(Ｓ)サーバプロセスを終了します。

(Ｏ)詳細情報について見直してください。

詳細情報: couldn't release the accept mutex

acceptの排他解除処理に失敗しました。

エラーレベル：emerg

(Ｓ)サーバプロセスを終了します。

(Ｏ)詳細情報について見直してください。

詳細情報: Couldn't initialize cross-process lock in child

サーバプロセス間で使用する排他の初期化処理に失敗しました。

エラーレベル：emerg

(Ｓ)サーバプロセスを終了します。

(Ｏ)詳細情報について見直してください。

詳細情報: Couldn't create accept lock ファイル名

acceptの排他環境生成に失敗しました。なお，ファイル名は出力されないことがあります。

エラーレベル：emerg

(Ｓ)Webサーバは起動処理を中断します。

(Ｏ)詳細情報について見直してください。

詳細情報: Couldn't set permissions on cross-process lock; check User and Group directives

サーバプロセス間で使用する排他のパーミッション設定に失敗しました。

エラーレベル：emerg

(Ｓ)Webサーバは起動処理を中断します。

(Ｏ)UserおよびGroupディレクティブ値を詳細情報について見直してください。

詳細情報: apr_accept: giving up.

accept()関数でエラー（ENETDOWN）が発生しました。

エラーレベル：emerg

(Ｓ)リクエストを受けたサーバプロセスを終了します。

(Ｏ)accept()関数が返す詳細情報について見直してください。

(2)　alertレベルのメッセージ

[client クライアントアドレス] アクセスコントロールファイル名: エラーメッセージ

アクセスコントロールファイルを解析中にエラーが発生しました。

エラーレベル：alert

(Ｓ)ステータスコード「500　Internal Server Error」をクライアントに返し，リクエスト処理を中断します。

(Ｏ)アクセスコントロールファイルをエラーメッセージについて見直してください。

no listening sockets available, shutting down

listen状態のソケットがありません。

エラーレベル：alert

(Ｓ)Webサーバは起動処理を中断します。

(Ｏ)Listen，BindAddressディレクティブまたはPortディレクティブについて，ソケット生成が失敗する原因がないか見直してください。

httpsd: Could not determine the server's fully qualified domain name, using Webサーバ名称 for ServerName

Webサーバの完全なドメイン名称を解決できなかったため，ServerNameとしてWebサーバ名称を使用します。

エラーレベル：alert

(Ｓ)ServerNameにWebサーバ名称を使用します。

Child サーバプロセスID returned a Fatal error... Server is exiting!

サーバプロセスは，続行できないエラーのため終了しました。

エラーレベル：alert

(Ｓ)Webサーバは終了します。

(Ｏ)このメッセージのほかに出力されているメッセージのエラーの原因について見直してください。

詳細情報: getpwuid: couldn't determine user name from uid ユーザID, you probably need to modify the User directive

パスワード・データベース内のユーザIDの検索処理でエラーが発生しました。Userディレクティブを見直す必要があります。

エラーレベル：alert

(Ｓ)Webサーバは起動処理を中断します。

(Ｏ)Userディレクティブでの指定値とgetpwuid()関数が返す詳細情報について見直してください。

詳細情報: setgid: unable to set group id to Group グループID

グループIDの設定に失敗しました。

エラーレベル：alert

(Ｓ)Webサーバは起動処理を中断します。

(Ｏ)setgid()関数が返す詳細情報について見直してください。

詳細情報: initgroups: unable to set groups for User ユーザ名 and Group グループID

ユーザに関するグループアクセスリストの初期化に失敗しました。

エラーレベル：alert

(Ｓ)Webサーバは起動処理を中断します。

(Ｏ)initgroups()関数が返す詳細情報について見直してください。

詳細情報: setuid: unable to change to uid: ユーザID

ユーザIDの設定に失敗しました。

エラーレベル：alert

(Ｓ)Webサーバは起動処理を中断します。

(Ｏ)setuid()関数が返す詳細情報について見直してください。

詳細情報: set dumpable failed - this child will not coredump after software errors

コアダンプの設定に失敗しました。サーバプロセスは通常コアダンプするようなエラーが発生してもコアを出力しません。

エラーレベル：alert

(Ｓ)Webサーバは起動処理を続行します。

(Ｏ)prctl()関数が返す詳細情報について見直してください。

(3)　critレベルのメッセージ

[client クライアントアドレス] 詳細情報: アクセスコントロールファイル名 pcfg_openfile: unable to check htaccess file, ensure it is readable

アクセスコントロールファイルを読み込めません。

エラーレベル：crit

(Ｓ)ステータスコード「403　Forbidden」をクライアントに返し，リクエスト処理を中断します。

(Ｏ)詳細情報に示す原因についてアクセスコントロールファイルを見直してください。

詳細情報: unable to replace stderr with error_log

標準エラー出力ファイル記述子をエラーログのファイル記述子に複製できません。

エラーレベル：crit

(Ｓ)Webサーバは起動処理を続行します。

(Ｏ)詳細情報について見直してください。

詳細情報: unable to replace stderr with /dev/null

標準エラー出力を/dev/nullで置き換えられません。

エラーレベル：crit

(Ｓ)Webサーバは起動処理を続行します。

(Ｏ)freopen()関数が返す詳細情報について見直してください。

詳細情報: Child プロセスID: Failed to create a max_requests event.

サーバプロセスは最大リクエスト数のためのイベント生成に失敗しました。

エラーレベル：crit

(Ｓ)サーバプロセスを終了します。

(Ｏ)CreateEvent()関数が返す詳細情報について見直してください。

詳細情報: Child プロセスID: _beginthreadex failed. Unable to create all worker threads. Created 生成したスレッド数 of the ディレクティブ値 threads requested with the ThreadsPerChild configuration directive.

ThreadsPerChildディレクティブに指定された数のWebサーバスレッドを生成中に，スレッド生成に失敗しました。

エラーレベル：crit

(Ｓ)サーバプロセスは制御プロセスに対して，Webサーバの停止を要求します。

(Ｏ)_beginthreadex()関数が返す詳細情報について見直してください。

詳細情報: Child プロセスID: WAIT_FAILED -- shutting down server

サーバプロセスは終了，計画停止または最大リクエスト数のイベント待ちに失敗しました。

エラーレベル：crit

(Ｓ)サーバプロセスを終了します。

(Ｏ)WaitForMultipleObjects()関数が返す詳細情報について見直してください。

詳細情報: Child サーバプロセスID: Unable to retrieve the ready event from the parent

サーバプロセスの開始イベントハンドルを制御プロセスから取得できませんでした。

エラーレベル：crit

(Ｓ)サーバプロセスを終了します。

(Ｏ)ReadFile()関数が返す詳細情報について見直してください。

詳細情報: Child サーバプロセスID: Unable to retrieve the exit event from the parent

サーバプロセスの終了イベントハンドルを制御プロセスから取得できませんでした。

エラーレベル：crit

(Ｓ)サーバプロセスを終了します。

(Ｏ)ReadFile()関数が返す詳細情報について見直してください。

詳細情報: Child サーバプロセスID: Unable to retrieve the start_mutex from the parent

排他用のハンドラを制御プロセスから取得できませんでした。

エラーレベル：crit

(Ｓ)サーバプロセスを終了します。

(Ｏ)ReadFile()関数が返す詳細情報について見直してください。

詳細情報: Child サーバプロセスID: Unable to access the start_mutex from the parent

排他用のハンドラにアクセスできませんでした。

エラーレベル：crit

(Ｓ)サーバプロセスを終了します。

(Ｏ)詳細情報について見直してください。

詳細情報: Child サーバプロセスID: Unable to retrieve the scoreboard from the parent

スコアボード用のハンドラを制御プロセスから取得できませんでした。

エラーレベル：crit

(Ｓ)サーバプロセスを終了します。

(Ｏ)ReadFile()関数が返す詳細情報について見直してください。

詳細情報: Child サーバプロセスID: Unable to access the scoreboard from the parent

スコアボードにアクセスできませんでした。

エラーレベル：crit

(Ｓ)サーバプロセスを終了します。

(Ｏ)MapViewOfFile()関数が返す詳細情報について見直してください。

詳細情報: Child サーバプロセスID: Unable to reopen the scoreboard from the parent

スコアボードをオープンできませんでした。

エラーレベル：crit

(Ｓ)サーバプロセスを終了します。

(Ｏ)詳細情報について見直してください。

詳細情報: Parent: Unable to duplicate the ready event handle for the child

サーバプロセスの開始イベントハンドルを複製できませんでした。

エラーレベル：crit

(Ｓ)Webサーバは起動処理を中断します。

(Ｏ)DuplicateHandle()関数が返す詳細情報について見直してください。

詳細情報: Parent: Unable to send the ready event handle to the child

サーバプロセスに開始イベントハンドルを送信できませんでした。

エラーレベル：crit

(Ｓ)Webサーバは起動処理を中断します。

(Ｏ)詳細情報について見直してください。

詳細情報: Parent: Unable to duplicate the exit event handle for the child

サーバプロセスの終了イベントハンドルを複製できませんでした。

エラーレベル：crit

(Ｓ)Webサーバは起動処理を中断します。

(Ｏ)DuplicateHandle()関数が返す詳細情報について見直してください。

詳細情報: Parent: Unable to send the exit event handle to the child

サーバプロセスに終了イベントハンドルを送信できませんでした。

エラーレベル：crit

(Ｓ)Webサーバは起動処理を中断します。

(Ｏ)詳細情報について見直してください。

詳細情報: Parent: Unable to retrieve the start mutex for the child

排他用のハンドルを取得できませんでした。

エラーレベル：crit

(Ｓ)Webサーバは起動処理を中断します。

(Ｏ)詳細情報について見直してください。

詳細情報: Parent: Unable to duplicate the start mutex to the child

排他用のハンドルを複製できませんでした。

エラーレベル：crit

(Ｓ)Webサーバは起動処理を中断します。

(Ｏ)DuplicateHandle()関数が返す詳細情報について見直してください。

詳細情報: Parent: Unable to duplicate the start mutex to the child

排他用のハンドルを複製できませんでした。

エラーレベル：crit

(Ｓ)Webサーバは起動処理を中断します。

(Ｏ)DuplicateHandle()関数が返す詳細情報について見直してください。

詳細情報: Parent: Unable to send the start mutex to the child

サーバプロセスに排他用のハンドルを送信できませんでした。

エラーレベル：crit

(Ｓ)Webサーバは起動処理を中断します。

(Ｏ)詳細情報について見直してください。

詳細情報: Parent: Unable to retrieve the scoreboard handle for the child

スコアボード用のハンドルを取得できませんでした。

エラーレベル：crit

(Ｓ)Webサーバは起動処理を中断します。

(Ｏ)詳細情報について見直してください。

詳細情報: Parent: Unable to duplicate the scoreboard handle to the child

スコアボード用のハンドルを複製できませんでした。

エラーレベル：crit

(Ｓ)Webサーバは起動処理を中断します。

(Ｏ)DuplicateHandle()関数が返す詳細情報について見直してください。

詳細情報: Unable to send the scoreboard handle to the child

サーバプロセスにスコアボード用のハンドルを送信できませんでした。

エラーレベル：crit

(Ｓ)Webサーバは起動処理を中断します。

(Ｏ)詳細情報について見直してください。

詳細情報: setup_inherited_listeners: Unable to read socket data from parent.

制御プロセスからのソケットデータを読み込めません。

エラーレベル：crit

(Ｓ)サーバプロセスを終了します。

(Ｏ)ReadFile()関数が返す詳細情報について見直してください。

詳細情報: Child サーバプロセスID: setup_inherited_listeners(), WSASocket failed to open the inherited socket.

継承したソケットのオープンに失敗しました。

エラーレベル：crit

(Ｓ)サーバプロセスを終了します。

(Ｏ)WSASocket()関数が返す詳細情報について見直してください。

詳細情報: Parent: WSADuplicateSocket failed for socket fd番号.

制御プロセスはソケットの複製に失敗しました。

エラーレベル：crit

(Ｓ)サーバプロセス生成処理を中断します。

(Ｏ)WSADuplicateSocket()関数が返す詳細情報について見直してください。

詳細情報: Parent: Unable to write duplicated socket fd番号 to the child.

制御プロセスはソケットを通してサーバプロセスへの書き込みに失敗しました。

エラーレベル：crit

(Ｓ)サーバプロセス生成処理を中断します。

(Ｏ)詳細情報について見直してください。

詳細情報: Parent: Failed to get the current path

カレントパス情報の取得に失敗しました。

エラーレベル：crit

(Ｓ)Webサーバは起動処理を続行します。

(Ｏ)詳細情報について見直してください。

詳細情報: Parent: Failed to get full path of 起動コマンド

起動コマンドの絶対パス取得に失敗しました。

エラーレベル：crit

(Ｓ)Webサーバは起動処理を中断します。

(Ｏ)詳細情報について見直してください。

詳細情報: Parent: Unable to create child stdin pipe.

サーバプロセスに情報を送信するためのパイプ生成に失敗しました。

エラーレベル：crit

(Ｓ)サーバプロセス生成処理を中断します。

(Ｏ)詳細情報について見直してください。

詳細情報: Parent: Unable to connect child stdout to NUL.

サーバプロセスから情報を取得するためのNULハンドルへの接続に失敗しました。

エラーレベル：crit

(Ｓ)サーバプロセス生成処理を中断します。

(Ｏ)詳細情報について見直してください。

詳細情報: Parent: Unable to connect child stderr.

サーバプロセスに設定する標準エラー出力に接続できませんでした。

エラーレベル：crit

(Ｓ)サーバプロセス生成処理を中断します。

(Ｏ)詳細情報について見直してください。

詳細情報: Parent: Could not create ready event for child process

サーバプロセスの開始イベント生成に失敗しました。

エラーレベル：crit

(Ｓ)サーバプロセス生成処理を中断します。

(Ｏ)CreateEvent()関数が返す詳細情報について見直してください。

詳細情報: Parent: Could not create exit event for child process

サーバプロセスの終了イベント生成に失敗しました。

エラーレベル：crit

(Ｓ)サーバプロセス生成処理を中断します。

(Ｏ)CreateEvent()関数が返す詳細情報について見直してください。

詳細情報: Parent: Failed to create the child process.

サーバプロセスの生成に失敗しました。

エラーレベル：crit

(Ｓ)サーバプロセス生成処理を中断します。

(Ｏ)詳細情報について見直してください。

詳細情報: master_main: create child process failed. Exiting.

制御プロセスはサーバプロセスの生成に失敗しました。

エラーレベル：crit

(Ｓ)Webサーバは起動処理を中断します。

(Ｏ)詳細情報について見直してください。

詳細情報: master_main: WaitForMultipleObjects WAIT_FAILED -- doing server shutdown

制御プロセスは停止，計画停止または再起動のイベント待ちに失敗しました。

エラーレベル：crit

(Ｓ)Webサーバは終了します。

(Ｏ)WaitForMultipleObjects()関数が返す詳細情報について見直してください。

詳細情報: Failed to get the full path of 起動コマンド

起動コマンドの絶対パス取得に失敗しました。

エラーレベル：crit

(Ｓ)Webサーバは起動処理を中断します。

(Ｏ)詳細情報について見直してください。

詳細情報: サービス名称: Unable to start the service manager.

サービス起動に失敗しました。

エラーレベル：crit

(Ｓ)Webサーバは起動処理を中断します。

(Ｏ)詳細情報について見直してください。

詳細情報: Parent: Cannot create shutdown event イベント名称

制御プロセスは停止のためのイベント生成に失敗しました。

エラーレベル：crit

(Ｓ)Webサーバは起動処理を中断します。

(Ｏ)CreateEvent()関数が返す詳細情報について見直してください。

詳細情報: Parent: Cannot create restart event イベント名称

制御プロセスは再起動のためのイベント生成に失敗しました。

エラーレベル：crit

(Ｓ)Webサーバは再起動処理を中断します。

(Ｏ)CreateEvent()関数が返す詳細情報について見直してください。

詳細情報: サービス名称: Failed to start the service process.

サービスの起動に失敗しました。

エラーレベル：crit

(Ｓ)Webサーバは起動処理を中断します。

(Ｏ)詳細情報について見直してください。

詳細情報: make_sock: for address Webサーバアドレス: ポート番号, apr_socket_opt_set: (SO_KEEPALIVE)

ソケットレベルオプションSO_KEEPALIVEの設定時にエラーが発生しました。

エラーレベル：crit

(Ｓ)Webサーバは起動処理を中断します。

(Ｏ)setsockopt()関数が返す詳細情報について見直してください。

詳細情報: make_sock: for address Webサーバアドレス: ポート番号, apr_socket_opt_set: (SO_REUSEADDR)

ソケットレベルオプションSO_REUSEADDRの設定時にエラーが発生しました。

エラーレベル：crit

(Ｓ)Webサーバは起動処理を中断します。

(Ｏ)setsockopt()関数が返す詳細情報について見直してください。

詳細情報: alloc_listener: failed to set up sockaddr for IPアドレス

IPアドレスに関するソケット情報を取得できませんでした。

エラーレベル：crit

(Ｓ)Webサーバは起動処理を中断します。

(Ｏ)ListenディレクティブまたはBindAddressディレクティブで指定したIPアドレスについて見直してください。

詳細情報: alloc_listener: failed to get a socket for IPアドレス

ソケットの終端の作成時にエラーが発生しました。

エラーレベル：crit

(Ｓ)Webサーバは起動処理を中断します。

(Ｏ)socket()関数が返す詳細情報について見直してください。

詳細情報: Child サーバプロセスID: Unable to retrieve the graceful exit event from the parent

サーバプロセスの計画停止イベントハンドルを制御プロセスから取得できませんでした。

エラーレベル：crit

(Ｓ)サーバプロセスを終了します。

(Ｏ)ReadFile()関数が返す詳細情報について見直してください。

詳細情報: Parent: Unable to duplicate the graceful exit event handle for the child

サーバプロセスの計画停止イベントハンドルを複製できませんでした。

エラーレベル：crit

(Ｓ)Webサーバは起動処理を中断します。

(Ｏ)DuplicateHandle()関数が返す詳細情報について見直してください。

詳細情報: Parent: Unable to send the graceful exit event handle to the child

サーバプロセスに計画停止イベントハンドルを送信できませんでした。

エラーレベル：crit

(Ｓ)Webサーバは起動処理を中断します。

(Ｏ)詳細情報について見直してください。

詳細情報: Parent: Could not create graceful exit event for child process

サーバプロセスの計画停止イベント生成に失敗しました。

エラーレベル：crit

(Ｓ)サーバプロセス生成処理を中断します。

(Ｏ)CreateEvent()関数が返す詳細情報について見直してください。

詳細情報: Parent: Cannot create graceful stop event イベント名称

制御プロセスは計画停止のためのイベント生成に失敗しました。

エラーレベル：crit

(Ｓ)Webサーバは起動処理を中断します。

(Ｏ)CreateEvent()関数が返す詳細情報について見直してください。

[client クライアントアドレス] configuration error: couldn't テキスト: リクエストURI値

リクエストURI値にアクセスする場合に，コンフィグファイル内での設定にエラーがあるため，テキストに示す事象を実行できません。

エラーレベル：crit

(Ｓ)ステータスコード「500　Internal Server Error」をクライアントに返し，リクエスト処理を中断します。

(Ｏ)テキストに示す内容についてコンフィグファイルを見直してください。

詳細情報: Fatal error: unable to create global pool for use with by the scoreboard

スコアボードで使用する領域を確保できませんでした。

エラーレベル：crit

(Ｓ)Webサーバは起動処理を中断します。

(Ｏ)詳細情報について見直してください。

詳細情報: Unable to create scoreboard (anonymous shared memory failure)

スコアボードで使用する共有メモリを確保できませんでした。

エラーレベル：crit

(Ｓ)Webサーバは起動処理を中断します。

(Ｏ)詳細情報について見直してください。

Invalid config file path コンフィグファイル名

コンフィグファイルのパスが不正です。

エラーレベル：crit

(Ｓ)Webサーバは起動処理を中断します。

(Ｏ)コンフィグファイル名に示すパスについて見直してください。

詳細情報: Invalid PID file path プロセスID格納ファイル名, ignoring.

プロセスID格納ファイル名が不正です。

エラーレベル：crit

(Ｓ)Webサーバは起動処理を続行します。

(Ｏ)PidFileディレクティブを詳細情報について見直してください。

詳細情報: make_sock: could not bind to address Webサーバアドレス:ポート番号

ソケットへのアドレスバインド時にエラーが発生しました。

エラーレベル：crit

(Ｓ)Webサーバは起動処理を中断します。

(Ｏ)bind()関数が返す詳細情報について見直してください。

Ouch! Out of memory in add_job()!

リクエスト受付処理中にメモリ確保に失敗しました。

エラーレベル：crit

(Ｓ)サーバプロセスを終了します。

(Ｏ)メモリ使用量について，システムの状態を確認してください。

詳細情報: Could not open pipe-of-death.

サーバプロセスの終了要求で使用するパイプの生成に失敗しました。

エラーレベル：crit

(Ｓ)Webサーバは起動処理を中断します。

(Ｏ)pipe()関数が返す詳細情報について見直してください。

詳細情報: make_sock: for address Webサーバアドレス: ポート番号, apr_socket_opt_set: (IPV6_V6ONLY)

ソケットレベルオプションIPV6_V6ONLYの設定時にエラーが発生しました。

エラーレベル：crit

(Ｓ)Webサーバは起動処理を中断します。

(Ｏ)setsockopt()関数が返す詳細情報について見直してください。

詳細情報: An attempt to load the audit log library has failed.

監査ログ出力用ライブラリのロードに失敗しました。

エラーレベル：crit

(Ｓ)Webサーバは処理を中断します。

(Ｏ)詳細情報について見直してください。

詳細情報: An attempt to acquire the address of the audit log function has failed.

監査ログ出力用ライブラリの関数のアドレス取得に失敗しました。

エラーレベル：crit

(Ｓ)Webサーバは処理を中断します。

(Ｏ)詳細情報について見直してください。

詳細情報: An attempt to acquire the path of the audit log library has failed.

監査ログ出力用ライブラリのパスの取得に失敗しました。

エラーレベル：crit

(Ｓ)Webサーバは処理を中断します。

(Ｏ)詳細情報について見直してください。

詳細情報: Child サーバプロセスID: Unable to retrieve the parent process handle from the parent

制御プロセスのプロセスハンドルを制御プロセスから取得できませんでした。

エラーレベル：crit

(Ｓ)サーバプロセスを終了します。

(Ｏ)ReadFile()関数が返す詳細情報について見直してください。

詳細情報: Parent: Unable to duplicate the parent process handle for the child

制御プロセスのプロセスハンドルを複製できませんでした。

エラーレベル：crit

(Ｓ)Webサーバは起動処理を中断します。

(Ｏ)DuplicateHandle()関数が返す詳細情報について見直してください。

詳細情報: Parent: Unable to send the parent process handle to the child

サーバプロセスに制御プロセスのプロセスハンドルを送信できませんでした。

エラーレベル：crit

(Ｓ)Webサーバは起動処理を中断します。

(Ｏ)詳細情報について見直してください。

詳細情報: Parent: SetHandleInformation failed.

制御プロセスの標準入力，標準出力または標準エラー出力のプロパティ設定に失敗しました。

エラーレベル：crit

(Ｓ)Webサーバは起動処理を中断します。

(Ｏ)SetHandleInformation()関数が返す詳細情報について見直してください。

詳細情報: Child サーバプロセスID: SetHandleInformation failed.

サーバプロセスの標準入力，標準出力または標準エラー出力のプロパティ設定に失敗しました。

エラーレベル：crit

(Ｓ)サーバプロセスを終了します。

(Ｏ)SetHandleInformation()関数が返す詳細情報について見直してください。

Parent: the child process exited before starting initialization.

サーバプロセスは初期化処理を開始する前に終了しました。

エラーレベル：crit

(Ｓ)Webサーバは起動処理を中断します。

(Ｏ)このメッセージのほかに出力されているメッセージのエラーの原因について見直してください。

詳細情報: Parent: WaitForMultipleObjects failed.

制御プロセスはサーバプロセスの初期化処理開始イベント待ちに失敗しました。

エラーレベル：crit

(Ｓ)Webサーバは起動処理を中断します。

(Ｏ)WaitForMultipleObject()関数が返す詳細情報について見直してください。

the service control dispatcher terminated before completing initialization of the service.

サービス制御ディスパッチャスレッドはサービス初期化処理が完了する前に終了しました。

エラーレベル：crit

(Ｓ)サービスの起動処理を中断します。

(Ｏ)このメッセージのほかに出力されているメッセージのエラーの原因について見直してください。

service initialization wait timed out.

サービス起動プロセスのサービス初期化処理完了イベント待ちでタイムアウトが発生しました。

エラーレベル：crit

(Ｓ)サービスの起動処理を中断します。

(Ｏ)このメッセージのほかに出力されているメッセージのエラーの原因について見直してください。

詳細情報: WaitForMultipleObjects failed.

サービス起動プロセスはサービス初期化処理完了イベント待ちに失敗しました。

エラーレベル：crit

(Ｓ)サービスの起動処理を中断します。

(Ｏ)WaitForMultipleObject()関数が返す詳細情報について見直してください。

(4)　errorレベルのメッセージ

[client クライアントアドレス] Request exceeded the limit of 制限値 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.

リクエストの内部リダイレクトの回数が，制限値(10)に達しました。

エラーレベル：error

(Ｓ)ステータスコード「500 Internal Server Error」をクライアントに返し，リクエスト処理を中断します。

(Ｏ)内部リダイレクトが不要に繰り返されないように，設定を確認してください。

[client クライアントアドレス] Request exceeded the limit of 制限値 subrequest nesting levels due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.

リクエストのサブリクエストのネスト回数が制限値(10)に達しました。

エラーレベル：error

(Ｓ)ステータスコード「500 Internal Server Error」をクライアントに返し，リクエスト処理を中断します。

(Ｏ)サブリクエストが不要に繰り返されないように，設定を確認してください。

[client クライアントアドレス] Invalid URI in request リクエスト

リクエスト中のURIが不正です。

エラーレベル：error

(Ｓ)ステータスコード「400　Bad Request」をクライアントに返し，リクエスト処理を中断します。

(Ｏ)リクエスト中のURIを見直してください。

[client クライアントアドレス] File does not exist: ファイル名

要求したファイルが見つかりません。

エラーレベル：error

(Ｓ)ステータスコード「404　Not Found」をクライアントに返し，リクエスト処理を中断します。

(Ｏ)要求したファイル名について見直してください。

[client クライアントアドレス] Attempt to serve directory: ディレクトリ名

ディレクトリ名への要求はできません。

エラーレベル：error

(Ｓ)ステータスコード「404　Not Found」をクライアントに返し，リクエスト処理を中断します。

(Ｏ)リクエスト中のURIを見直してください。

[client クライアントアドレス] This resource does not accept the メソッド method.

ソースに対して許可されていないメソッドでの要求でした。

エラーレベル：error

(Ｓ)ステータスコード「405　Method Not Allowed」をクライアントに返し，リクエスト処理を中断します。

(Ｏ)リクエスト中のメソッドを見直してください。

[client クライアントアドレス] 詳細情報: file permissions deny server access: ファイル名

要求されたファイルへのアクセス権限がありません。

エラーレベル：error

(Ｓ)ステータスコード「403　Forbidden」をクライアントに返し，リクエスト処理を中断します。

(Ｏ)要求されたファイルについて詳細情報に従い見直してください。

[client クライアントアドレス] Invalid method in request リクエスト

リクエスト中のメソッドが不正です。

エラーレベル：error

(Ｓ)ステータスコード「501　Method Not Implemented」をクライアントに返し，リクエスト処理を中断します。

(Ｏ)リクエスト中のメソッドを見直してください。

[client クライアントアドレス] 詳細情報: core_output_filter: Error reading from bucket.

送信データの読み込み処理に失敗しました。

エラーレベル：error

(Ｓ)ステータスコード「500 Internal Server Error」をクライアントに返し，リクエスト処理を中断します。

(Ｏ)詳細情報について見直してください。

[client クライアントアドレス] 詳細情報: Failed to read cgi file ファイル名称 for testing

ファイルの読み込みに失敗しました。

エラーレベル：error

(Ｓ)スクリプト実行処理を中断します。

(Ｏ)詳細情報について見直してください。

[client クライアントアドレス] ファイル名称 is not executable; ensure interpreted scripts have "#!" first line

指定されたファイルは実行できません。

エラーレベル：error

(Ｓ)CGIプログラムの起動を中断します。

(Ｏ)最初の行に"#!"が指定してあるか確認してください。

[client クライアントアドレス] 詳細情報: reading request body failed

クライアントからのリクエストボディの受信に失敗しました。

エラーレベル：error

(Ｓ)ステータスコード「500 Internal Server Error」をクライアントに返し，リクエスト処理を中断します。

(Ｏ)詳細情報に示す原因について見直してください。

詳細情報: could not create プロセスID格納ファイル名

プロセスID格納ファイルを作成できませんでした。

エラーレベル：error

(Ｓ)Webサーバは起動処理を中断します。

(Ｏ)PidFileディレクティブで指定したファイルを詳細情報について見直してください。

httpsd: could not log pid to file プロセスID格納ファイル名

プロセスID格納ファイルへのプロセスIDの記録に失敗しました。

エラーレベル：error

(Ｓ)Webサーバは起動処理を中断します。

(Ｏ)このメッセージのほかに出力されているメッセージのエラーの原因について見直してください。

Too many errors in select loop. Child process exiting.

サーバプロセスでのselect()エラー発生回数が100回を超えたため，サーバプロセスを終了します。

エラーレベル：error

(Ｓ)リクエスト受付処理を終了します。

(Ｏ)このメッセージのほかに出力されているselect()関数のエラーの原因について見直してください。

詳細情報: accept: (client socket)

accept()関数でエラーが発生しました。

エラーレベル：error

(Ｓ)リクエスト受付処理を続行します。

(Ｏ)accept()関数が返す詳細情報について見直してください。

詳細情報: Child プロセスID: Failed to acquire the start_mutex. Process will exit.

サーバプロセス排他用のロック獲得に失敗しました。

エラーレベル：error

(Ｓ)サーバプロセスを終了します。

(Ｏ)WaitForSingleObject()関数が返す詳細情報について見直してください。

詳細情報: Child プロセスID: Failure releasing the start mutex

サーバプロセス排他用のロック解放に失敗しました。

エラーレベル：error

(Ｓ)サーバプロセスは終了処理を続行します。

(Ｏ)ReleaseMutex()関数が返す詳細情報について見直してください。

詳細情報: set_listeners_noninheritable: SetHandleInformation failed.

オブジェクトハンドルのプロパティ設定に失敗しました。

エラーレベル：error

(Ｓ)サーバプロセスは初期化処理を続行します。

(Ｏ)SetHandleInformation()関数が返す詳細情報について見直してください。

詳細情報: master_main: WaitForMultipleObjects with INFINETE wait exited with WAIT_TIMEOUT

制御プロセスは停止，計画停止または再起動のイベント待ち中に，INFINETE指定であるにもかかわらずタイムアウトが発生しました。

エラーレベル：error

(Ｓ)Webサーバは終了します。

(Ｏ)WaitForMultipleObjects()関数が返す詳細情報について見直してください。

詳細情報: ResetEvent(shutdown_event)

制御プロセスは停止イベントの解除に失敗しました。

エラーレベル：error

(Ｓ)Webサーバは停止処理を続行します。

(Ｏ)ResetEvent()関数が返す詳細情報について見直してください。

詳細情報: Parent: ResetEvent(restart_event) failed.

制御プロセスは再起動イベントの解除に失敗しました。

エラーレベル：error

(Ｓ)Webサーバは再起動処理を続行します。

(Ｏ)ResetEvent()関数が返す詳細情報について見直してください。

詳細情報: Parent: SetEvent for child process スロット番号 failed

制御プロセスはサーバプロセスの再起動イベントの設定に失敗しました。

エラーレベル：error

(Ｓ)Webサーバは再起動処理を続行します。

(Ｏ)SetEvent()関数が返す詳細情報について見直してください。

詳細情報: Parent: SetEvent for child process スロット番号 failed

制御プロセスはサーバプロセスの停止または計画停止イベントの設定に失敗しました。

エラーレベル：error

(Ｓ)Webサーバは停止または計画停止処理を続行します。

(Ｏ)SetEvent()関数が返す詳細情報について見直してください。

Parent: child process exited with status 終了コード -- Aborting.

サーバプロセスは終了コードで終了しました。Webサーバを停止します。

エラーレベル：error

(Ｓ)Webサーバは停止処理を開始します。

(Ｏ)終了コードが示す原因について，見直してください。

サービス名称:Service is already installed.

すでにインストールされているサービスをインストールしようとしました。

エラーレベル：error

(Ｓ)Webサーバはサービスインストール処理を中止します。

(Ｏ)サービスを確認してください。

詳細情報: No installed service named "サービス名称".

インストールされていないサービスを指定しました。

エラーレベル：error

(Ｓ)Webサーバは起動処理を中断します。

(Ｏ)サービスを確認してください。

詳細情報: サービス名称: Unable to create the start_mutex.

排他用のハンドラ生成に失敗しました。

エラーレベル：error

(Ｓ)Webサーバは起動処理を中断します。

(Ｏ)CreateMutexW()関数が返す詳細情報について見直してください。

詳細情報: could not open transfer log file ファイル名.

ログファイルが開けません。

エラーレベル：error

(Ｓ)Webサーバの起動処理を終了します（Webサーバを起動しません）。

(Ｏ)TransferLogディレクティブまたはCustomLogディレクティブの設定を見直してください。

詳細情報: invalid transfer log path ファイル名.

ログファイルが不正です。

エラーレベル：error

(Ｓ)Webサーバの起動処理を終了します（Webサーバを起動しません）。

(Ｏ)TransferLogディレクティブまたはCustomLogディレクティブの設定を見直してください。

[client クライアントアドレス] 詳細情報：log writer isn't correctly setup

log writerが正しくセットアップされていません。

エラーレベル：error

(Ｓ)サーバは処理を続行します。

(Ｏ)詳細情報について見直してください。

詳細情報: ResetEvent(graceful_stop_event)

制御プロセスは計画停止イベントの解除に失敗しました。

エラーレベル：error

(Ｓ)Webサーバは計画停止処理を続行します。

(Ｏ)ResetEvent()関数が返す詳細情報について見直してください。

[client クライアントアドレス] request failed: URI too long (longer than 上限値)

リクエストURIが長過ぎるため，リクエスト処理を続行できません。

エラーレベル：error

(Ｓ)ステータスコード「414　Request-URI Too Large」をクライアントに返し，リクエスト処理を中断します。

(Ｏ)リクエストライン（メソッド，問い合わせ文字列などを含むURI，HTTPバージョン）で指定した文字列がLimitRequestLineディレクティブ値を超えていないか見直してください。

[client クライアントアドレス] request failed: erroneous characters after protocol string: リクエストライン

リクエストラインに不正なHTTPプロトコル文字列が指定されています。

エラーレベル：error

(Ｓ)ステータスコード「400 Bad Request」をクライアントに返し，リクエスト処理を中断します。

(Ｏ)リクエストラインに文法エラーがあります。リクエストラインに指定されたHTTPバージョンに，不正な文字列が指定されていないかどうかを確認してください。

[client クライアントアドレス] request failed: error reading the headers

リクエストヘッダにエラーがあるためリクエスト処理を続行できません。

エラーレベル：error

(Ｓ)ステータスコード「400　Bad Request」をクライアントに返し，リクエスト処理を中断します。

(Ｏ)リクエストヘッダに文法エラーがあります。ヘッダとして誤ったものを指定していないかまたはリクエストヘッダの個数がLimitRequestFieldsディレクティブ値を超えていないかを見直してください。

[client クライアントアドレス] client sent invalid HTTP/0.9 request: HEAD リクエストURI値

クライアントは不当なHTTP/0.9リクエスト（HEAD リクエストURI値）を送付したため，リクエスト処理を続行できません。

エラーレベル：error

(Ｓ)ステータスコード「400　Bad Request」をクライアントに返し，リクエスト処理を中断します。

(Ｏ)HEADメソッドでのリクエストはHTTPプロトコル1.0以降で有効です。HTTPプロトコル文字列を含まないで，HEADメソッドによるリクエストをしていないか確認してください。

[client クライアントアドレス] client sent HTTP/1.1 request without hostname (see RFC2616 section 14.23): リクエストURI値

クライアントはHTTP/1.1リクエストをHOSTヘッダを付けないで送付したため，リクエスト処理を続行できません。

エラーレベル：error

(Ｓ)ステータスコード「400　Bad Request」をクライアントに返し，リクエスト処理を中断します。

(Ｏ)HOSTヘッダを付けたHTTP/1.1リクエストであるかを確認してください。

[client クライアントアドレス] need AuthType to note auth failure: リクエストURI値

ユーザ認証する場合のAuthTypeディレクティブで指定する認証タイプ名が指定されていません。

エラーレベル：error

(Ｓ)ステータスコード「401　Authorization Required」を返してリクエスト処理を終了します。

(Ｏ)ユーザ認証する場合には，AuthTypeディレクティブを指定してください。

[client クライアントアドレス] need AuthName: リクエストURI値

ユーザ認証する場合のAuthNameディレクティブで指定するrealm名が指定されていません。

エラーレベル：error

(Ｓ)ステータスコード「500　Internal Server Error」をクライアントに返し，リクエスト処理を中断します。

(Ｏ)ユーザ認証する場合には，AuthNameディレクティブを指定してください。

[client クライアントアドレス] client used wrong authentication scheme: リクエストURI値

ユーザ認証する場合のAuthorizationヘッダの認証制御のタイプが不正です。

エラーレベル：error

(Ｓ)ステータスコード「401　Authorization Required」を返してリクエスト処理を終了します。

(Ｏ)AuthorizationヘッダにはBasicだけを指定できます。Authorizationヘッダでの指定値を見直してください。

[client クライアントアドレス] 詳細情報: ap_content_length_filter: apr_bucket_read() failed

レスポンスデータの読み込み処理に失敗しました。

エラーレベル：error

(Ｓ)ステータスコード「500　Internal Server Error」をクライアントに返し，リクエスト処理を中断します。

(Ｏ)詳細情報について見直してください。

[client クライアントアドレス] 詳細情報: dir_walk error, path_info パス情報 is not relative to the filename path ディレクトリ名 for uri リクエストURI値

パス情報に示すパスがディレクトリ名に示すディレクトリ以下に含まれていません。

エラーレベル：error

(Ｓ)ステータスコード「500　Internal Server Error」をクライアントに返し，リクエスト処理を中断します。

(Ｏ)詳細情報について見直してください。

[client クライアントアドレス] 詳細情報: dir_walk error, could not determine the root path of filename ファイル名 for uri リクエストURI値

ファイル名に示すパスに対して，基準となるパスを決定できませんでした。

エラーレベル：error

(Ｓ)ステータスコード「500　Internal Server Error」をクライアントに返し，リクエスト処理を中断します。

(Ｏ)詳細情報について見直してください。

[client クライアントアドレス] 詳細情報: access to リクエストURI値 denied

リクエストURIに示すファイルへのアクセスは，ファイルへの検索パーミッションがないために失敗しました。

エラーレベル：error

(Ｓ)ステータスコード「403 Forbidden」をクライアントに返し，リクエスト処理を中断します。

(Ｏ)アクセスファイルについて詳細情報に従い見直してください。

[client クライアントアドレス] 詳細情報: access to リクエストURI値 failed

リクエストURIに示すファイルへアクセスできません。

エラーレベル：error

(Ｓ)ステータスコード「403 Forbidden」をクライアントに返し，リクエスト処理を中断します。

(Ｏ)アクセスファイルについて詳細情報に従い見直してください。

[client クライアントアドレス] Forbidden: アクセスファイル doesn't point to a file or directory

アクセスファイルはファイルおよびディレクトリではありません。

エラーレベル：error

(Ｓ)ステータスコード「403 Forbidden」をクライアントに返し，リクエスト処理を中断します。

(Ｏ)アクセスファイルの属性を見直してください。

Access to file ファイル名 denied by server: not a regular file

ファイルが標準ファイルではないため，ファイルへのアクセスは，Webサーバによって拒否されました。

エラーレベル：error

(Ｓ)Webサーバの起動処理を中断します。

(Ｏ)アクセスするファイルが標準ファイルかどうか見直してください。

[client クライアントアドレス] Premature end of script headers: CGIプログラム

CGIプログラムからクライアントへの出力データがありません。

エラーレベル：error

(Ｓ)ステータスコード「500　Internal Server Error」をクライアントに返し，リクエスト処理を中断します。CGIプログラムは実行を終了します。

(Ｏ)CGIプログラムについて見直してください。CGIプログラムは，最初にHTTPヘッダを出力する必要があります。

[client クライアントアドレス] malformed header from script. Bad header=ヘッダ: CGIプログラム

CGIプログラムからクライアントへ出力されたHTTPヘッダのフォーマットは不正です。

エラーレベル：error

(Ｓ)ステータスコード「500　Internal Server Error」をクライアントに返し，リクエスト処理を中断します。CGIプログラムは実行を終了します。

(Ｏ)CGIプログラムについて見直してください。CGIプログラムは，最初にHTTPヘッダを出力する必要があります。出力されたHTTPヘッダのフォーマットが不正です。

詳細情報: Cannot resolve host name バーチャルホスト名 --- ignoring!

不正なバーチャルホストを指定しているため，指定を無視します。

エラーレベル：error

(Ｓ)不正なバーチャルホストは無視して，Webサーバの起動処理を続行します。

(Ｏ)NameVirtualHostディレクティブまたはVirtualHostディレクティブで指定したホスト名について見直してください。

VirtualHost ホスト名:ポート番号 -- mixing * ports and non-* ports with a NameVirtualHost address is not supported, proceeding with undefined results

VirtualHostディレクティブとNameVirtualHostディレクティブに*（アスタリスク）で指定したポート番号と*ではないポート番号が混在しています。実行結果は保証できません。

エラーレベル：error

(Ｓ)Webサーバは起動処理を続行します。

(Ｏ)VirtualHostディレクティブとNameVirtualHostディレクティブで指定するポート番号について，*(アスタリスク)の混在について見直してください。VirtualHostディレクティブで指定するポート番号で*を指定した場合には，NameVirtualHostディレクティブについてもポート番号には*を指定してください。

詳細情報: Failed to resolve server name for IPアドレス (check DNS) -- or specify an explicit ServerName

VirtualHostディレクティブで指定したホスト名の解決処理に失敗しました。

エラーレベル：error

(Ｓ)Webサーバはホスト名の解決処理に失敗したバーチャルホストについては無視して，起動処理を続行します。解決処理に失敗したバーチャルホストは，バーチャルホストとして認識されません。

(Ｏ)VirtualHostディレクティブで指定したホスト名について見直してください。

[client クライアントアドレス] Client sent malformed Host header

クライアントは不正なHostヘッダを送付しました。

エラーレベル：error

(Ｓ)ステータスコード「400　Bad Request」をクライアントに返し，リクエスト処理を中断します。

(Ｏ)Hostヘッダを見直してください。

[client クライアントアドレス] Invalid Content-Length

Content-Lengthヘッダで指定した長さが不正です。

エラーレベル：error

(Ｓ)ステータスコード「400　Bad Request」をクライアントに返し，リクエスト処理を中断します。

(Ｏ)Content-Lengthヘッダには数値（10進数）だけが指定できます。指定値を見直してください。

[client クライアントアドレス] Requested content-length of 指定長 is larger than the configured limit of LimitRequestBodyディレクティブ値

Content-Lengthヘッダでの指定長は，LimitRequestBodyディレクティブ値よりも大きい値を指定しています。

エラーレベル：error

(Ｓ)ステータスコード「413　Request Entity Too Large」をクライアントに返し，リクエスト処理を中断します。

(Ｏ)LimitRequestBodyディレクティブでの指定値を見直してください。リクエストボディサイズに上限値を設定しない場合には，0を指定してください。

[client クライアントアドレス] Read content-length of 読み込みボディサイズ is larger than the configured limit of LimitRequestBodyディレクティブ値

LimitRequestBodyディレクティブ値よりも大きいサイズのボディを読み込みました。

エラーレベル：error

(Ｓ)ステータスコード「413　Request Entity Too Large」をクライアントに返し，リクエスト処理を中断します。

(Ｏ)LimitRequestBodyディレクティブでの指定値を見直してください。リクエストボディサイズに上限値を設定しない場合には，0を指定してください。

[client クライアントアドレス] Unknown Transfer-Encoding Transfer-Encodingヘッダ値

Transfer-Encodingヘッダでの指定値が不正です。

エラーレベル：error

(Ｓ)ステータスコード「501　Method Not Implemented」をクライアントに返し，リクエスト処理を中断します。

(Ｏ)Transfer-Encodingヘッダにchunked以外を指定しています。Transfer-Encodingヘッダを見直してください。

[client クライアントアドレス] chunked Transfer-Encoding forbidden: リクエストURI値

Transfer-Encodingヘッダにchunkedを指定することは禁止されています。

エラーレベル：error

(Ｓ)ステータスコード「411　Length Required」または「400　Bad Request」をクライアントに返し，リクエスト処理を中断します。

(Ｏ)Transfer-Encodingヘッダにchunked以外を指定しています。Transfer-Encodingヘッダを見直してください。

[client クライアントアドレス] メソッド with body is not allowed for リクエストURI値

ボディを伴うことを許可されていないメソッドに対して，ボディを伴って指定されています。

エラーレベル：error

(Ｓ)ステータスコード「413　Request Entity Too Large」をクライアントに返し，リクエスト処理を中断します。

(Ｏ)リクエストボディが付加されたTRACEメソッドを許可する場合は，TraceEnableディレクティブでextendedを指定してください。ただし，リクエストボディサイズが64KBを超える場合は受け付けられません。

[client クライアントアドレス] 詳細情報: apr_brigade_partition() failed [開始オフセット値または終了オフセット値+1,ファイルサイズ]

バイトレンジオペレーション処理時にエラーが発生しました。

エラーレベル：error

(Ｓ)Webサーバはエラーの発生したバイトレンジオペレーションについてのデータはクライアントには送信しないで，次のバイトレンジオペレーション処理を実行します。

(Ｏ)詳細情報に示す原因について見直してください。

[client クライアントアドレス] Invalid error redirection directive: リダイレクト先

ErrorDocumentディレクティブで指定するカスタマイズ方法に文法的にエラーがあります。

エラーレベル：error

(Ｓ)エラーステータス番号はカスタマイズしません。

(Ｏ)ErrorDocumentディレクティブでエラーメッセージをカスタマイズする場合には，テキスト，ローカルURLまたはフルURLを指定してください。詳細は，ErrorDocumentディレクティブの説明を参照してください。

Unable to open logs

ログ出力先の設定またはソケット生成処理でエラーが発生しました。

エラーレベル：error

(Ｓ)Webサーバは起動処理を中断します。

(Ｏ)このメッセージのほかに出力されているメッセージのエラーの原因について見直してください。

Configuration Failed

コンフィグファイル読み込み後処理でエラーが発生しました。

エラーレベル：error

(Ｓ)Webサーバは起動処理を中断します。

(Ｏ)このメッセージのほかに出力されているメッセージのエラーの原因について見直してください。

詳細情報: Failure registering service handler

サービス制御マネジャへのサービス制御要求処理関数の登録に失敗しました。

エラーレベル：error

(Ｓ)サービスの起動処理を中断します。

(Ｏ)RegisterServiceCtrlHandler()関数が返す詳細情報について見直してください。

詳細情報: Error starting service control dispatcher

サービス制御マネジャへのサービス制御ディスパッチャスレッドの設定に失敗しました。

エラーレベル：error

(Ｓ)サービスの起動処理を中断します。

(Ｏ)StartServiceCtrlDispatcher()関数が返す詳細情報について見直してください。

詳細情報: GetModuleFileName failed

Webサーバ実行ファイルのパス取得に失敗しました。

エラーレベル：error

(Ｓ)サービスの登録処理を中断します。

(Ｏ)GetModuleFileName()関数が返す詳細情報について見直してください。

詳細情報: Failed to open the WinNT service manager

ローカルコンピュータのサービス制御マネジャとの接続に失敗しました。

エラーレベル：error

(Ｓ)サービスのインストール，削除または起動などのWebサーバ操作処理を中断します。

(Ｏ)OpenSCManager()関数が返す詳細情報について見直してください。

詳細情報: Failed to open the WinNT service manager.

ローカルコンピュータのサービス制御マネジャとの接続に失敗しました。

エラーレベル：error

(Ｓ)サービスの削除処理を中断します。

(Ｏ)OpenSCManager()関数が返す詳細情報について見直してください。

詳細情報: OpenService failed

サービスのハンドルの取得に失敗しました。

エラーレベル：error

(Ｓ)サービスの構成パラメタ変更処理を中断します。

(Ｏ)OpenService()関数が返す詳細情報について見直してください。

詳細情報: ChangeServiceConfig failed

サービスの構成パラメタ変更に失敗しました。

エラーレベル：error

(Ｓ)サービスの構成パラメタ変更処理を中断します。

(Ｏ)ChangeServiceConfig()関数が返す詳細情報について見直してください。

詳細情報: Failed to create WinNT Service Profile

サービスの登録に失敗しました。

エラーレベル：error

(Ｓ)サービスの登録処理を中断します。

(Ｏ)CreateService()関数が返す詳細情報について見直してください。

詳細情報: サービス名称: Failed to store the ConfigArgs in the registry.

レジストリエントリConfigArgsの格納に失敗しました。

エラーレベル：error

(Ｓ)サービスのインストール，構成パラメタ変更処理を中断します。

(Ｏ)詳細情報について見直してください。

詳細情報: サービス名称: OpenService failed

サービスのハンドルの取得に失敗しました。

エラーレベル：error

(Ｓ)サービスの削除処理を中断します。

(Ｏ)OpenService()関数が返す詳細情報について見直してください。

詳細情報: サービス名称: Failed to delete the service.

サービスの削除に失敗しました。

エラーレベル：error

(Ｓ)サービスの削除処理を中断します。

(Ｏ)DeleteService()関数が返す詳細情報について見直してください。

詳細情報: サービス名称: Failed to open the service.

サービスのハンドルの取得に失敗しました。

エラーレベル：error

(Ｓ)サービスの起動処理を中断します。

(Ｏ)OpenService()関数が返す詳細情報について見直してください。

Service サービス名称 is already started!

すでに起動しているサービスを起動しようとしました。

エラーレベル：error

(Ｓ)サービスの起動処理を中断します。

(Ｏ)サービス名称に示すサービスがすでに起動していないかを確認してください。

詳細情報: Failed to open the NT Service Manager

ローカルコンピュータのサービス制御マネジャとの接続に失敗しました。

エラーレベル：error

(Ｓ)サービスの停止，計画停止または再起動処理を中断します。

(Ｏ)OpenSCManager()関数が返す詳細情報について見直してください。

詳細情報: Failed to open the サービス名称 Service

サービスのハンドルの取得に失敗しました。

エラーレベル：error

(Ｓ)サービスの停止，計画停止または再起動処理を中断します。

(Ｏ)OpenService()関数が返す詳細情報について見直してください。

詳細情報: Query of Service サービス名称 failed

サービスのステータス情報の取得に失敗しました。

エラーレベル：error

(Ｓ)サービスの停止，計画停止または再起動処理を中断します。

(Ｏ)QueryServiceStatus()関数が返す詳細情報について見直してください。

詳細情報: make_sock: unable to listen for connections on address Webサーバアドレス:ポート番号

ソケット上での接続の受け入れ準備時にエラーが発生しました。

エラーレベル：error

(Ｓ)Webサーバは起動処理を中断します。

(Ｏ)listen()関数が返す詳細情報について見直してください。

詳細情報: The HWS trace could not open the log file ファイル名 specified in the HWSTraceLogFile.

HWSTraceLogFileディレクティブで指定したファイル名に示すファイルを開けません。

エラーレベル：error

(Ｓ)処理を中断します。

(Ｏ)詳細情報に示す原因について見直してください。

詳細情報: The HWS trace could not create the segment(size=サイズ).

共有メモリを確保できません。

エラーレベル：error

(Ｓ)処理を中断します。

(Ｏ)詳細情報に示す原因について見直してください。

詳細情報: The HWS trace could not map the segment(id=識別子) for the child.

共有メモリを空間に割り当てられません。

エラーレベル：error

(Ｓ)処理を中断します。

(Ｏ)詳細情報に示す原因について見直してください。

詳細情報: The HWS trace could not map the segment(id=識別子) for the parent.

共有メモリを空間に割り当てられません。

エラーレベル：error

(Ｓ)処理を中断します。

(Ｏ)詳細情報に示す原因について見直してください。

詳細情報: The HWS trace could not open the ID file ファイル名 specified in the HWSTraceIdFile.

HWSTraceIdFileディレクティブで指定したファイル名で示すファイルを開けません。

エラーレベル：error

(Ｓ)処理を中断します。

(Ｏ)詳細情報に示す原因について見直してください。

詳細情報: The HWS trace could not write the log file ファイル名 specified in the HWSTraceLogFile.

HWSTraceLogFileディレクティブで指定したファイルへ，プロセスIDについての共有メモリの内容を出力することに失敗しました。

エラーレベル：error

(Ｓ)出力処理を中断します。

詳細情報: The HWS trace could not open the segment(id=共有メモリ識別子).

共有メモリのオープンに失敗しました。

エラーレベル：error

(Ｓ)処理を中断します。

(Ｏ)詳細情報に示す原因について見直してください。

[client クライアントアドレス] File does not exist: ファイル名

要求したファイルが見つかりません。

エラーレベル：error

(Ｓ)ステータスコード「404　Not Found」をクライアントに返し，リクエスト処理を中断します。

(Ｏ)要求したファイル名について見直してください。

[client クライアントアドレス] 詳細情報: Can't open directory for index: ディレクトリ名

ディレクトリインデクスをするディレクトリが開けません。

エラーレベル：error

(Ｓ)ステータスコード「403　Forbidden」を返してリクエスト処理を終了します。

(Ｏ)詳細情報に示す原因について，システムの状態を確認してください。

[client クライアントアドレス] Directory index forbidden by rule: ファイル名

設定によって，ディレクトリインデクスを表示できません。

エラーレベル：error

(Ｓ)ステータスコード「403　Forbidden」を返してリクエスト処理を終了します。

(Ｏ)ディレクトリインデクスを許可する場合には，設定を変更してください。

[client クライアントアドレス] cannot redirect 'リクエストURI' to 'リダイレクト先'; target is not a valid absoluteURI or abs_path

リダイレクト先にリダイレクトできません。設定されたリダイレクト先は，URLではありません。

エラーレベル：error

(Ｓ)ステータスコード「500 Internal Server Error」をクライアントに返し，リクエスト処理を中断します。

(Ｏ)設定されたリダイレクト先がURLとなっていることを確認してください。

[client クライアントアドレス] 詳細情報: couldn't create child process:エラーコード ファイル名

CGI実行時にエラーが発生し，プログラム用のプロセスを生成できませんでした。

エラーレベル：error

(Ｓ)ステータスコード「500　Internal Server Error」を返してリクエスト処理を終了します。

(Ｏ)詳細情報に示す原因について，システムの状態を確認してください。

[client クライアントアドレス] 詳細情報: don't know how to spawn child process: ファイル名

プロセスを生成できません。

エラーレベル：error

(Ｓ)ステータスコード「500　Internal Server Error」を返してリクエスト処理を終了します。

(Ｏ)詳細情報に示す原因について，システムの状態を確認してください。

[client クライアントアドレス] 詳細情報: couldn't spawn child process: ファイル名

CGIプログラム用のプロセスを生成できませんでした。

エラーレベル：error

(Ｓ)ステータスコード「500　Internal Server Error」を返してリクエスト処理を終了します。

(Ｏ)詳細情報に示す原因について，システムの状態を確認してください。

[client クライアントアドレス] invalid base directive in map file: リクエストURI値

イメージマップファイル中のbaseディレクティブ指定が無効です。

エラーレベル：error

(Ｓ)ステータスコード「500　Internal Server Error」を返してリクエスト処理を終了します。

(Ｏ)マップファイルのbase設定を見直してください。

[client クライアントアドレス] invalid directory name in map file: リクエストURI値

イメージマップファイル中で指定されているディレクトリ名が無効です。

エラーレベル：error

(Ｓ)ステータスコード「500　Internal Server Error」を返してリクエスト処理を終了します。

(Ｏ)イメージマップファイル内の指定値を見直してください。

[client クライアントアドレス] map file リクエストURI値, line 行番号 syntax error: requires at least two fields

イメージマップファイルの行番号で示す行で構文エラーがあります。

エラーレベル：error

(Ｓ)ステータスコード「500　Internal Server Error」を返してリクエスト処理を終了します。

(Ｏ)エラーとなっている行の設定に対して，一つ以上の指定を追加してください。

[client クライアントアドレス] 詳細情報: cannot read directory for multi: ディレクトリ名

コンテントネゴシエーションをしようとするディレクトリを開けません。

エラーレベル：error

(Ｓ)ステータスコード「403 Forbidden」を返してリクエスト処理を終了します。

(Ｏ)詳細情報に示す原因について，システムの状態を確認してください。

[client クライアントアドレス] no acceptable variant: ファイル名

Webサーバによるコンテントネゴシエーションの結果，クライアントが受理できるタイプがありませんでした。

エラーレベル：error

(Ｓ)ステータスコード「406 Not Acceptable」を返してリクエスト処理を終了します。

[client クライアントアドレス] Negotiation: discovered file(s) matching request: ファイル名 (None could be negotiated).

ファイル名にマッチするファイルの中に，コンテントネゴシエーション可能なものがありませんでした。

エラーレベル：error

(Ｓ)ステータスコード「404 Not Found」を返してリクエスト処理を終了します。

(Ｏ)コンテントネゴシエーションさせたいファイルのアクセス権限を見直してください。

[client クライアントアドレス] client denied by server configuration: ファイル名

ファイル名に示すファイルへのアクセスがAllowまたはDenyディレクティブによって拒否されました。

エラーレベル：error

(Ｓ)ステータスコード「403　Forbidden」を返してリクエスト処理を終了します。

(Ｏ)アクセスを許可する場合には，設定を変更してください。

[client クライアントアドレス] 詳細情報: Could not open password file: ファイル名

AuthUserFileディレクティブで指定されたファイル名で示すパスワードファイルが開けません。

エラーレベル：error

(Ｓ)

AuthAuthoritativeディレクティブの値がoffの場合
クライアントから送信されてきたユーザ名はパスワードファイルに未登録であったと解釈して，処理を続行します。

そのほかの場合
ステータスコード「401　Authorization Required」を返してリクエスト処理を終了します。

(Ｏ)AuthUserFileディレクティブ指定値を見直してください。

[client クライアントアドレス] user ユーザ名 not found: リクエストURI値

リクエストURIにアクセスしようとしたクライアントが送信してきたユーザ名が，アクセスできるユーザ名一覧の中に見つかりませんでした。

エラーレベル：error

(Ｓ)ステータスコード「401　Authorization Required」を返してリクエスト処理を終了します。

(Ｏ)ユーザのアクセスを許可する場合には，設定に追加してください。

[client クライアントアドレス] user ユーザ名: authentication failure for "リクエストURI値": Password Mismatch

リクエストURIにアクセスしようとしたクライアントは認証エラーとなりました。

エラーレベル：error

(Ｓ)ステータスコード「401　Authorization Required」を返してリクエスト処理を終了します。

(Ｏ)パスワードを見直してください。

[client クライアントアドレス] access to リクエストURI値 failed, reason: unknown require directive: "識別子"

Requireディレクティブに対して不明な識別子が指定されていたため，正常に認証されませんでした。

エラーレベル：error

(Ｓ)ステータスコード「401　Authorization Required」を返してリクエスト処理を終了します。

(Ｏ)Requireディレクティブの指定を見直してください。

[client クライアントアドレス] access to リクエストURI値 failed, reason: user ユーザ名 not allowed access

認証に失敗したため，ユーザはリクエストURIにアクセスできません。

エラーレベル：error

(Ｓ)ステータスコード「401　Authorization Required」を返してリクエスト処理を終了します。

(Ｏ)ユーザのアクセスを許可する場合には，アクセス制御設定を変更してください。

[client クライアントアドレス] 詳細情報: Could not open group file: ファイル名

AuthGroupFileディレクティブで指定されたファイルを開けません。

エラーレベル：error

(Ｓ)リクエスト処理を続行します。

(Ｏ)AuthGroupFileディレクティブの設定を見直してください。

詳細情報: Invalid mime types config path ファイル名

TypesConfigディレクティブで指定されたファイルのパスが不正です。

エラーレベル：error

(Ｓ)Webサーバの起動処理を終了します（Webサーバを起動しません）。

(Ｏ)TypesConfigディレクティブの設定を見直してください。

詳細情報: could not open mime types config file ファイル名.

TypesConfigディレクティブで指定されたファイルが開けません。

エラーレベル：error

(Ｓ)Webサーバの起動処理を終了します（Webサーバを起動しません）。

(Ｏ)TypesConfigディレクティブの設定を見直してください。

Pre-configuration failed

コンフィグファイル読み込み前処理でエラーが発生しました。

エラーレベル：error

(Ｓ)Webサーバは起動処理を中断します。

(Ｏ)このメッセージのほかに出力されているメッセージのエラーの原因について見直してください。

詳細情報: unable to setup module trace:関数名

モジュールトレースを出力するための初期設定ができませんでした。

エラーレベル：error

(Ｓ)Webサーバは起動処理を中断します。

(Ｏ)_open_osfhandle()関数または_fdopen関数が返す詳細情報について見直してください。

詳細情報: apr_poll: (listen)

select()関数でエラーが発生しました。

エラーレベル：error

(Ｓ)サーバプロセスを終了します。

(Ｏ)select()関数が返す詳細情報について見直してください。

server reached MaxClients setting, consider raising the MaxClients setting

サーバプロセス数はMaxClientsディレクティブ設定値に到達しました。MaxClientsディレクティブを増加させることを検討してください。

エラーレベル：error

(Ｓ)Webサーバの起動を続行します。MaxClientsディレクティブ指定値を超えてはサーバプロセスの生成はされません。

(Ｏ)MaxClientsディレクティブ指定値を見直してください。MinSpareServersディレクティブで指定した数のアイドル状態のサーバプロセスを生成するためには，MaxClientsディレクティブでの指定値を増加させる必要があります。

child process プロセスID still did not exit, sending a SIGKILL

プロセスIDで示すサーバプロセスが終了していないため，SIGKILLシグナルを送信します。

エラーレベル：error

(Ｓ)Webサーバの停止または再起動処理を続行します。

(Ｏ)サーバプロセスが終了するまでお待ちください。

could not make child process プロセスID exit, attempting to continue anyway

プロセスIDで示すサーバプロセスを終了させることができませんでした。

エラーレベル：error

(Ｓ)未終了のサーバプロセスを無視してサーバの停止または再起動処理を続行します。

(Ｏ)未終了のサーバプロセスがあります。終了しない原因を調査し，終了させる必要があればシグナルを送付し強制的に終了させてください。

詳細情報: apr_accept: (client socket)

accept()関数でエラーが発生しました。

エラーレベル：error

(Ｓ)リクエストを受けたサーバプロセスを終了します。

(Ｏ)accept()関数が返す詳細情報について見直してください。

詳細情報: The HWS trace could not assign the segment(id=共有メモリ識別子).

共有メモリの割り当てができません。

エラーレベル：error

(Ｓ)処理を中断します。

(Ｏ)shmat()関数が返す詳細情報について見直してください。

詳細情報: HWS trace shmctl() IPC_STAT could not educe the current value(id=共有メモリ識別子).

共有メモリ識別子に対する共有メモリの状態を抽出できません。

エラーレベル：error

(Ｓ)処理を中断します。

(Ｏ)shmctl関数が返す詳細情報について見直してください。

詳細情報: HWS trace shmctl() IPC_SET could not set the value(id=共有メモリ識別子), you probably need to modify User or Group directives.

共有メモリ識別子に対する共有メモリの状態を設定できません。

エラーレベル：error

(Ｓ)処理を中断します。

(Ｏ)UserディレクティブまたはGroupディレクティブで指定したユーザが，システムに登録されていない場合に発生します。Userディレクティブ，Groupディレクティブの指定値を見直してください。

[client クライアントアドレス] Symbolic link not allowed: アクセスファイル

アクセスファイルで示すファイルはシンボリックリンクをたどることを許可されていません。

エラーレベル：error

(Ｓ)ステータスコード「403　Forbidden」をクライアントに返し，リクエスト処理を中断します。

(Ｏ) OptionsディレクティブのFollowSymLinksが有効であることを確認ください。FollowSymLinksが無効の場合には，SymLinksIfOwnerMatchが有効であるか確認してください。SymLinksIfOwnerMatchが有効である場合には，アクセスファイルまたはディレクトリの所有者がシンボリックリンクの所有者と同じことを確認してください。

詳細情報: socket: SetHandleInformation failed.(client クライアントアドレス)

ソケットのプロパティ設定に失敗しました。

エラーレベル：error

(Ｓ)Webサーバはリクエスト処理を中断します。

(Ｏ)SetHandleInformation()関数が返す詳細情報について見直してください。

詳細情報: 関数名 failed

関数名で示す関数でエラーが発生しました。

エラーレベル：error

(Ｓ)Webサーバは起動処理を中断します。

(Ｏ)関数が返す詳細情報について見直してください。

request queue reached HWSMaxQueueSize setting, consider raising the HWSMaxQueueSize setting

リクエストキューに保持されているリクエストの数が，HWSMaxQueueSizeディレクティブの設定値に到達しました。HWSMaxQueueSizeディレクティブの設定値を増加させることを検討してください。

エラーレベル：error

(Ｓ)処理を続行します。キューサイズを超えたクライアントからのリクエストの接続はWebサーバ側で切断されます。

(Ｏ)HWSMaxQueueSizeディレクティブの設定値を見直してください。

(5)　warnレベルのメッセージ

module モジュール名称 is already loaded, skipping

モジュールはすでにWebサーバに組み込まれているため，処理を行いません。

エラーレベル：warn

(Ｓ)Webサーバは起動処理を続行します。

(Ｏ)LoadModuleディレクティブの記述内容を見直してください。

pid file プロセスID格納ファイル名 overwritten -- Unclean shutdown of previous server run?

プロセスIDを格納しているファイルを上書きしました。前回Webサーバが正常にシャットダウンされなかったおそれがあります。Webサーバが正常にシャットダウンされた場合は，プロセスID格納ファイルは消去されます。

エラーレベル：warn

(Ｓ)Webサーバは起動処理を続行します。

(Ｏ)未終了のWebサーバがないかどうか確認してください。PidFileディレクティブで指定したファイルには，Webサーバの起動時に制御プロセスのプロセスIDが格納されます。複数のWebサーバでPidFileディレクティブで指定したファイルが重複した場合にも，このメッセージは出力されます。複数のWebサーバで共用していないか確認してください。

詳細情報: apr_socket_opt_set: (TCP_NODELAY)

IPプロトコルレベルのオプションTCP_NODELAY設定時にエラーが発生しました。

エラーレベル：warn

(Ｓ)WebサーバはTCP_NODELAYオプションは設定しないで，起動処理を続行します。Nagleバッファリングアルゴリズムは有効です。

(Ｏ)setsockopt()関数が返す詳細情報について見直してください。

詳細情報: getsockname failed

getsockname()に失敗しました。

エラーレベル：warn

(Ｓ)サーバスレッドはリクエスト待ち状態となります。

(Ｏ)getsockname()関数が返す詳細情報について見直してください。

詳細情報: getpeername failed

getpeername()に失敗しました。

エラーレベル：warn

(Ｓ)サーバスレッドはクライアントのソケット情報を設定しないで，リクエスト処理を続行します。

(Ｏ)getpeername()関数が返す詳細情報について見直してください。

Server ran out of threads to serve requests. Consider raising the ThreadsPerChild setting

リクエストを処理するサーバスレッドが不足しています。

エラーレベル：warn

(Ｓ)リクエスト処理を続行します。

(Ｏ)ThreadsPerChildディレクティブ値の増加を検討してください。

詳細情報: No installed ConfigArgs for the service "サービス名称", using Server defaults.

サービス名称で示すサービスのレジストリエントリConfigArgsの内容を取得できないため，デフォルトで起動します。

エラーレベル：warn

(Ｓ)Webサーバは起動処理を続行します。

(Ｏ)サービス名称のレジストリキー下に，レジストリエントリConfigArgsがあるかを確認してください。

NameVirtualHost ホスト名:ポート番号 has no VirtualHosts

NameVirtualHostディレクティブが定義されたホスト名，ポート番号はVirtualHostディレクティブで使用されていません。

エラーレベル：warn

(Ｓ)NameVirtualHostディレクティブの指定を無視し，Webサーバ起動処理を続行します。

(Ｏ)不要なNameVirtualHostディレクティブは削除してください。NameVirtualHostディレクティブは，同一のホスト名，ポート番号に対して複数のVirtualHostディレクティブを定義する場合に指定してください。

_default_ VirtualHost overlap on port ポート番号, the first has precedence

デフォルトバーチャルホストはポート番号についてオーバラップしました。最初に指定したバーチャルホストが有効になります。

エラーレベル：warn

(Ｓ)最初に指定したバーチャルホスト以外は無視し，Webサーバ起動処理を続行します。

(Ｏ)デフォルトバーチャルホスト(VirtualHostディレクティブで*，255.255.255.255または_default_を指定する)は，同じポートについて複数指定できません。デフォルトバーチャルホストの指定について見直してください。

VirtualHost ホスト名:ポート番号 overlaps with VirtualHost ホスト名:ポート番号, the first has precedence, perhaps you need a NameVirtualHost directive

ホスト名：ポート番号で指定されたバーチャルホストはオーバラップしました。最初に指定したバーチャルホストが有効になります。

エラーレベル：warn

(Ｓ)最初に指定したバーチャルホスト以外は無視し，Webサーバ起動処理を続行します。

(Ｏ)ホスト名：ポート番号に同じバーチャルホストを指定する場合には，該当するホスト名，ポート番号についてNameVirtualHostディレクティブを定義してください。

httpsd: gethostname() failed to determine ServerName

gethostname()によって，ServerNameを決定しようとしましたが失敗しました。

エラーレベル：warn

(Ｓ)Webサーバのアドレスは127.0.0.1とします。

(Ｏ)ホスト名が取得できない原因について見直してください。

PassEnv variable 環境変数 was undefined

PassEnvディレクティブで指定した環境変数は環境変数として定義されていません。

エラーレベル：warn

(Ｓ)処理を続行します。

(Ｏ)環境変数を設定してください。

The ディレクティブ directive in コンフィグファイル at line 行番号 will probably never match because it overlaps an earlier ディレクティブ.

同一のURLに適用可能なディレクティブを重複して指定しているため，後の指定は適用されません。

エラーレベル：warn

(Ｓ)Webサーバは起動処理を続行します。

(Ｏ)表示されている行のディレクティブの設定を見直してください。

詳細情報: Cannot get media type from 'メディアタイプ'

MIMEのメディアタイプが正しく取得できません。

エラーレベル：warn

(Ｓ)リクエスト処理を続行します。

(Ｏ)MIMEの設定を見直してください。

詳細情報: Cannot get media parameter.

MIMEのメディアパラメータが正しく取得できません。

エラーレベル：warn

(Ｓ)リクエスト処理を続行します。

(Ｏ)MIMEの設定を見直してください。

詳細情報: Cannot get media subtype.

MIMEのメディアサブタイプが正しく取得できません。

エラーレベル：warn

(Ｓ)リクエスト処理を続行します。

(Ｏ)MIMEの設定を見直してください。

詳細情報: mod_mime: analyze_ct: cannot get media type from 'メディアタイプ'

MIMEのメディアタイプが正しく取得できません。

エラーレベル：warn

(Ｓ)リクエスト処理を続行します。

(Ｏ)MIMEの設定を見直してください。

詳細情報: sigaction(シグナル)

シグナルに対するアクションの変更時にエラーが発生しました。
シグナルの種類を次に示します。
SIGSEGV SIGBUS SIGABRT SIGILL SIGTERM SIGINT
SIGXCPU SIGXFSZ SIGPIPE SIGHUP SIGUSR1 SIGUSR2

エラーレベル：warn

(Ｓ)Webサーバは起動処理を続行します。

(Ｏ)sigaction()関数が返す詳細情報について見直してください。

long lost child came home! (pid プロセスID)

gracefulによるサーバの再起動後，制御プロセスが監視対象以外のプロセスを終了しました。

エラーレベル：warn

(Ｓ)制御プロセスはスコアボードファイルを使用してサーバプロセスの状態を管理しています。gracefulによる再起動後に，終了したプロセスが管理しているプロセスに該当しない場合，このメッセージを出力します。

(Ｏ)終了したプロセスが制御プロセスの監視対象外である原因について見直してください。例えば，gcacheサーバは，制御プロセスの監視対象外のプロセスです。サーバプロセスは制御プロセスの監視対象であり，サーバプロセスに対してこのメッセージが出力された場合には，何らかの原因でサーバプロセスが監視対象から外れたことになります。

詳細情報: killpg SIGTERM

Webサーバを終了させるために制御プロセスはkillpg()関数によってサーバプロセスに対してシグナルSIGTERMを送信しましたがエラーが発生しました。

エラーレベル：warn

(Ｓ)制御プロセスは，数秒後にサーバプロセスそれぞれに対してSIGTERMシグナルを送信しサーバプロセス終了処理を続行します。

(Ｏ)killpg()関数が返す詳細情報について見直してください。

詳細情報: apr_socket_opt_set: (TCP_NODELAY)

IPプロトコルレベルのオプションTCP_NODELAY設定時にエラーが発生しました。

エラーレベル：warn

(Ｓ)TCP_NODELAYオプションは設定しないでWebサーバの起動処理を続行します。Nagleバッファリングアルゴリズムは有効です。

(Ｏ)setsockopt()関数が返す詳細情報について見直してください。

詳細情報: write pipe_of_death

サーバプロセスの終了要求で使用するパイプへの書き込みに失敗しました。

エラーレベル：warn

(Ｓ)サーバプロセス終了要求処理を中断します。

(Ｏ)詳細情報について見直してください。

詳細情報: get socket to connect to listener

サーバプロセスの終了要求で使用するソケット生成に失敗しました。

エラーレベル：warn

(Ｓ)サーバプロセス終了要求処理を中断します。

(Ｏ)socket()関数が返す詳細情報について見直してください。

詳細情報: set timeout on socket to connect to listener

サーバプロセスの終了要求で使用するソケットのタイムアウト設定に失敗しました。

エラーレベル：warn

(Ｓ)サーバプロセス終了要求処理を中断します。

(Ｏ)詳細情報について見直してください。

詳細情報: connect to listener on Webサーバアドレス:ポート番号

サーバプロセス終了要求処理中，Webサーバへの接続に失敗しました。

エラーレベル：warn

(Ｓ)サーバプロセス終了要求処理を中断します。

(Ｏ)詳細情報について見直してください。

詳細情報: The HWS trace could not obtain the shared memory identifier from the file ファイル名 specified in the HWSTraceIdFile.

HWSTraceIdFileディレクティブで指定したファイル名で示すファイルから共有メモリ識別子を取り出せません。

エラーレベル：warn

(Ｓ)処理を続行します。

(Ｏ)詳細情報で示す原因について見直してください。

The format of the shared memory identifier specified in the HWSTraceIdFile is invalid.

HWSTraceIdFileディレクティブで指定したファイルの共有メモリ識別子はフォーマットが不正です。

エラーレベル：warn

(Ｓ)処理を続行します。

(Ｏ)共有メモリ識別子について見直してください。

詳細情報: HWS trace shmctl() IPC_RMID could not remove the shared memory segment(id=共有メモリ識別子).

共有メモリを削除できません。

エラーレベル：warn

(Ｓ)処理を続行します。

(Ｏ)詳細情報で示す原因について見直してください。

詳細情報: killpg SIGUSR1

gracefulによる再起動または計画停止させるために制御プロセスはkillpg()関数によってサーバプロセスに対してシグナルSIGUSR1を送信しましたがエラーが発生しました。

エラーレベル：warn

(Ｓ)制御プロセスは，再起動または計画停止処理を続行します。

(Ｏ)killpg()関数が返す詳細情報について見直してください。

[client クライアントアドレス] authenticated user 'ユーザ名称' not a member of any groups, so 'file-group' requirement cannot succeed for file 'ファイル名称'

認証ユーザはどのグループのメンバでもないため，file-group要求は失敗しました。

エラーレベル：warn

(Ｓ) リクエスト処理を続行します。

詳細情報: killpg SIGHUP

Webサーバを再起動させるために制御プロセスはkillpg()関数によってサーバプロセスに対してシグナルSIGHUPを送信しましたがエラーが発生しました。

エラーレベル：warn

(Ｓ)制御プロセスは，数秒後にサーバプロセスそれぞれに対してSIGTERMシグナルを送信し，サーバプロセス終了処理を続行します。

(Ｏ)killpg()関数が返す詳細情報について見直してください。

MaxClients can't be changed by restart. Original was used

MaxClientsディレクティブは，gracefulまたはrestartによる再起動時には変更できません。

エラーレベル：warn

(Ｓ)Webサーバは起動時のMaxClientsディレクティブ値を設定し，再起動処理を続行します。

(Ｏ)再起動時には，MaxClientsディレクティブ値を変更しないでください。

child process プロセスID still did not exit, sending a SIGTERM

プロセスIDで示すサーバプロセスが終了していないため，SIGTERMシグナルを送信します。

エラーレベル：warn

(Ｓ)Webサーバの停止または再起動処理を続行します。

(Ｏ)サーバプロセスに対してSIGTERMシグナルがブロックされていないか確認し，サーバプロセスが終了するまでお待ちください。

(6)　noticeレベルのメッセージ

cannot use a full URL in a 401 ErrorDocument directive --- ignoring!

ErrorDocumentディレクティブでエラーステータスコードに401を指定したときにはフルURL指定はできません。

エラーレベル：notice

(Ｓ)Webサーバは起動処理を続行します。

(Ｏ)エラーステータスコードに401を指定したときは，テキストまたはローカルURLを指定してください。

Child プロセスID: Listening on port ポート番号.

ポート番号に示すポートへのリクエストを受け付けます。

エラーレベル：notice

(Ｓ)リクエスト受付処理を開始します。

Child プロセスID: Acquired the start mutex.

サーバプロセス排他用のロックを獲得しました。

エラーレベル：notice

(Ｓ)サーバプロセスは起動処理を続行します。

Child プロセスID: Starting スレッド数 worker threads

スレッド数に示す数のサーバスレッドを生成します。

エラーレベル：notice

(Ｓ)サーバプロセスはサーバスレッド生成を開始します。

Child プロセスID: Exit event signaled. Child process is ending.

サーバプロセスに終了イベントが通知されました。

エラーレベル：notice

(Ｓ)サーバプロセスの終了処理を開始します。

Child プロセスID: Released the start mutex

サーバプロセス排他用のロックを解放しました。

エラーレベル：notice

(Ｓ)サーバプロセスは終了処理を続行します。

Child プロセスID: Waiting for 生成サーバスレッド数 worker threads to exit.

サーバプロセスはサーバスレッドの終了待ち状態です。

エラーレベル：notice

(Ｓ)サーバプロセスはサーバスレッドの終了を待ちます。

Child プロセスID: Terminating 未終了のサーバスレッド数 threads that failed to exit.

終了しないサーバスレッドを強制的に終了させます。

エラーレベル：notice

(Ｓ)サーバプロセスは終了処理を続行します。

Child プロセスID: All worker threads have exited.

すべてのサーバスレッドが終了しました。

エラーレベル：notice

(Ｓ)サーバプロセスは終了処理を続行します。

Parent: Created child process プロセスID

サーバプロセスを生成しました。

エラーレベル：notice

(Ｓ)Webサーバは起動処理を続行します。

Parent: Received shutdown signal -- Shutting down the server.

制御プロセスに停止イベントが通知されました。

エラーレベル：notice

(Ｓ)Webサーバは停止処理を開始します。

Parent: Received restart signal -- Restarting the server.

制御プロセスに再起動イベントが通知されました。

エラーレベル：notice

(Ｓ)Webサーバは再起動処理を開始します。

Parent: child process exited with status 終了コード -- Restarting.

サーバプロセスは終了コードで終了しました。サーバプロセスを再起動します。

エラーレベル：notice

(Ｓ)Webサーバは再起動処理を開始します。

Parent: Child process exited successfully.

サーバプロセスは正常に終了しました。

エラーレベル：notice

(Ｓ)Webサーバは停止または計画停止処理を続行します。

Parent: Forcing termination of child process ハンドル番号

制御プロセスが設定した停止または計画停止イベントで終了しないサーバプロセスを強制的に終了させます。

エラーレベル：notice

(Ｓ)Webサーバは停止または計画停止処理を続行します。

(Ｏ)サーバプロセスが終了しない要因を見直してください。

Child プロセスID: Child process is running

サーバプロセスの起動処理が開始されました。

エラーレベル：notice

(Ｓ)サーバプロセスは起動処理を続行します。

Child プロセスID: Child process is exiting

サーバプロセスを終了します。

エラーレベル：notice

(Ｓ)サーバプロセスは終了処理を続行します。

サーバ名 configured -- resuming normal operations

Webサーバの起動が開始されました。

エラーレベル：notice

(Ｓ)Webサーバは起動処理を続行します。

Server built: Webサーバの構築された時刻

起動されたWebサーバの構築時刻を示します。

エラーレベル：notice

(Ｓ)Webサーバの構築時刻を出力し，起動処理を続行します。

Child サーバプロセスID: Graceful exit event signaled. Child process is ending.

サーバプロセスに計画停止イベントが通知されました。

エラーレベル：notice

(Ｓ)サーバプロセスの計画停止処理を開始します。

Parent: Received graceful stop signal -- Shutting down the server gracefully.

制御プロセスに計画停止イベントが通知されました。

エラーレベル：notice

(Ｓ)Webサーバは計画停止処理を開始します。

[client クライアントアドレス] {child process プロセスID|server thread スレッドID}:forcing termination of request "リクエストライン"

計画停止要求受付から強制停止時間が経過したため，リクエストラインに示すリクエスト処理を中断しました。

エラーレベル：notice

(Ｓ)Webサーバはリクエスト処理を中断して，停止処理を続行します。

caught シグナル, shutting down

Webサーバを停止しました。
シグナルの種類を次に示します。
SIGTERM SIGUSR2 SIGXCPU SIGXFSZ

エラーレベル：notice

(Ｓ)Webサーバを停止します。

Graceful restart requested, doing restart

Webサーバに対してgracefulによる再起動が要求されました。

エラーレベル：notice

(Ｓ)gracefulによる再起動処理を開始します。

SIGHUP received. Attempting to restart

WebサーバはシグナルSIGHUPによる再起動要求を受信しました。

エラーレベル：notice

(Ｓ)Webサーバは再起動処理を開始します。

Graceful stop requested, doing graceful stop

Webサーバに対して計画停止が要求されました。

エラーレベル：notice

(Ｓ)計画停止処理を開始します。

child pid プロセスID exit signal シグナル意味 (シグナル番号)〔, possible coredump in コア出力先ディレクトリ〕

サーバプロセスは，シグナル番号で示すシグナルで終了しました。出力可能である場合には，コア出力先ディレクトリにコアを出力します。

エラーレベル：notice

(Ｓ)Webサーバは処理を続行します。

(Ｏ)保守員に連絡してください。

seg fault or similar nasty error detected in the parent process

制御プロセスを終了させるシグナルを受信しました。

エラーレベル：notice

(Ｓ)制御プロセスを終了します。

(Ｏ)保守員に連絡してください。

Child サーバプロセスID: Parent process exited. Child process is ending.

制御プロセスの終了を検知しました。

エラーレベル：notice

(Ｓ)サーバプロセスの終了処理を開始します。

Parent 制御プロセスID: Using config file "コンフィグファイル名"

制御プロセスのプロセスIDおよび起動処理で使用したコンフィグファイル名を示します。

エラーレベル：notice

(Ｓ)Webサーバは起動処理を続行します。

The server started by non-root user. User and Group directives is not used.

一般ユーザで起動しているため，UserディレクティブとGroupディレクティブは使用しません。

エラーレベル：notice

(Ｓ)Webサーバは起動処理を続行します。

(7)　infoレベルのメッセージ

[client クライアントアドレス] 詳細情報: core_output_filter: writing data to the network

クライアントへのデータ送信処理中にエラーが発生しました。

エラーレベル：info

(Ｓ)Webサーバからクライアントへのデータ送信処理を中断します。

(Ｏ)詳細情報について見直してください。

詳細情報: apr_socket_addr_get(APR_LOCAL)

Webサーバのソケット情報を取得できませんでした。

エラーレベル：info

(Ｓ)Webサーバはリクエスト処理を中断します。

(Ｏ)getsockname()関数が返す詳細情報について見直してください。

詳細情報:apr_socket_addr_get(APR_REMOTE)

クライアントのソケット情報を取得できませんでした。

エラーレベル：info

(Ｓ)Webサーバはリクエスト処理を中断します。

(Ｏ)getpeername()関数が返す詳細情報について見直してください。

No ExecCGI or Open verb found for files of type '拡張子'.

レジストリキーExecCGI，Openを検索しましたが，スクリプトの拡張子に関連づけられているインタプリタは見つかりませんでした。

エラーレベル：info

(Ｓ)"#!"行に指定されたインタプリタを用いてスクリプト実行処理を続行します。

(Ｏ)スクリプトの拡張子とそれに関連づけられているプログラムについて見直してください。

詳細情報: select failed

サーバプロセスのselect()でエラーが発生しました。

エラーレベル：info

(Ｓ)リクエスト受付処理を続行します。

(Ｏ)select()関数が返す詳細情報について見直してください。

Parent: Duplicating socket fd番号 and sending it to child process プロセスID

制御プロセスはソケットを複製し，サーバプロセスに送付します。

エラーレベル：info

(Ｓ)Webサーバは起動処理を続行します。

Using ConfigArgs of the installed service "サービス名称".

サービス名称で示すサービスのレジストリエントリConfigArgsを起動オプションに使用します。

エラーレベル：info

(Ｓ)Webサーバは起動処理を続行します。

removed PID file ファイル名 (pid=制御プロセスID)

制御プロセスID格納ファイルを削除しました。

エラーレベル：info

(Ｓ)Webサーバは停止処理を続行します。

No ConfigArgs registered for サービス名称, perhaps this service is not installed?

サービス名称に示すサービスのレジストリエントリConfigArgsがありません。

エラーレベル：info

(Ｓ)Webサーバは起動処理を続行します。

(Ｏ)サービスがインストールされているか確認してください。

[client クライアントアドレス] client sent an unrecognized expectation value of Expect: ヘッダ値

クライアントは，Expectヘッダ値にサポートしていない値を指定してリクエストを送付したため，リクエスト処理を続行できません。

エラーレベル：info

(Ｓ)ステータスコード「417　Expectation Failed」をクライアントに返し，リクエスト処理を中断します。

(Ｏ)Expectヘッダ値には100-continueだけが指定できます。Expectヘッダを見直してください。

The HWS trace created shared memory segment #共有メモリ識別子.

内部トレース用の共有メモリを確保しました。

エラーレベル：info

(Ｓ)処理を続行します。

The HWS trace output the log of the process (pid=プロセスID) into the file ファイル名 specified in the HWSTraceLogFile.

HWSTraceLogFileディレクティブで指定したファイル名に示すファイルへ，プロセスIDに示すプロセスの共有メモリの内容を出力しました。

エラーレベル：info

(Ｓ)ファイルへの出力を正常に終了して続行します。

Child プロセスID: Accept thread exiting.

リクエスト受付スレッドを終了します。

エラーレベル：info

(Ｓ)サーバプロセスは終了処理を続行します。

server seems busy, (you may need to increase StartServers, or Min/MaxSpareServers), spawning 生成予定のサーバプロセス数 children, there are 存在するアイドル状態のサーバプロセス数 idle, and 存在するサーバプロセス数 total children

Webサーバはリクエスト処理でビジー状態です。StartServersディレクティブ値を増加させるかまたはMin/MaxSpareServersディレクティブ値を見直す必要があります。生成予定のサーバプロセス数は，生成予定のサーバプロセス数に示す数です。現状のアイドル状態のサーバプロセス数は，存在するアイドル状態のサーバプロセス数に示す数です。現状の全体のサーバプロセス数は，存在するサーバプロセス数に示す数です。

エラーレベル：info

(Ｓ)Webサーバの起動を続行します。MinSpareServersディレクティブで指定した数のアイドルサーバに到達するまで，1，2，4，8，16，32個ずつ生成します。生成する数が8個以上になるとこのメッセージが出力されます。

[client クライアントアドレス] no AuthGroupFile, so 'file-group' requirement cannot succeed for file 'ファイル名'

AuthGroupFileが指定されていないため，file-group要求は成功しません。

エラーレベル：info

(Ｓ)リクエスト処理を続行します。

[info] 詳細情報: Socket Input: timed out (接続元IPアドレス:ポート番号 --> 接続先IPアドレス:ポート番号)(サーバプロセスID)

クライアントまたはバックエンドサーバとの受信処理でタイムアウトしました。次のどれかの待ち時間を経過しました。

クライアントからのリクエスト受信（コネクション確立後，HTTPプロトコルの受信）中にデータを受信しなくなった場合の待ち時間

リバースプロキシを使用している場合の，バックエンドサーバへのリクエスト送信後からレスポンス受信までの待ち時間

リバースプロキシを使用している場合の，バックエンドサーバからのレスポンス受信中にデータを受信しなくなった場合の待ち時間

エラーレベル：info

(Ｓ)処理を続行します。

(Ｏ)Timeoutディレクティブで指定した時間を経過したため，このメッセージが出力されました。Timeoutディレクティブでの指定値を見直してください。

[info] 詳細情報: Socket Output: timed out (接続先IPアドレス:ポート番号 <-- 接続元IPアドレス:ポート番号)(サーバプロセスID)

クライアントまたはバックエンドサーバとの送信処理でタイムアウトしました。次のどちらかの待ち時間を経過しました。

クライアントからのリクエスト受信（コネクション確立後，HTTPプロトコルの受信）中にデータを受信しなくなった場合の待ち時間

リバースプロキシを使用している場合の，バックエンドサーバへのリクエスト送信後からレスポンス受信までの待ち時間

リバースプロキシを使用している場合の，バックエンドサーバからのレスポンス受信中にデータを受信しなくなった場合の待ち時間

エラーレベル：info

(Ｓ)処理を続行します。

(Ｏ)Timeoutディレクティブで指定した時間を経過したため，このメッセージが出力されました。Timeoutディレクティブでの指定値を見直してください。

[client クライアントアドレス] The server did not send a status-code ステータスコード response because the server already sent an error response to the client.

すでにエラーレスポンスをクライアントに送信しているため，ステータスコードのレスポンスは送信しません。

エラーレベル：info

(Ｓ)処理を続行します。

(8)　レベルなしのメッセージ

httpsd: module "モジュール名" is not compatible with this version (found モジュールのバージョン番号, need 互換性のあるバージョン番号).

追加しようとしたモジュールは，サーバとの互換性がありません。

エラーレベル：なし

(Ｓ)Webサーバは起動処理を中断します。

(Ｏ)互換性のあるバージョン番号に示したバージョンのモジュールを使用してください。

Please contact the vendor for the correct version.

サーバと互換性のあるバージョンのモジュールについてベンダに問い合わせてください。

エラーレベル：なし

(Ｓ)Webサーバは起動処理を中断します。

(Ｏ)このメッセージのほかに出力されているメッセージのモジュールについて，サーバと互換性のあるバージョンのモジュールを入手してください。

httpsd: could not open document config file コンフィグファイル名

コンフィグファイル名に示すファイルを開けませんでした。

エラーレベル：なし

(Ｓ)Webサーバは起動処理を中断します。

(Ｏ)コンフィグファイル名について見直してください。

Syntax error on line 行番号 of ファイル名:
エラーメッセージ

ファイル名，行番号に示す位置に構文エラーがあります。

エラーレベル：なし

(Ｓ)Webサーバは起動処理を中断します。

(Ｏ)構文エラーとなった行をエラーメッセージについて見直してください。

Warning: DocumentRoot [ディレクトリ名] does not exist

DocumentRootディレクティブで指定されたディレクトリが見つかりません。

エラーレベル：なし

(Ｓ)Webサーバは起動処理を続行します。

(Ｏ)<VirtualHost>ブロック内で指定したDocumentRootディレクティブについて見直してください。

Cannot resolve host name ホスト名

BindAddressディレクティブの指定値が不正です。

エラーレベル：なし

(Ｓ)Webサーバは起動処理を中断します。

(Ｏ)BindAddressディレクティブで指定したIPアドレスについて見直してください。

Host ホスト名 has multiple addresses --- you must choose one explicitly.

BindAddressディレクティブで指定したホスト名から一つのIPアドレスを特定できませんでした。

エラーレベル：なし

(Ｓ)Webサーバは起動処理を中断します。

(Ｏ)BindAddressディレクティブはIPアドレスで指定してください

詳細情報: Couldn't start ErrorLog process

エラーログを出力するためのプロセス生成に失敗しました。

エラーレベル：なし

(Ｓ)Webサーバは起動処理を中断します。

(Ｏ)ErrorLogディレクティブを詳細情報について見直してください。

詳細情報: Couldn't start RequestLog process

リクエストログを出力するためのプロセス生成に失敗しました。

エラーレベル：なし

(Ｓ)Webサーバは起動処理を中断します。

(Ｏ)HWSRequestLogディレクティブを詳細情報について見直してください。

詳細情報: httpsd: Invalid error log path ファイル名.

ErrorLogディレクティブで指定したファイルパスが不正です。

エラーレベル：なし

(Ｓ)Webサーバは起動処理を中断します。

(Ｏ)ErrorLogディレクティブを詳細情報について見直してください。

詳細情報: httpsd: Invalid request log path ファイル名.

HWSRequestLogディレクティブで指定したファイルパスが不正です。

エラーレベル：なし

(Ｓ)Webサーバは起動処理を中断します。

(Ｏ)HWSRequestLogディレクティブを詳細情報について見直してください。

詳細情報: httpsd: could not open error log file ファイル名.

エラーログファイルをオープンできませんでした。

エラーレベル：なし

(Ｓ)Webサーバは起動処理を中断します。

(Ｏ)ErrorLogディレクティブを詳細情報について見直してください。

詳細情報: httpsd: could not open request log file ファイル名.

リクエストログファイルをオープンできませんでした。

エラーレベル：なし

(Ｓ)Webサーバは起動処理を中断します。

(Ｏ)HWSRequestLogディレクティブを詳細情報について見直してください。

piped_log_spawn: unable to setup child process 'ログ出力プログラム': エラーメッセージ

ログを出力するためのプロセスの属性初期設定ができませんでした。

エラーレベル：なし

(Ｓ)ログ出力用のプロセス生成処理を中断します。

(Ｏ)エラーメッセージについて見直してください。

unable to start piped log program 'ログ出力プログラム': エラーメッセージ

ログ出力プログラムによるログ出力を開始できませんでした。

エラーレベル：なし

(Ｓ)ログ出力用のプロセス生成処理を中断します。

(Ｏ)エラーメッセージについて見直してください。

piped log program 'ログ出力プログラム' failed unexpectedly

ログ出力プログラムに予期しないエラーが発生しました。

エラーレベル：なし

(Ｓ)ログ出力用のプロセスを再生成します。

piped_log_maintenance: unable to respawn 'ログ出力プログラム': エラーメッセージ

ログ出力用のプロセス再生成処理に失敗しました。

エラーレベル：なし

(Ｓ)ログ出力用のプロセス生成処理を中断します。

(Ｏ)エラーメッセージについて見直してください。

Ouch! malloc failed in 詳細情報

メモリの確保に失敗しました。

エラーレベル：なし

(Ｓ)メモリが不足している状態です。Webサーバプロセスは終了します。

(Ｏ)メモリ使用量について，システムの状態を確認してください。

WARNING: ThreadsPerChild of ディレクティブ値 exceeds ThreadLimit value of 上限値 threads, lowering ThreadsPerChild to 上限値. To increase, please see the ThreadLimit directive.

ThreadsPerChildディレクティブ値が上限値を超えています。

エラーレベル：なし

(Ｓ)WebサーバはThreadsPerChildディレクティブ値に上限値を設定して，起動処理を続行します。

(Ｏ)ThreadsPerChildディレクティブ値を見直してください。

WARNING: Require ThreadsPerChild > 0, setting to 1

ThreadsPerChildディレクティブに不正な値が指定されています。

エラーレベル：なし

(Ｓ)WebサーバはThreadsPerChildディレクティブ値に1を設定して，起動処理を続行します。

(Ｏ)ThreadsPerChildディレクティブ値を見直してください。

WARNING: detected MinSpareServers set to non-positive.
Resetting to 1 to avoid almost certain Server failure.
Please read the documentation.

MinSpareServersディレクティブに不正な値が指定されています。

エラーレベル：なし

(Ｓ)WebサーバはMinSpareServersディレクティブ値に１を設定して，起動処理を続行します。

(Ｏ)MinSpareServersディレクティブ値を見直してください。

WARNING: MaxClients of ディレクティブ値 exceeds compile time limit of 上限値 servers,
lowering MaxClients to 上限値.

MaxClientsディレクティブ値が上限値を超えています。

エラーレベル：なし

(Ｓ)WebサーバはMaxClientsディレクティブ値に上限値を設定して，起動処理を続行します。

(Ｏ)MaxClientsディレクティブ値を見直してください。

WARNING: Require MaxClients > 0, setting to 1

MaxClientsディレクティブに不正な値が指定されています。

エラーレベル：なし

(Ｓ)WebサーバはMaxClientsディレクティブ値に１を設定して，起動処理を続行します。

(Ｏ)MaxClientsディレクティブ値を見直してください。

httpsd: bad user name ユーザ名

指定されたユーザはシステムに登録されていません。

エラーレベル：なし

(Ｓ)Webサーバは起動処理を中断します。

(Ｏ)システムに登録されたユーザ名を指定してください。

httpsd: bad group name グループ名

指定されたグループはシステムに登録されていません。

エラーレベル：なし

(Ｓ)Webサーバは起動処理を中断します。

(Ｏ)システムに登録されたグループ名を指定してください。

詳細情報: sending signal to server

Webサーバへのシグナル送信に失敗しました。

エラーレベル：なし

(Ｓ)Webサーバへのシグナル送信処理を中断します。

(Ｏ)kill()関数が返す詳細情報について見直してください。

詳細情報: Error retrieving pid file PID格納ファイル名

PID格納ファイルの検索に失敗しました。

エラーレベル：なし

(Ｓ)Webサーバへのシグナル送信処理を中断します。

(Ｏ)詳細情報について見直してください。

Ouch! 関数名1 failed : (エラーコード) 詳細情報 (関数名2)(プロセスID)

関数名1の実行に失敗しました。

エラーレベル：なし

(Ｓ)Webサーバのプロセスは終了します。

(Ｏ)関数名1が返す詳細情報について見直してください。エラーの原因の一つとして，Windowsが内部的に使用しているデスクトップヒープの不足が考えられます。

7.2.2　SSLについてのメッセージ

allocate error

SSL処理に必要なメモリの確保に失敗しました。

エラーレベル：error

(Ｓ)SSLによる接続ができません。

(Ｏ)システムリソースの使用状況を確認してください。

[client クライアントIPアドレス] [port クライアントポート番号] allocate error

SSL処理に必要なメモリの確保に失敗しました。

エラーレベル：error

(Ｓ)SSLによる接続ができません。

(Ｏ)システムリソースの使用状況を確認してください。

Attempt to reinitialise SSL for server ホスト名

ホストの設定を再初期化しようとしました。

エラーレベル：crit

(Ｓ)Webサーバを起動しません。

(Ｏ)バーチャルホスト内のSSLの設定を確認してください（少なくとも一つ以上のSSL関連ディレクティブは設定しなければなりません）。

Bad password for the private key

SSLCertificateKeyPasswordディレクティブで指定されたパスワードファイルから正しいパスワードを読み込めませんでした。

エラーレベル：crit

(Ｓ)Webサーバを起動しません。

(Ｏ)正しいパスワードをパスワードファイルに設定してください。

Can't open certificate file Webサーバ証明書ファイル, nor 内部生成パス名

証明書を読み込めません。

エラーレベル：crit

(Ｓ)Webサーバを起動しません。

(Ｏ)SSLCertificateFileディレクティブの設定値を確認してください。

Could not get lastUpdate field in CRL: ファイル名

CRLの発行日が取得できませんでした。

エラーレベル：crit

(Ｓ)Webサーバを起動しません。

(Ｏ)CRLが正しく作成されているか，正しくダウンロードされたか確認してください。

Could not load the certificate file.

サーバ証明書ファイルの読み込みに失敗しました。

エラーレベル：crit

(Ｓ)Webサーバを起動しません。

(Ｏ)SSLCertificateFileディレクティブの設定値を確認してください。

Could not read the private key file

サーバ秘密鍵ファイルが読み込めませんでした。

エラーレベル：なし

(Ｓ)処理を終了します。

(Ｏ)SSLCertificateKeyFileディレクティブの設定値を確認してください。

Could not setup a new lock.

ロック処理の初期化に失敗しました。

エラーレベル：crit

(Ｓ)Webサーバを起動しません。

(Ｏ)システムリソースの使用状況を確認してください。

CRL expired, but CRL check passed: issuer=発行者名,serial=シリアル番号

CRLの次回発行日を過ぎていますが，CRLにはクライアント証明書のシリアル番号の記載がなく，また，SSLCRLAuthoritativeディレクティブにOffが設定されているため，クライアントのアクセスを許可しました。

エラーレベル：warn

(Ｓ)処理を継続します。

(Ｏ)CRLを更新してください。

CRL expired, but serial number was found in CRL: issuer=発行者名,serial=シリアル番号

CRLの次回発行日を過ぎていますが，CRLにクライアント証明書のシリアル番号の記載があったため，SSLハンドシェイクに失敗しました。

エラーレベル：error

(Ｓ)SSLハンドシェイクに失敗したため，アクセスを拒否します。

(Ｏ)CRLを更新してください。

CRL expired: issuer=発行者名

CRLの次回発行日を過ぎていたため，SSLハンドシェイクに失敗しました。

エラーレベル：error

(Ｓ)SSLハンドシェイクに失敗したため，アクセスを拒否します。

(Ｏ)CRLを更新してください。

CRL expired: ファイル名

次回発行日を過ぎたCRLを読み込みました。

エラーレベル：warn

(Ｓ)処理を続行します。クライアント認証の際には，SSLCRLAuthoritativeディレクティブ設定値に従い処理します。

(Ｏ)新規CRLを取得してください。

CRL is a duplicate: ファイル名 will not be used in server ホスト名:ポート番号

一つのCAから発行された（同じSubjectを持つ）CRLを複数読み込みましたので，表示されたCRLファイルは使用しません。

エラーレベル：warn

(Ｓ)処理を続行します。

(Ｏ)一つのCAから発行された（同じSubjectを持つ）CRLは，ディレクトリ内に一つだけ格納してください。

CRL is not a valid type: ファイル名

SSLCRLDERPathまたはSSLCRLPEMPathディレクティブで指定されたディレクトリ内から予期しないファイルを読み込みました。

エラーレベル：crit

(Ｓ)Webサーバを起動しません。

(Ｏ)CRL以外のファイルはディレクトリ内に格納できません。CRLのファイルフォーマットを確認して，必要であれば形式変換するかまたは適切なディレクトリに格納してください。

CRL is not valid: issuer=発行者名

CRLが有効ではありません。

エラーレベル：error

(Ｓ)SSLハンドシェイクに失敗したため，アクセスを拒否します。

(Ｏ)CRLが正しく作成されているか確認してください。

CRL is not yet valid: issuer=発行者名

CRLの発行日が現在時刻より前であったため，クライアント証明書の認証に失敗しました。

エラーレベル：error

(Ｓ)SSLハンドシェイクに失敗したため，アクセスを拒否します。

(Ｏ)システムの時刻設定を見直してください。

CRL is not yet valid: ファイル名

CRLの発行日が，現在時刻より後に設定されていました。

エラーレベル：warn

(Ｓ)処理を続行します。

(Ｏ)システムの時刻設定を見直してください。

CRL verify error: issuer=発行者名

CRLの署名検証に失敗しました。

エラーレベル：error

(Ｓ)クライアント証明書の認証に失敗します。

(Ｏ)正しいCRLを読み込んでいることを確認してください。

data set error

SSLの初期化処理に失敗しました。

エラーレベル：error

(Ｓ)SSLによる接続ができません。

(Ｏ)システムリソースの使用状況を確認してください。

[client クライアントアドレス] [port クライアントポート番号] data set error

SSLの初期化処理に失敗しました。

エラーレベル：error

(Ｓ)SSLによる接続ができません。

(Ｏ)システムリソースの使用状況を確認してください。

Depth of certificate chain (CA証明書の深さ) exceeded SSLExportCertChainDepth limit: subject=(CA証明書のsubject)

証明書検証に成功しましたが，SSLExportCertChainDepthディレクティブ設定値が1以上であり，かつその設定値を超えた証明書チェーンをクライアントが送ってきたため，ディレクティブ設定値で環境変数設定とキャッシュへの格納を打ち切りました。
エラーメッセージは，設定値を超えたすべてのCA証明書に対して出力されます。

（例）証明書チェーンが（クライアント証明書を除き）3段階であり， SSLExportCertChainDepthディレクティブの設定値が1のときには，上記エラーメッセージは2回出力されます。

エラーレベル：warn

(Ｓ)処理を継続します。

Error reading server certificate file ファイル名

証明書を読み込めません。

エラーレベル：crit

(Ｓ)Webサーバを起動しません。

(Ｏ)証明書の形式が適切であるかどうか確認してください。

error setting verify locations

SSLCACertificateFileまたはSSLCACertificatePathディレクティブで指定したパス名を設定できません。

エラーレベル：crit

(Ｓ)Webサーバを起動しません。

(Ｏ)SSLCACertificateFileまたはSSLCACertificatePathディレクティブの設定を確認してください。

Failed to stack CRL in ReadCRL()

データ格納処理に失敗しました。

エラーレベル：crit

(Ｓ)Webサーバを起動しません。

(Ｏ)Webサーバを再起動してください。

Malloc error in GetCertificateAndKey()

メモリ確保に失敗しました。

エラーレベル：crit

(Ｓ)Webサーバを起動しません。

(Ｏ)システムリソースの使用状況を確認してください。

Malloc error in GetPrivateKey()

メモリ確保に失敗しました。

エラーレベル：crit

(Ｓ)Webサーバを起動しません。

(Ｏ)システムリソースの使用状況を確認してください。

Malloc error in SetupLock()

メモリ確保に失敗しました。

エラーレベル：crit

(Ｓ)Webサーバを起動しません。

(Ｏ)システムリソースの使用状況を確認してください。

malloc failed in CRLCheck()

処理に必要なメモリ確保に失敗しました。

エラーレベル：error

(Ｓ)クライアント証明書の認証に失敗します。

(Ｏ)システムのメモリ使用量を確認してください。

malloc failed in GetCRL()

処理に必要なメモリ確保に失敗しました。

エラーレベル：crit

(Ｓ)Webサーバを起動しません。

(Ｏ)システムのメモリ使用量を確認してください。

malloc failed in ReadCRL()

処理に必要なメモリ確保に失敗しました。

エラーレベル：crit

(Ｓ)Webサーバを起動しません。

(Ｏ)システムのメモリ使用量を確認してください。

No client certificate

クライアント証明書が送信されていません。

エラーレベル：error

(Ｓ)SSLリクエスト処理を終了します。

[client クライアントアドレス] [port クライアントポート番号] No client certificate

クライアント証明書が送信されていません。

エラーレベル：error

(Ｓ)SSLリクエスト処理を終了します。

No SSL Certificate set for server ホスト名:ポート

Webサーバ証明書が設定されていません。

エラーレベル：crit

(Ｓ)Webサーバを起動しません。

(Ｏ)SSLCertificateFileディレクティブを設定します。

Required SSLCacheServerPath missing. gcache will not be started.

SSLCacheServerPathディレクティブが指定されていないため，gcacheサーバを起動できません。

エラーレベル：error

(Ｓ)gcacheサーバを起動しません。

(Ｏ)セション管理機能を使用するときは，SSLCacheServerPathディレクティブを指定してください。

Required SSLCacheServerPort missing. gcache will not be started.

SSLCacheServerPortディレクティブが指定されていないため，gcacheサーバを起動できません。

エラーレベル：error

(Ｓ)gcacheサーバを起動しません。

(Ｏ)セション管理機能を使用するときは，SSLCacheServerPortディレクティブを指定してください。

Required SSLCertificateKeyPassword missing

SSLCertificateKeyPasswordディレクティブが設定されていません。

エラーレベル：crit

(Ｓ)Webサーバを起動しません。

(Ｏ) SSLCertificateKeyPasswordディレクティブを設定してください。

Serial number was found in CRL: issuer=発行者名,serial=シリアル番号

CRLにクライアント証明書のシリアル番号の記載があったため，SSLハンドシェイクに失敗しました。

エラーレベル：error

(Ｓ)SSLハンドシェイクに失敗したため，アクセスを拒否します。

Set error in GetCertificateAndKey()

SSLの初期化処理に失敗しました。

エラーレベル：crit

(Ｓ)Webサーバを起動しません。

(Ｏ)システムリソースの使用状況を確認してください。

SSLExportCertChainDepth is outside the appropriate range

SSLExportCertChainDepthディレクティブで，指定できない値が設定されました。

エラーレベル：なし

(Ｓ)Webサーバを起動しません。

(Ｏ)ディレクティブ指定値を見直してください。

[client クライアントアドレス] 詳細情報: SSL handshake interrupted by system: client port ポート番号

SSLハンドシェイク処理が正しく終了しませんでした。

エラーレベル：info

(Ｓ)SSLリクエスト処理を終了します。

[client クライアントアドレス] 詳細情報: SSL handshake interrupted by system: client port ポート番号(SSLハンドシェイク処理時間)(エラーナンバー値)(サーバプロセスID):SSLハンドシェイク処理の状態

SSLハンドシェイク処理が正しく終了しませんでした。

エラーレベル：info

(Ｓ)SSLリクエスト処理を終了します。

[client クライアントアドレス] SSL library error エラー番号 in handshake

SSLハンドシェイク処理が正しく終了しませんでした。

エラーレベル：error

(Ｓ)SSLリクエスト処理を終了します。

[client クライアントアドレス] [port クライアントポート番号] SSL library error エラー番号 in handshake(SSLハンドシェイク処理時間)(エラーナンバー値)(サーバプロセスID):SSLハンドシェイク処理の状態

SSLハンドシェイク処理が正しく終了しませんでした。

エラーレベル：error

(Ｓ)SSLリクエスト処理を終了します。

SSL Library Error: 詳細情報

SSLライブラリでエラーが発生しました。

エラーレベル：critまたはerror

(Ｓ)Webサーバ起動中の場合は，起動処理を中断します。SSLリクエスト処理中の場合は，SSLリクエスト処理を中断します。

(Ｏ)詳細情報について見直してください。

SSLSessionCacheSize is outside the appropriate range

SSLSessionCacheSizeディレクティブで，指定できない値が設定されました。

エラーレベル：なし

(Ｓ)Webサーバを起動しません。

(Ｏ)ディレクティブの指定値を見直してください。

SSLSessionCacheSizePerChild is outside the appropriate range

SSLSessionCacheSizePerChildディレクティブで，指定できない値が設定されました。

エラーレベル：なし

(Ｓ)Webサーバを起動しません。

(Ｏ)ディレクティブの指定値を見直してください。

SSLSessionCacheTimeout not set

SSLSessionCacheTimeoutディレクティブの値が設定されていません。

エラーレベル：crit

(Ｓ)Webサーバを起動しません。

(Ｏ)SSLSessionCacheTimeoutディレクティブを設定してください。

The private key doesn't match the public key

SSLCertificateFileディレクティブおよびSSLCertificateKeyFileディレクティブで指定した，Webサーバ秘密鍵とWebサーバ証明書の対応が不正です。

エラーレベル：crit

(Ｓ)Webサーバを起動しません。

(Ｏ)秘密鍵と証明書が正しいペアで設定されているかどうか確認してください。

unable to set certificate

SSLCertificateFileディレクティブで指定したWebサーバ証明書を正しく設定できません。

エラーレベル：crit

(Ｓ)サーバを起動しません。

(Ｏ)SSLCertificateFileディレクティブで指定したWebサーバ証明書が正しいフォーマットであるかどうか確認してください。

unable to set ciphers

SSLRequiredCiphersディレクティブで指定した暗号種別が設定できません。

エラーレベル：crit

(Ｓ)Webサーバを起動しません。

(Ｏ)SSLRequiredCiphersディレクティブの指定値を確認してください。

unable to set private key

SSLCertificateKeyFileまたはSSLCertificateFileディレクティブで指定したWebサーバ秘密鍵が正しく設定できません。

エラーレベル：crit

(Ｓ)Webサーバを起動しません。

(Ｏ)秘密鍵のフォーマットが正しいかどうか，また，秘密鍵と証明書が正しいペアで設定されているかどうか確認してください。

Verify depth exceeded

SSLVerifyDepthディレクティブの設定値より深い階層に位置するクライアント証明書が送られてきたため，検証に失敗しました。

エラーレベル：error

(Ｓ)SSLリクエスト処理を終了します。

(Ｏ)SSLVerifyDepthディレクティブの設定値を確認してください。クライアント証明書を受け付けないときは対処する必要はありません。

[client クライアントアドレス] [port クライアントポート番号] Verify depth exceeded

SSLVerifyDepthディレクティブの設定値より深い階層に位置するクライアント証明書が送られてきたため，検証に失敗しました。

エラーレベル：error

(Ｓ)SSLリクエスト処理を終了します。

(Ｏ)SSLVerifyDepthディレクティブの設定値を確認してください。クライアント証明書を受け付けないときは対処する必要はありません。

verify error

クライアント証明書の検証に失敗し，かつその証明書のissuerが取得できません。

エラーレベル：error

(Ｓ)SSLリクエスト処理を終了します。

(Ｏ)SSLCertificateFileおよびSSLCertificatePathディレクティブで設定されているCA証明書を確認してください。そのクライアント証明書を受け付けない場合には，対処する必要はありません。

[client クライアントアドレス] [port クライアントポート番号] verify error

クライアント証明書の検証に失敗し，かつその証明書のissuerが取得できません。

エラーレベル：error

(Ｓ)SSLリクエスト処理を終了します。

(Ｏ)SSLCertificateFileおよびSSLCertificatePathディレクティブで設定されているCA証明書を確認してください。そのクライアント証明書を受け付けない場合には，対処する必要はありません。

verify error:num=値:エラーメッセージ

署名検証に失敗しました。

エラーレベル：error

(Ｓ)SSLリクエスト処理を終了します。

(Ｏ)対応するCA証明書を読み込んでください。そのクライアント証明書を受け付けない場合には，対処する必要はありません。

[client クライアントアドレス] [port クライアントポート番号] verify error:num=値:エラーメッセージ

署名検証に失敗しました。

エラーレベル：error

(Ｓ)SSLリクエスト処理を終了します。

(Ｏ)対応するCA証明書を読み込んでください。そのクライアント証明書を受け付けない場合には，対処する必要はありません。

詳細情報: Can't open directory ディレクトリ名

SSLCACertificatePathディレクティブで指定されたディレクトリが開けません。

エラーレベル：error

(Ｓ)Webサーバを起動しません。

(Ｏ)詳細情報で示す原因について，ディレクトリがあるかどうかまたはパーミッションなどを確認してください。

詳細情報: Can't open key file ファイル名

秘密鍵ファイルを読み込めません。

エラーレベル：crit

(Ｓ)Webサーバを起動しません。

(Ｏ)詳細情報で示す原因について，SSLCertificateKeyFileディレクティブの指定を確認してください。

access to ファイル名 failed forホスト名, reason: Cipher 暗号種別 is not on the permitted list

SSLRequireCipherディレクティブで指定されていない暗号種別を使用してアクセスしました。

エラーレベル：error

(Ｓ)ステータスコード「403 Forbidden」を返してリクエスト処理を終了します。

access to ファイル名 failed forホスト名, reason: Cipher 暗号種別 is forbidden

SSLBanCipherディレクティブで指定した暗号種別を使用してアクセスしました。

エラーレベル：error

(Ｓ)ステータスコード「403 Forbidden」を返してリクエスト処理を終了します。

詳細情報: Could not create a new mutex

ロック処理の初期化に失敗しました。

エラーレベル：crit

(Ｓ)Webサーバを起動しません。

(Ｏ)詳細情報を基に対応してください。

詳細情報: Could not open CRL directory for DER format: ディレクトリ名

SSLCRLDERPathディレクティブで指定されたディレクトリが開けません。

エラーレベル：crit

(Ｓ)Webサーバを起動しません。

(Ｏ)詳細情報で示す原因について，対応してください。

詳細情報: Could not open CRL directory for PEM format: ディレクトリ名

SSLCRLPEMPathディレクティブで指定されたディレクトリが開けません。

エラーレベル：crit

(Ｓ)Webサーバを起動しません。

(Ｏ)詳細情報で示す原因について，対応してください。

詳細情報: Could not open CRL file: ファイル名

CRLファイルが開けません。

エラーレベル：crit

(Ｓ)Webサーバを起動しません。

(Ｏ)詳細情報で示す原因について，対応してください。

詳細情報: Could not Read password file.

SSLCertificateKeyPassword ディレクティブで指定されたパスワードファイルが読み込めませんでした。

エラーレベル：crit

(Ｓ)Webサーバを起動しません。

(Ｏ)詳細情報を基に対応してください。

詳細情報: couldn't change working directory: ディレクトリ

gcacheサーバが動作するディレクトリの設定に失敗しました。

エラーレベル：なし

(Ｓ)gcacheサーバは起動しませんが，Webサーバは起動処理を続行します。

(Ｏ)SSLCacheServerRunDirディレクティブの設定を，chdir()関数が返す詳細情報について見直してください。

詳細情報: Error reading private key file ファイル名:

秘密鍵を読み込めません。

エラーレベル：crit

(Ｓ)Webサーバを起動しません。

(Ｏ)詳細情報で示す原因について，SSLCertificateKeyFileディレクティブの指定値を確認してください。

access to ファイル名 failed forホスト名, reason: SSL denied

SSLDenySSLディレクティブで指定したディレクトリにSSLを使用してアクセスしました。

エラーレベル：error

(Ｓ)ステータスコード「403 Forbidden」を返してリクエスト処理を終了します。

access to ファイル名 failed forホスト名, reason: SSL required

SSLRequireSSLディレクティブで指定したディレクトリにSSLを使用しないでアクセスしました。

エラーレベル：error

(Ｓ)ステータスコード「403 Forbidden」を返してリクエスト処理を終了します。

詳細情報: unable to exec gcache: ファイル名

ファイル名に示されたgcacheサーバの起動に失敗しました。

エラーレベル：なし

(Ｓ)gcacheサーバは起動しませんが，Webサーバは起動処理を続行します。

(Ｏ)SSLCacheServerPathディレクティブの設定を，execl()関数が返す詳細情報について見直してください。

詳細情報: unable to spawn gcache process

gcacheサーバの起動に失敗しました。

エラーレベル：crit

(Ｓ)gcacheサーバは起動しませんが，Webサーバは起動処理を続行します。

(Ｏ)fork()関数が返す詳細情報について見直してください。

7.2.3　リバースプロキシについてのメッセージ

[client クライアントアドレス] proxy: Max-Forwards has reached zero - proxy loop? returned by URI

Max-Forwardsリクエストヘッダの値が0になりました。

エラーレベル：error

(Ｓ)ステータスコード「502 Proxy Error」をクライアントに返し，リクエスト処理を中断します。

(Ｏ)Max-Forwardsリクエストヘッダを使用する場合は，TRACEメソッドまたはOPTIONSメソッドを使用してください。

[client クライアントアドレス] proxy: No protocol handler was valid for the URL パス名. If you are using a DSO version of mod_proxy, make sure the proxy submodules are included in the configuration using LoadModule.

ProxyPassディレクティブで指定したスキーマが不正です。

エラーレベル：warn

(Ｓ)ステータスコード「403 Forbidden」をクライアントに返し，リクエスト処理を中断します。

(Ｏ)ProxyPassディレクティブの転送先のスキーマを見直してください。

詳細情報: proxy: HTTP: error creating fam アドレスファミリ socket for target ホスト名

ソケットの作成に失敗しました。

エラーレベル：error

(Ｓ)ステータスコード「502 Bad Gateway」をクライアントに返し，リクエスト処理を中断します。

(Ｏ)詳細情報について見直してください。

詳細情報: proxy: HTTP: attempt to connect to IPアドレス:ポート番号 (ホスト名) failed

リバースプロキシはリモートのWebサーバへの接続に失敗しました。

エラーレベル：error

(Ｓ)ステータスコード「502 Bad Gateway」をクライアントに返し，リクエスト処理を中断します。

(Ｏ)詳細情報について見直してください。

[client クライアントアドレス] proxy: TRACE forbidden by server configuration

TraceEnableディレクティブの設定により，TRACEメソッドによるリクエストを拒否します。

エラーレベル：error

(Ｓ)ステータスコード「403 Forbidden」をクライアントに返し，リクエスト処理を中断します。

(Ｏ)アクセスを許可する場合はTraceEnableディレクティブの設定を見直してください。

[client クライアントアドレス] proxy: TRACE with request body is not allowed

TraceEnableディレクティブの設定により，リクエストボディが付加されているTRACEメソッドによるリクエストを拒否します。

エラーレベル：error

(Ｓ)ステータスコード「413 Request Entity Too Large」をクライアントに返し，リクエスト処理を中断します。

(Ｏ)アクセスを許可する場合はTraceEnableディレクティブの設定を見直してください。

[client クライアントアドレス] error parsing URL URL: 詳細情報

リバースプロキシによるURLの解析中にエラーが発生しました。

エラーレベル：error

(Ｓ)ステータスコード「400 Bad Request」をクライアントに返し，リクエスト処理を中断します。

(Ｏ)ProxyPassディレクティブで指定しているURLに関して詳細情報に示す原因について見直してください。

[client クライアントアドレス] proxy: URI cannot be parsed: 転送先URI returned by リクエストURI

ProxyPassディレクティブで指定した転送先のURI のフォーマットが不正です。

エラーレベル：error

(Ｓ)ステータスコード「400 Proxy Error」をクライアントに返し，リクエスト処理を中断します。

(Ｏ)ProxyPassディレクティブで指定した転送先のURIを見直してください。

[client クライアントアドレス] proxy: DNS lookup failure for: ホスト名 returned by URI

ProxyPassディレクティブで指定した転送先のホスト名のDNSルックアップに失敗しました。

エラーレベル：error

(Ｓ)ステータスコード「502 Proxy Error」をクライアントに返し，リクエスト処理を中断します。

(Ｏ)ProxyPassディレクティブで指定した転送先のホスト名について見直してください。

proxy: previous connection is closed, creating a new connection.

以前のコネクションはクローズしているため，新しいコネクションを作成します。

エラーレベル：info

(Ｓ)処理を続行します。新しいソケットを作成します。

proxy: failed to enable ssl support for IPアドレス:ポート番号 (ホスト名)

リバースプロキシはリモートのWebサーバとのコネクションにSSLを使用できません。

エラーレベル：error

(Ｓ)ステータスコード「500 Internal Server Error」をクライアントに返し，リクエスト処理を中断します。

(Ｏ)Webサーバのアクセス方法に関する設定を見直してください。

[client クライアントアドレス] proxy: no HTTP 0.9 request (with no host line) on incoming request and preserve host set forcing hostname to be ホスト名 for uri URI

クライアントから受信したリクエストヘッダにHostヘッダが含まれていません。

エラーレベル：warn

(Ｓ)リバースプロキシが作成したHostヘッダをリモートのWebサーバへ送信して処理を続行します。

(Ｏ)クライアントの設定を見直してください。

[client クライアントアドレス] proxy: error reading status line from remote server ホスト名

リバースプロキシはリモートのWebサーバからのステータスラインの読み込みに失敗しました。

エラーレベル：error

(Ｓ)ステータスコード「502 Proxy Error」をクライアントに返し，リクエスト処理を中断します。

(Ｏ)リモートのWebサーバが送信したレスポンスを見直してください。

[client クライアントアドレス] proxy: Error reading from remote server returned by URI

リバースプロキシはリモートのWebサーバからのステータスラインの読み込みに失敗しました。

エラーレベル：error

(Ｓ)ステータスコード「502 Proxy Error」をクライアントに返し，リクエスト処理を中断します。

(Ｏ)リモートのWebサーバが送信したレスポンスを見直してください。

[client クライアントアドレス] proxy: error reading response header from remote server ホスト名

リバースプロキシはリモートのWebサーバからのレスポンスヘッダの読み込みに失敗しました。

エラーレベル：error

(Ｓ)ステータスコード「502 Bad Gateway」をクライアントに返し，リクエスト処理を中断します。

(Ｏ)リモートのWebサーバが送信したレスポンスを見直してください。

[client クライアントアドレス] 詳細情報: proxy: error reading response body from remote server ホスト名

リバースプロキシはリモートのWebサーバからのレスポンスボディの読み込みに失敗しました。

エラーレベル：error

(Ｓ)クライアントおよびリモートのWebサーバとの接続を切断します。

(Ｏ)リモートのWebサーバが送信したレスポンスを見直してください。

[client クライアントアドレス] proxy: Corrupt status line returned by remote server: 文字列 returned by URI

リモートのWebサーバが不正なHTTPヘッダを送信しました。

エラーレベル：error

(Ｓ)ステータスコード「502 Proxy Error」をクライアントに返し，リクエスト処理を中断します。

(Ｏ)リモートのWebサーバが送信したレスポンスを見直してください。

proxy: bad HTTPメジャーバージョン.マイナーバージョン header returned by URI (メソッド)

リモートのWebサーバが不正なHTTPヘッダを送信しました。

エラーレベル：warn

(Ｓ)ステータスコード「502 Bad Gateway」をクライアントに返し，リクエスト処理を中断します。

(Ｏ)リモートのWebサーバの設定を見直してください。

詳細情報: proxy: pass request body failed to IPアドレス:ポート番号 (ホスト名)

リバースプロキシはリモートのWebサーバへのリクエストボディの送信に失敗しました。

エラーレベル：error

(Ｓ)ステータスコード「500 Internal Server Error」をクライアントに返し，リクエスト処理を中断します。

(Ｏ)詳細情報に示す原因について見直してください。

proxy: client クライアントアドレス given Content-Length did not match number of body bytes read

クライアントが送信したリクエストボディのサイズがContent-Lengthヘッダ値と異なります。

エラーレベル：error

(Ｓ)ステータスコード「500 Internal Server Error」をクライアントに返し，リクエスト処理を中断します。

(Ｏ)Content-Lengthリクエストヘッダ値が正しいかどうか見直してください。

詳細情報: proxy: search for temporary directory failed

リバースプロキシはリクエストボディを一時的に格納するディレクトリの検索に失敗しました。

エラーレベル：error

(Ｓ)ステータスコード「500 Internal Server Error」をクライアントに返し，リクエスト処理を中断します。

(Ｏ)詳細情報に示す原因について見直してください。

詳細情報: proxy: creation of temporary file in directory ディレクトリ名 failed

リバースプロキシはリクエストボディを一時的に格納するファイルの作成に失敗しました。

エラーレベル：error

(Ｓ)ステータスコード「500 Internal Server Error」をクライアントに返し，リクエスト処理を中断します。

(Ｏ)詳細情報に示す原因について見直してください。

詳細情報: proxy: write to temporary file ファイル名 failed

リバースプロキシはリクエストボディを一時的に格納するファイルへの書き込みに失敗しました。

エラーレベル：error

(Ｓ)ステータスコード「500 Internal Server Error」をクライアントに返し，リクエスト処理を中断します。

(Ｏ)詳細情報に示す原因について見直してください。

proxy: 転送コーディング値 Transfer-Encoding is not supported

クライアントが送信したTransfer-Encodingヘッダに，サポートしていない転送コーディング値が設定されています。

エラーレベル：error

(Ｓ)ステータスコード「500 Internal Server Error」をクライアントに返し，リクエスト処理を中断します。

(Ｏ)Transfer-Encodingヘッダに使用する転送コーディング値はchunkedを使用してください。

詳細情報: proxy: prefetch request body failed to ホスト名from クライアントアドレス (クライアントホスト名)

リバースプロキシはクライアントからのリクエストボディの受信に失敗しました。

エラーレベル：error

(Ｓ)ステータスコード「500 Internal Server Error」をクライアントに返し，リクエスト処理を中断します。

(Ｏ)詳細情報に示す原因について見直してください。

詳細情報: proxy: pass request body failed to IPアドレス:ポート番号 (ホスト名) from クライアントアドレス (クライアントホスト名)

リバースプロキシはリクエストボディの送信に失敗しました。

エラーレベル：error

(Ｓ)ステータスコード「500 Internal Server Error」をクライアントに返し，リクエスト処理を中断します。

(Ｏ)詳細情報に示す原因について見直してください。

[client クライアントアドレス] proxy fin wait timed out.

リモートのWebサーバからのFINパケット待ち処理がタイムアウトしました。

エラーレベル：info

(Ｓ)リバースプロキシからFINパケットを送ることによって，リモートのWebサーバとの接続をクローズして処理を続行します。

(Ｏ)リモートのWebサーバのコネクションに関する設定を見直してください。

詳細情報: proxy: processing prefetched request body failed to ホスト名 from クライアントアドレス (クライアントホスト名)

リバースプロキシはクライアントからのリクエストボディの受信に失敗しました。

エラーレベル：error

(Ｓ)ステータスコード「500 Internal Server Error」をクライアントに返し，リクエスト処理を中断します。

(Ｏ)詳細情報に示す原因について見直してください。

[client クライアントアドレス] proxy: Could not get proxypass entry

バックエンドサーバから読み込んだSet-Cookieヘッダの変換に使用するProxyPassディレクティブの指定値を取得できませんでした。

エラーレベル：error

(Ｓ)バックエンドサーバから読み込んだSet-Cookieヘッダを変換しないで，リクエスト処理を続行します。

[client クライアントアドレス] proxy: Too many (上限回数) interim responses from
origin server returned by URI

リモートのWebサーバが上限回数を超えるステータスコード100を送信しました。

エラーレベル：error

(Ｓ)ステータスコード「502 Proxy Error」をクライアントに返し，リクエスト処理を中断します。

(Ｏ)リモートのWebサーバが送信したレスポンスを見直してください。

7.2.4　流量制限機能についてのメッセージ

詳細情報: Could not open file: ファイル名

QOSResponseディレクティブで指定したファイルがオープンできません。

エラーレベル：crit

(Ｓ)サーバが起動しません。

(Ｏ)詳細情報を基にディレクティブ設定値を見直してください。

詳細情報: Could not read file: ファイル名

QOSResponseディレクティブで指定したファイルが読み込めません。

エラーレベル：crit

(Ｓ)サーバが起動しません。

(Ｏ)詳細情報を基に対応してください。

This file is too large: ファイル名

QOSResponseディレクティブで指定したファイルが大き過ぎて読み込めません。

エラーレベル：crit

(Ｓ)サーバが起動しません。

(Ｏ)4,294,967,295バイトよりも小さなファイルを指定してください。

QOSCookieServers is out of range

QOSCookieServersディレクティブの指定範囲が不正です。

エラーレベル：crit

(Ｓ)サーバが起動しません。

(Ｏ)ディレクティブ設定値を見直してください。

QOSRejectionServers is out of range

QOSRejectionServersディレクティブの指定範囲が不正です。

エラーレベル：crit

(Ｓ)サーバが起動しません。

(Ｏ)ディレクティブ設定値を見直してください。

[client クライアントアドレス] 詳細情報: client stopped connection before send QOSResponse completed

クライアントからプロトコルボディデータ受信中またはWebサーバからクライアントへデータ送信中，クライアントからコネクションが切断されました。

エラーレベル：info

(Ｓ)Webサーバからクライアントへのデータ送信処理を中断します。

Request rejected (service temporarily unavailable)

リクエスト処理が拒否されました。

エラーレベル：info

(Ｓ)リクエスト処理を中断します。

7.2.5　静的コンテンツキャッシュ機能についてのメッセージ

詳細情報: Error creating mutex

mutex作成時にエラーが発生しました。

エラーレベル：crit

(Ｓ)Webサーバを停止します。

(Ｏ)詳細情報に示す原因について見直してください。

malloc failure in mod_hws_cache

ファイルのキャッシュ処理中にメモリ確保エラーが発生しました。

エラーレベル：warn

(Ｓ)ファイルはキャッシュされませんが処理を続行します。

HWSContentCacheMaxFileSize exceeded HWSContentCacheSize: reduced to HWSContentCacheSize設定値

HWSContentCacheMaxFileSizeディレクティブ値が，キャッシュ可能なメモリサイズを超えています。HWSContentCacheSizeディレクティブ値まで減少させました。

エラーレベル：notice

(Ｓ)処理を続行します。

[client クライアントアドレス] 詳細情報: client stopped connection before send cache completed

クライアントからプロトコルボディデータを受信中またはWebサーバからクライアントへデータを送信中，クライアントからコネクションが切断されました。

エラーレベル：info

(Ｓ)Webサーバからクライアントへのデータ送信処理を中断します。

cache error: reason(file open error)

ファイルのオープンに失敗したためキャッシュできませんでした。

エラーレベル：info

(Ｓ)ファイルはキャッシュされませんが処理を続行します。

cache error: reason(file read error)

ファイルの読み込みに失敗したためキャッシュできませんでした。

エラーレベル：info

(Ｓ)ファイルはキャッシュされませんが処理を続行します。

cache error: reason(file size unstable)

ファイルサイズが確定できないためキャッシュできませんでした。

エラーレベル：info

(Ｓ)ファイルはキャッシュされませんが処理を続行します。

7.2.6　LDAP連携機能についてのメッセージ

[client クライアントアドレス] An attempt to bind user ユーザID to the LDAP server failed: 詳細情報

LDAPサーバでのユーザ認証に失敗しました。失敗した理由は次のどれかです。

無効なユーザ名やパスワードが指定されました。

ユーザ名やパスワードをエンコード（BER-encoding）するときにエラーが発生しました。

LDAPサーバが要求を受信できなかったまたはLDAPサーバへの接続ができなくなりました。

メモリが不足しています。

LDAPサーバから戻された処理結果を取得するときにエラーが発生しました。

エンコード済みの処理結果をデコードするときにエラーが発生しました。

詳細情報に従い，エラーに対応してください。

エラーレベル：error

(Ｓ)ユーザ情報がLDAPサーバ内で見つからない場合はステータスコード「401　Authorization Required」で処理を中断します。それ以外のエラーならば，ステータスコード「500　Internal Server Error」で処理を中断します。

(Ｏ)詳細情報に従い，LDAPサーバに登録されているユーザ情報と入力したユーザ情報に問題がないかどうか確認してください。

[client クライアントアドレス] An attempt to initialize the LDAP server session failed.

LDAPサーバとのセションの初期化に失敗しました。

エラーレベル：error

(Ｓ)ステータスコード「500　Internal Server Error」を返して処理を中断します。

(Ｏ)LDAPServerName/LDAPServerPortディレクティブに誤りがないかどうか確認してください。

[client クライアントアドレス] An attempt to terminate the LDAP server session failed.

LDAPサーバとのセションの終了に失敗しました。

エラーレベル：error

(Ｓ)処理を続行します。

(Ｏ)LDAPサーバをアクセスするための資源の解放を失敗しているため，多発するようであれば，Hitachi Web Serverを再起動してください。

[client クライアントアドレス] An LDAP search for user ユーザID failed: 詳細情報

検索フィルタに従いユーザの情報を検索しましたが，エラーが発生して検索を完了できませんでした。エラーの詳細を詳細情報に示します。失敗する原因として次に示す原因が考えられます。

無効な検索フィルタが指定されました。

検索フィルタをエンコードするときにエラーが発生しました。

LDAPサーバとの通信路に問題が発生しました。

メモリの割り当てに失敗しました。

LDAPサーバから戻された処理結果にエラーが見つかりました。

検索フィルタで検索したエンコード済みの処理結果をデコードできませんでした。

LDAPのプロトコルバージョンが異なります。

検索フィルタを解析およびエンコード時にエラーが発生しました。

制限時間を検索処理が超過しました。

LDAPサーバ内でユーザ情報を見つけられませんでした。

上記以外にもエラーの原因があることがありますので詳細情報について見直してください。

エラーレベル：error

(Ｓ)ユーザ情報がLDAPサーバ内で見つからない場合は，ステータスコード「401　Authorization Required」で処理を中断します。それ以外のエラーならば，ステータスコード「500　Internal Server Error」で処理を中断します。

(Ｏ)詳細情報に示す原因について見直してください。

[client クライアントアドレス] Authentication failed

パスワードが入力されていない，ユーザ名が255文字を超えているまたはユーザ名の取得に失敗しました。

エラーレベル：error

(Ｓ)ステータスコード「401　Authorization Required」で処理を中断します。

(Ｏ)ユーザ名とパスワードを正しく入力してください。

[client クライアントアドレス] The first entry could not be acquired.

認証に成功しましたが，エントリの取得に失敗しました。

エラーレベル：error

(Ｓ)ステータスコード「500　Internal Server Error」で処理を中断します。

(Ｏ)LDAPサーバのスキーマに問題がないかどうか見直してください。

[client クライアントアドレス] The invalid DN DN値 was found in LDAPBaseDN.

無効なDNをLDAPBaseDNディレクティブに指定しています。

エラーレベル：error

(Ｓ)ステータスコード「500　Internal Server Error」で処理を中断します。

(Ｏ)LDAPServerNameディレクティブ，LDAPServerPortディレクティブとの対応を見直してください。

[client クライアントアドレス] The invalid LDAP server LDAPサーバ名 was found in LDAPServerName.

無効なLDAPサーバ名をLDAPServerNameディレクティブに指定しています。

エラーレベル：error

(Ｓ)ステータスコード「500　Internal Server Error」で処理を中断します。

(Ｏ)LDAPServerPortディレクティブ，LDAPBaseDNディレクティブとの対応を見直してください。

[client クライアントアドレス] The invalid port number ポート番号 was found in LDAPServerPort.

無効なポート番号をLDAPServerPortディレクティブに指定しています。

エラーレベル：error

(Ｓ)ステータスコード「500　Internal Server Error」で処理を中断します。

(Ｏ)LDAPServerNameディレクティブ，LDAPBaseDNディレクティブとの対応を見直してください。

[client クライアントアドレス] The session option オプション could not be set.

セションのオプション設定に失敗しました。

オプションがDEREFの場合
LDAPRequireディレクティブの検索フィルタの処理中に別名の機能を使わないように設定しましたが，失敗しました。

オプションがPROTOCOL_VERSIONの場合
LDAPサーバにアクセスするためのプロトコルバージョンの設定に失敗しました。

オプションがREFERRALSの場合
クライアントがリフェラルに従わないように設定しましたが，失敗しました。

エラーレベル：error

(Ｓ)ステータスコード「500　Internal Server Error」で処理を中断します。

(Ｏ)LDAPServerNameディレクティブで指定した日立ディレクトリサーバV2であるか確認してください。

[client クライアントアドレス] The user ユーザID lacks LDAPRequire filter permission.

LDAPRequireディレクティブで指定された検索フィルタに一致するものはありませんでした。

エラーレベル：error

(Ｓ)LDAPNoEntryStatusディレクティブにAuthorizationを指定した場合は，ステータスコード「401　Authorization Required」で処理を中断します。LDAPNoEntryStatusディレクティブにForbiddenを指定した場合は，ステータスコード「403　Forbidden」で処理を中断します。

(Ｏ)問題があるならば，検索フィルタを再度見直してください。

[client クライアントアドレス] The value of attribute 属性 could not be acquired: 詳細情報

属性値の取得に失敗しました。

エラーレベル：error

(Ｓ)処理を続行します。文字列値の取得に失敗した属性をLDAPSetEnvディレクティブに指定している場合は，その属性値を設定しようとした環境変数は設定されません。

(Ｏ)詳細情報に示す原因について見直してください。

LDAP: A separator (%) could not be found.

LDAPRequireディレクティブに指定されたDN属性のセパレータ(%)がありません。

エラーレベル：なし

(Ｓ)Hitachi Web Serverの起動を中止します。

(Ｏ)DN属性を正しく指定してHitachi Web Serverを再起動してください。

LDAP: No DN was specified for LDAPBaseDN.

LDAPBaseDNディレクティブにDN値が指定されていません。

エラーレベル：なし

(Ｓ)Hitachi Web Serverの起動を中止します。

(Ｏ)DN値を正しく指定してHitachi Web Serverを再起動してください。

LDAP: No IP address or hostname was specified for LDAPServerName.

LDAPServerNameディレクティブにホスト名またはIPアドレスが指定されていません。

エラーレベル：なし

(Ｓ)Hitachi Web Serverの起動を中止します。

(Ｏ)LDAPServerNameディレクティブを正しく指定してHitachi Web Serverを再起動してください。

LDAP: No port number was specified for LDAPServerPort.

LDAPServerPortディレクティブにポート番号が指定されていません。

エラーレベル：なし

(Ｓ)Hitachi Web Serverの起動を中止します。

(Ｏ)LDAPServerPortディレクティブを正しく指定してHitachi Web Serverを再起動してください。

LDAP: The specified DN is invalid.

LDAPBaseDNディレクティブに指定された値が正しくありません。

エラーレベル：なし

(Ｓ)Hitachi Web Serverの起動を中止します。

(Ｏ)LDAPBaseDNディレクティブを正しく指定してHitachi Web Serverを再起動してください。

LDAP: The specified IP address is invalid.

LDAPServerNameディレクティブに指定されたIPアドレスが不正です。

エラーレベル：なし

(Ｓ)Hitachi Web Serverの起動を中止します。

(Ｏ)IPアドレスを正しく指定してHitachi Web Serverを再起動してください。

LDAP: The specified LDAPRequire value is invalid.

LDAPRequireディレクティブに指定された値が正しくありません。

エラーレベル：なし

(Ｓ)Hitachi Web Serverの起動を中止します。

(Ｏ)LDAPRequireディレクティブを正しく指定してHitachi Web Serverを再起動してください。

LDAP: The specified LDAPTimeout exceeds the maximum limit, and has been changed to 86400 seconds.

LDAPTimeoutディレクティブに指定された検索処理の最大待ち時間（秒単位）が最大値を超えているため，86400秒を設定します。

エラーレベル：warn

(Ｓ)処理を続行します。

(Ｏ)フィルタの検索処理の最大待ち時間について見直してください。

LDAP: The specified port number is invalid.

LDAPServerPortディレクティブに指定されたポート番号に数字以外の文字が含まれています。

エラーレベル：なし

(Ｓ)Hitachi Web Serverの起動を中止します。

(Ｏ)ポート番号を正しく指定してHitachi Web Serverを再起動してください。

LDAP: The specified port number is out of range (range = 1 to 65535).

LDAPServerPortディレクティブに指定されたポート番号が範囲外です。

エラーレベル：なし

(Ｓ)Hitachi Web Serverの起動を中止します。

(Ｏ)ポート番号を正しく指定してHitachi Web Serverを再起動してください。

LDAP: The specified timeout is invalid.

LDAPTimeoutディレクティブに指定されたフィルタの検索処理の最大待ち時間（秒単位）に数字以外の文字が含まれています。

エラーレベル：なし

(Ｓ)Hitachi Web Serverの起動を中止します。

(Ｏ)フィルタの検索処理の最大待ち時間を正しく指定してHitachi Web Serverを再起動してください。

LDAP: The specified timeout is out of range (range = 1 to 86400).

LDAPTimeoutディレクティブに指定された検索処理の最大待ち時間（秒単位）が範囲外です。

エラーレベル：なし

(Ｓ)Hitachi Web Serverの起動を中止します。

(Ｏ)フィルタの検索処理の最大待ち時間を正しく指定してHitachi Web Serverを再起動してください。

LDAP: The status code specified in LDAPNoEntryStatus is invalid.

LDAPNoEntryStatusディレクティブに指定された値が正しくありません。

エラーレベル：なし

(Ｓ)Hitachi Web Serverの起動を中止します。

(Ｏ)LDAPNoEntryStatusディレクティブを正しく指定してHitachi Web Serverを再起動してください。

7.2.7　ユティリティについてのメッセージ

＜この項の構成＞

(1)　crldownloadユティリティ

(2)　hwsservereditユティリティ

(3)　hwstraceinfoユティリティ

(4)　rotatelogsユティリティ

(5)　rotatelogs2ユティリティ

(6)　sslpasswdユティリティ

(1)　crldownloadユティリティ

An attempt to download the CRL file failed: 理由

CRLファイルのダウンロードに失敗しました。

エラーレベル：なし

(Ｓ)処理を中断します。

(Ｏ)理由に沿った対応をしてください。

An attempt to download the CRL file ファイル名 failed.

CRLのダウンロードに失敗しました。

エラーレベル：なし

(Ｓ)処理を中断します。

(Ｏ)同時に出力されるほかのエラーメッセージを参照してください。

An attempt to initialize the ldap server session failed.

LDAPサーバとのセションの初期化に失敗しました。

エラーレベル：なし

(Ｓ)処理を中断します。

(Ｏ)LDAPサーバ名やポート番号に誤りがないかどうか確認してください。

Could not locate ファイル名 API: 理由

LDAPライブラリの処理を失敗しました。

エラーレベル：なし

(Ｓ)処理を中断します。

(Ｏ)理由に沿った対応をしてください。

invalid option.

オプションが不正です。

エラーレベル：なし

(Ｓ)処理を中断します。

(Ｏ)オプションを見直してください。

Memory could not be allocated.

メモリの確保ができません。

エラーレベル：なし

(Ｓ)処理を中断します。

(Ｏ)メモリの使用状態を見直してください。

The CRL file ファイル名 could not be opened: 詳細情報

設定されたCRLファイルが開けません。

エラーレベル：なし

(Ｓ)処理を中断します。

(Ｏ)詳細情報に示す原因について対応してください。

The CRL ファイル名 was downloaded successfully.

CRLのダウンロードに成功しました。

エラーレベル：なし

(Ｓ)処理を続行します。

The library file ライブラリファイル名 could not be opened.

LDAPライブラリが読み込めません。

エラーレベル：なし

(Ｓ)処理を中断します。

(Ｏ)ライブラリがあるかどうかおよびディレクトリに読み出し許可が設定されているかどうかを見直してください。

The port number is out of range.

ポート番号の指定値が，指定できない値（1-65535以外）です。

エラーレベル：なし

(Ｓ)処理を中断します。

(Ｏ)-pオプションの指定値を見直してください。

The オプション option was not specified.

必要なオプション（-L，-bおよび-o）が指定されていません。

エラーレベル：なし

(Ｓ)処理を中断します。

(Ｏ)-L，-bおよび-oオプションを指定してください。

(2)　hwsservereditユティリティ

hwsserveredit: completed

ユティリティの処理が完了しました。または，-check実行時，サーバ環境は構築されていました。

エラーレベル：なし

(Ｓ)処理を終了します。

hwsserveredit: cannot {create|delete|open|read|write|close} ファイル名 関数名: 詳細情報

ファイルの操作に失敗しました。

エラーレベル：なし

(Ｓ)処理を中断します。

(Ｏ)詳細情報に示す内容について見直してください。

hwsserveredit: malloc failed

メモリの確保に失敗しました。

エラーレベル：なし

(Ｓ)処理を中断します。

(Ｏ)メモリ使用量について，システムの状態を確認してください。

hwsserveredit: Service {add|delete} failed 関数名: 詳細情報

サービスの登録または削除処理に失敗しました。

エラーレベル：なし

(Ｓ)処理を中断します。

(Ｏ)詳細情報に示す内容について見直してください。

hwsserveredit: uncompleted

-check実行時，サーバ環境は構築されていませんでした。

エラーレベル：なし

(Ｓ)処理を終了します。

(Ｏ)サーバ名に対するリソースが作成されているか確認してください。

詳細情報: 関数名 レジストリキー

レジストリに対する操作で失敗しました。

エラーレベル：なし

(Ｓ)処理を中断します。

(Ｏ)詳細情報に示す内容について見直してください。

Registry does not contain key レジストリキー after creation

レジストリのオープンに失敗しました。

エラーレベル：なし

(Ｓ)処理を中断します。

(Ｏ)レジストリキーが存在するか確認してください。

詳細情報: GetModuleFileName failed

実行ファイルのパス取得に失敗しました。

エラーレベル：なし

(Ｓ)処理を中断します。

(Ｏ)GetModuleFileName()関数が返す詳細情報について見直してください。

詳細情報: An attempt to load the audit log library has failed.

監査ログ出力用ライブラリのロードに失敗しました。

エラーレベル：なし

(Ｓ)処理を中断します。

(Ｏ)詳細情報について見直してください。

詳細情報: An attempt to acquire the address of the audit log function has failed.

監査ログ出力用ライブラリの関数のアドレス取得に失敗しました。

エラーレベル：なし

(Ｓ)処理を中断します。

(Ｏ)詳細情報について見直してください。

詳細情報: An attempt to acquire the path of the audit log library has failed.

監査ログ出力用ライブラリのパスの取得に失敗しました。

エラーレベル：なし

(Ｓ)処理を中断します。

(Ｏ)詳細情報について見直してください。

(3)　hwstraceinfoユティリティ

hwstraceinfo: An open logfile error occurred.

出力ファイルを開けません。

エラーレベル：なし

(Ｓ)処理を中断します。

(Ｏ)出力ファイルについて見直してください。

hwstraceinfo: An open shared memory error(詳細情報) occurred.

共有メモリの参照に失敗しました。

エラーレベル：なし

(Ｓ)処理を中断します。

(Ｏ)詳細情報に示す内容について見直してください。

hwstraceinfo: A map shared memory error(詳細情報) occurred.

共有メモリのマッピングに失敗しました。

エラーレベル：なし

(Ｓ)処理を中断します。

(Ｏ)詳細情報に示す内容について見直してください。

hwstraceinfo: A shmat error occurred.

共有メモリの割り当てができません。

エラーレベル：なし

(Ｓ)処理を中断します。

(Ｏ)共有メモリ識別子について見直してください。

hwstraceinfo: A shmctl ID removal error occurred.

共有メモリ識別子を削除できません。

エラーレベル：なし

(Ｓ)処理を中断します。

(Ｏ)共有メモリ識別子について見直してください。

hwstraceinfo: A write error occurred.

共有メモリの内容をファイル出力することに失敗しました。

エラーレベル：なし

(Ｓ)処理を中断します。

(Ｏ)出力ファイルについて見直してください。

hwstraceinfo: The shmid removal completed.

共有メモリ識別子を削除しました。

エラーレベル：なし

(Ｓ)hwstraceinfoコマンド処理を終了します。

hwstraceinfo: The trace output completed.

共有メモリの内容をファイルに出力しました。

エラーレベル：なし

(Ｓ)hwstraceinfoコマンド処理を終了します。

(4)　rotatelogsユティリティ

Rotation time must be > 0

ログ分割時間間隔が不正です。

エラーレベル：なし

(Ｓ)処理を中断します。

(Ｏ)ログ分割時間の間隔について見直してください。

The number of files must be >= 1 and <=256

-fnumに指定した値が不正です。

エラーレベル：なし

(Ｓ)処理を中断します。

(Ｏ)-fnumに指定した値について見直してください。

The offset minutes from UTC must be >= -1439 and <=1439

-diffに指定した値が不正です。

エラーレベル：なし

(Ｓ)処理を中断します。

(Ｏ)-diffに指定した値について見直してください。

file path is too long.

分割ログファイル名の長さが長過ぎます。

エラーレベル：なし

(Ｓ)処理を中断します。

(Ｏ)分割ログファイルのプリフィックス長について見直してください。

(5)　rotatelogs2ユティリティ

The size(KB) of file must be >= 1 and <= 2097151

ログファイルサイズが不正です。

エラーレベル：なし

(Ｓ)処理を中断します。

(Ｏ)ログファイルのサイズについて見直してください。

The number of files must be >= 1 and <= 256

ログファイル個数が不正です。

エラーレベル：なし

(Ｓ)処理を中断します。

(Ｏ)ログファイルの個数について見直してください。

file path is too long.

ログファイル名の長さが長過ぎます。

エラーレベル：なし

(Ｓ)処理を中断します。

(Ｏ)ログファイルのプリフィックス長について見直してください。

(6)　sslpasswdユティリティ

Could not create the password file.

パスワードファイルが作成できませんでした。

エラーレベル：なし

(Ｓ)処理を終了します。

(Ｏ)不正なサーバ秘密鍵ファイルを読み込んだまたはパスワードが長過ぎる可能性があります。これらについて確認してください。

詳細情報: Could not open private key file.

サーバ秘密鍵ファイルがオープンできませんでした。

エラーレベル：なし

(Ｓ)処理を終了します。

(Ｏ)詳細情報を基に対応してください。

Could not read the appropriate private key file.

サーバ秘密鍵ファイルが適切ではありませんでした。

エラーレベル：なし

(Ｓ)処理を終了します。

(Ｏ)パスワード付きのサーバ秘密鍵を指定してください。

詳細情報: Could not open the password file.

パスワードファイルをオープンできませんでした。

エラーレベル：なし

(Ｓ)処理を終了します。

(Ｏ)詳細情報を基に対応してください。

詳細情報: Could not write the password file.

パスワードファイルを作成できませんでした。

エラーレベル：なし

(Ｓ)処理を終了します。

(Ｏ)詳細情報を基に対応してください。

付録

＜この付録の構成＞

付録A　ステータスコード

付録B　CGIプログラムに渡す環境変数

付録C　高信頼化システム監視機能HAモニタによるシステム監視（クラスタリングシステムの運用）

付録D　MC/ServiceGuardによるシステム監視（クラスタリングシステムの運用）

付録E　HACMP for AIXによるシステム監視（クラスタ・マルチプロセッシングの運用）

付録F　Microsoftサーバクラスタによるシステム監視

付録G　バージョン03-00以降への移行方法

付録H　用語解説

付録A　ステータスコード

Hitachi Web ServerがWebブラウザに返送するステータスコードを次に示します。ステータスコードをWebブラウザに返送する際には，ステータスコードに応じて自動生成するエラーメッセージをcharset=ISO-8859-1のHTMLとして同時に返送します。

表A-1　ステータスコード一覧

ステータスコード
内容

100 Continue
クライアントは，リクエストを継続可能です。

200 OK
正常に終了しました。

204 No Content
リクエストは正常に終了しましたが，返すリソースはありません。
ImapDefault nocontentディレクティブの指定によって，発生します。

206 Partial Content
部分的なリソースを返します。
クライアントのRangeヘッダを用いたPartial GETリクエストの応答として，部分的なコンテンツを返す場合に発生します。

300 Multiple Choices
複数ページの利用が可能です。

301 Moved Permanently
リソースが恒久的に移動しました。
最後をスラッシュで閉じないディレクトリに対するリクエストhttp://ホスト名〔:ポート番号〕/ディレクトリ名や，Redirect permanentディレクティブの指定によって，発生します。

302 Found
リソースが一時的に移動しました。
Redirect tempディレクティブの指定によって，発生します。

303 See Other
リソースが移動しました。
Redirect seeotherディレクティブの指定によって，発生します。

304 Not Modified
リクエストしたコンテンツが変更されていません。

400 Bad Request
リクエストにシンタックスエラーがあります。
ヘッダとして誤ったものを指定した場合，リクエストヘッダの個数がLimitRequestFieldsディレクティブの値を超えた場合またはHTTP/1.1 でHostヘッダがなかった場合などに発生します。

401 Authorization Required
リソースにアクセスするためには，認証が必要です。 AuthNameディレクティブまたはAuthUserFileディレクティブなどでアクセスを制御した場合に発生します。

403 Forbidden
リソースへのアクセスが禁じられています。
アクセス制御によって，アクセスが拒否された場合または実行権限のないCGIプログラムの実行要求をした場合などに発生します。

404 Not Found
リソースが見つかりません。
サーバ上にはないファイルをリクエストした場合などに発生します。

405 Method Not Allowed
許可されていないメソッドを使用しました。

406 Not Acceptable
クライアントがAcceptヘッダで指定したタイプに応じたレスポンスを返せません。

408 Request Time-out
リクエストがタイムアウトになりました。

410 Gone
リソースが恒久的に利用できません。
Redirect goneディレクティブの指定によって，発生します。

411 Length Required
クライアントはContent-Lengthヘッダを指定する必要があります。

412 Precondition Failed
クライアントのIf-Unmodified-SinceヘッダまたはIf-Matchedヘッダなどで指定した条件が一致しません。

413 Request Entity Too Large
リクエストボディサイズが大き過ぎて，サーバで処理できません。
リクエストボディの長さが， LimitRequestBodyディレクティブで指定した長さよりも長い場合に発生します。

414 Request-URI Too Large
リクエストURIが大き過ぎて，サーバで処理できません。
問い合わせ文字列などを含むURIなどの長さが，LimitRequestLineディレクティブで指定した長さよりも長い場合に発生します。

416 Requested Range Not Satisfiable
Rangeヘッダでの指定範囲は，該当リソースの範囲を超えています。次の条件がすべて成立する場合に出力されます。

リクエストがRangeヘッダフィールドを含む。

フィールドの範囲指定値が，選ばれたリソースの現在の範囲に重なっていない。

リクエストにIf-Rangeリクエストヘッダフィールドを含んでいない。

417 Expectation Failed
Expectリクエストヘッダフィールドの拡張が受け入れられませんでした。

500 Internal Server Error
Webサーバ上でエラーが発生しました。
CGIプログラムの問題や，アクセス制御ファイル(.htaccess)のエラーなどの場合に発生します。詳細な情報は，エラーログに出力されます。

501 Method Not Implemented
サポートされていないメソッドの要求です。

502 Bad Gateway
プロキシサーバが不正な要求を受け取りました。

503 Service Temporarily Unavailable
サーバは過負荷状態であるため，現在リクエスト処理できません。

506 Variant Also Negotiates
サーバに内部配置上のエラーがあります。

注

表A-1および表A-1以外のステータスコードがHitachi Web Serverと連携したCGIプログラムなどの上位プログラムから出力されることがあります。その場合は，それぞれのプログラムのマニュアルを参照してください。

リバースプロキシを使用している場合には，400 Bad Request，403 Forbidden，502 Bad Gatewayは，400 Proxy Error，403 Proxy Error，502 Proxy Errorとなる場合もあります。

付録B　CGIプログラムに渡す環境変数

WebサーバがCGIプログラムに渡す環境変数の一覧を表B-1，表B-2および表B-5に，SSL_SERVER_要素の例，SSL_SERVER_I_要素の例を，表B-3，表B-4に示します。プラットフォーム，クライアントの設定，リクエストの形，Webサーバのディレクティブの設定などによって，ここで記載されている環境変数が設定されない場合や，記載していない環境変数が設定される場合もあります。表の中のサーバ名，ドメイン名，メールアドレスなどはすべて架空の値です。

表B-1　環境変数一覧

環境変数名 | 内容 | 例
AUTH_TYPE | ユーザ認証をする場合の認証タイプ | Basic
COMSPEC | コマンドプロンプトの実行可能ファイル | C:¥WINNT¥system32¥cmd.exe
CONTENT_LENGTH | クライアントからのリクエストがPOSTの場合の，データのバイト数 | 20
CONTENT_TYPE | クライアントからのリクエストがPOSTの場合のコンテンツタイプ | application/x-www-form-urlencoded
DOCUMENT_ROOT | DocumentRootディレクティブ指定値 | C:/Program Files/Hitachi/httpsd/htdocs
GATEWAY_INTERFACE | CGIバージョン | CGI/1.1
HTTP_ACCEPT | クライアントが示したAcceptヘッダの値 | image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, image/png, */*
HTTP_ACCEPT_CHARSET | クライアントが示したAccept-Charsetヘッダの値 | Shift_JIS,*,utf-8
HTTP_ACCEPT_ENCODING | クライアントが示したAccept-Encodingヘッダの値 | gzip
HTTP_ACCEPT_LANGUAGE | クライアントが示したAccept-Languageヘッダの値 | ja,fr, en,it
HTTP_CONNECTION | クライアントが示したConnectionヘッダの値 | Keep-Alive
HTTP_HOST | クライアントが示したHostヘッダの値 | www.hws.hitachi.co.jp:8080
HTTP_PRAGMA | クライアントが示したPragmaヘッダの値 | no-cache
HTTP_REFERER | クライアントが示したRefererヘッダの値 | http://www.hws.hitachi.co.jp:8080/test.html
HTTP_USER_AGENT | クライアントが示したUser-Agentヘッダの値 | Mozilla/4.73 [ja] (WinNT; U)
PATH | Webサーバ上のPATH情報 | C:¥WINNT¥system32;C:¥WINNT;C:¥WINNT¥System32¥Wbem
PATH_INFO | URLのうちCGIスクリプトより後ろの部分 | /dir1/file1
PATH_TRANSLATED | ファイルシステムに変換されたPATH_INFOの値 | C:¥Program Files¥Hitachi¥httpsd¥htdocs¥dir1¥file1
QUERY_STRING | クライアントから送信されたQuery String（問い合わせ文字列） | query1=a&query2=b
REMOTE_ADDR | クライアントのアドレス | 172.17.xx.xx
REMOTE_HOST | クライアントのホスト名（HostnameLookupsがOff以外でホスト名が解決された場合） | hostxxx
REMOTE_IDENT | クライアントのID（IdentityCheckディレクティブ参照） | unknown
REMOTE_PORT | クライアントのポート番号 | 2298
REMOTE_USER | 認証されたリクエストの場合の認証ユーザ名 | Userxxx
REQUEST_METHOD | クライアントから送信されたHTTPメソッド | GET
REQUEST_URI | クライアントから送信されたリクエストURI | /cgi-bin/test-cgi?query1=a&query2=b
SCRIPT_FILENAME | リクエストされたCGIスクリプトのファイル名 | C:/Program Files/Hitachi/httpsd/cgi-bin/test-cgi
SCRIPT_NAME | リクエストされたCGIスクリプトのURI | /cgi-bin/test-cgi
SERVER_ADDR | WebサーバのIPアドレス | 172.17.xx.xx
SERVER_ADMIN | ServerAdminディレクティブ指定値 | www-admin@server.example.com
SERVER_NAME | Webサーバのホスト名（UseCanonicalNameディレクティブ参照） | www.hws.hitachi.co.jp
SERVER_PORT | Webサーバのポート名（UseCanonicalNameディレクティブ参照） | 8080
SERVER_PROTOCOL | クライアントが示したHTTPバージョン | HTTP/1.0
SERVER_SIGNATURE | Webサーバの署名（HTMLタグを含む）（ServerSignatureディレクティブ参照） | <ADDRESS>Hitachi Web Server 03-00 at www.example.com Port 8080</ADDRESS>
SERVER_SOFTWARE | Webサーバのプログラム名 | Hitachi Web Server 03-00
SYSTEMROOT | システムディレクトリ | C:¥WINNT
TZ | Webサーバのタイムゾーン | JST-9
WINDIR | システムディレクトリ | C:¥WINNT

表B-2　SSL通信時の環境変数一覧

環境変数名 | 内容 | 例
HTTPS | セキュア通信を示します。 | on
HTTPS_CIPHER | SSL暗号種別 | RC4-MD5
HTTPS_KEYSIZE | 対称鍵暗号の鍵のビット数 | 128
HTTPS_SECRETKEYSIZE | 対称鍵暗号の鍵のビット数のうち，有効なビット数 | 128
SSL_CIPHER | SSL暗号種別（HTTPS_CIPHERと同じ） | RC4-MD5
SSL_PROTOCOL_VERSION | SSLプロトコルバージョン | SSLv3
SSL_SERVER_DN | SSLサーバ証明書のsubjectのDistinguish Name | /C=JP/ST=Kanagawa/L=Yokohama-shi/O=HITACHI/OU=WebSite/CN=www.hws.hitachi.co.jp/Email=www-admin@hws.hitachi.co.jp
SSL_SERVER_要素 | SSLサーバ証明書のsubjectのDistinguish Nameの各要素 | SSL_SERVER_DNが上記の例の場合を表B-3に示します。
SSL_SERVER_I_DN | SSLサーバ証明書のissuerのDistinguish Name | /C=JP/ST=Kanagawa/L=Yokohama-shi/O=LOCAL-CA/OU=ca1/CN=ca1.hitachi.co.jp/Email=ca-admin@ca1.hitachi.co.jp
SSL_SERVER_I_要素 | SSLサーバ証明書のissuerのDistinguish Nameの各要素 | SSL_SERVER__I_DNが上記の例の場合を表B-4に示します。
SSL_SESSION_ID | SSLセションID（16進数） | F968F8D7075B76587F35931DC594D3E3
SSL_SSLC_VERSION | SSLCのバージョン | SSL-C 2.7.0.1 15-Mar-2006

表B-3　SSL_SERVER_要素の例

環境変数名 | 内容 | 例
SSL_SERVER_C | SSLサーバ証明書のsubject（Webサーバ）のCountry Name | JP
SSL_SERVER_CN | SSLサーバ証明書のsubjectのCommon Name | www.hws.hitachi.co.jp
SSL_SERVER_EMAIL | SSLサーバ証明書のsubjectのE-Mailアドレス | www-admin@hws.hitachi.co.jp
SSL_SERVER_L | SSLサーバ証明書のsubjectのLocality Name | Yokohama-shi
SSL_SERVER_O | SSLサーバ証明書のsubjectのOrganization Name | HITACHI,Ltd.
SSL_SERVER_OU | SSLサーバ証明書のsubjectのOrganization Unit Name | WebSite
SSL_SERVER_ST | SSLサーバ証明書のsubjectのState Name | Kanagawa

表B-4　SSL_SERVER_I_要素の例

環境変数名 | 内容 | 例
SSL_SERVER_I_C | SSLサーバ証明書のissuer（発行者）のCountry Name | JP
SSL_SERVER_I_CN | SSLサーバ証明書のissuerのCommon Name | ca1.hitachi.co.jp
SSL_SERVER_I_EMAIL | SSLサーバ証明書のissuerのE-Mailアドレス | ca-admin@ca1.hitachi.co.jp
SSL_SERVER_I_L | SSLサーバ証明書のissuerのLocality Name | Yokohama-shi
SSL_SERVER_I_O | SSLサーバ証明書のissuerのOrganization Name | LOCAL-CA
SSL_SERVER_I_OU | SSLサーバ証明書のissuerのOrganization Unit Name | ca1
SSL_SERVER_I_ST | SSLサーバ証明書のissuerのState Name | Kanagawa

表B-5　SSLクライアント認証時の環境変数一覧

環境変数名
内容
例

SSL_CLIENT_CERT
SSLクライアント証明書（DER-BASE64形式）
SSLExportClientCertificatesディレクティブの設定が必要です。
"MIIDrTCCAxagAwIBAgIBAjANBgkqhkiG9w0BAQQFADCBlzELMAkGA1UEBhMCSlAx..."

SSL_CLIENT_CERT_n
SSLクライアント証明書を発行したCAからルートCAまでのCA証明書（nはチェーン数を示す正の整数） （DER-BASE64形式）
SSLExportCertChainDepthディレクティブの設定が必要です。
"MIIDrTCCAxagAwIBAgIBAjANBgkqhkiG9w0BAQQFADCBlzELMAkGA1UEBhMCSlAx..."

SSL_CLIENT_DN
SSLクライアント証明書のsubjectのDistinguish Name
/C=JP/ST=Kanagawa/L=Yokohama/O=Hitachi/OU=soft/CN=c_name/Email=c_name@soft.hitachi.co.jp

SSL_CLIENT_要素
SSLクライアント証明書のsubjectのDistinguish Nameの各要素
SSL_CLIENT_DNが上記の例の場合を表B-6に示します。

SSL_CLIENT_I_DN
SSLクライアント証明書のissuerのDistinguish Name
/C=JP/ST=Kanagawa/L=Yokohama-shi/O=LOCAL-CA/OU=ca1/CN=ca1.hitachi.co.jp/Email=ca-admin@ca1.hitachi.co.jp

SSL_CLIENT_I_要素
SSLクライアント証明書のissuerのDistinguish Nameの各要素
SSL_CLIENT_I_DNが上記の例の場合を表B-7に示します。

表B-6　SSL_CLIENT_要素の例

環境変数名 | 内容 | 例
SSL_CLIENT_C | SSLクライアント証明書のsubjectのCountry Name | JP
SSL_CLIENT_CN | SSLクライアント証明書のsubjectのCommon Name | c_name
SSL_CLIENT_EMAIL | SSLクライアント証明書のsubjectのE-Mailアドレス | c_name@soft.hitachi.co.jp
SSL_CLIENT_L | SSLクライアント証明書のsubjectのLocality Name | Yokohama
SSL_CLIENT_O | SSLクライアント証明書のsubjectのOrganization Name | Hitachi
SSL_CLIENT_OU | SSLクライアント証明書のsubjectのOrganization Unit Name | soft
SSL_CLIENT_ST | SSLクライアント証明書のsubjectのState Name | Kanagawa

表B-7　SSL_CLIENT_I_要素の例

環境変数名 | 内容 | 例
SSL_CLIENT_I_C | SSLクライアント証明書のissuerのCountry Name | JP
SSL_CLIENT_I_CN | SSLクライアント証明書のissuerのCommon Name | ca1.hitachi.co.jp
SSL_CLIENT_I_EMAIL | SSLクライアント証明書のissuerのE-Mailアドレス | ca-admin@ca1.hitachi.co.jp
SSL_CLIENT_I_L | SSLクライアント証明書のissuerのLocality Name | Yokohama-shi
SSL_CLIENT_I_O | SSLクライアント証明書のissuerのOrganization Name | LOCAL-CA
SSL_CLIENT_I_OU | SSLクライアント証明書のissuerのOrganization Unit Name | ca1
SSL_CLIENT_I_ST | SSLクライアント証明書のissuerのState Name | Kanagawa

付録C　高信頼化システム監視機能HAモニタによるシステム監視（クラスタリングシステムの運用）

高信頼化システム監視機能HAモニタは，システムの信頼性，稼働率の向上を目的として，サーバプログラム（以降，サーバと略します）を含めたシステムの切り替えを実現するソフトウェアです。

Hitachi Web Serverは，HAモニタを使用したクラスタリングシステムで運用できます。なお，HAモニタの詳細については，マニュアル「高信頼化システム監視機能　HAモニタ」を参照してください。また，Hitachi Web Serverの前提プログラム（OSなど）や関連プログラム（CGIプログラムなど）をクラスタリングシステム構成で運用する場合の詳細については，各プログラムのマニュアルを参照してください。

HAモニタを使用すると，ハードウェア障害およびソフトウェア異常停止によるコンテンツ配信の停止時間を最小限にとどめたWebサーバ運用ができます。また，サービスを停止しないで，ソフトウェアの管理，保守およびバージョンアップができます。

対象となる主な障害

HAモニタが対象とする障害（HAモニタが検出する障害）は，サーバに発生するサーバ障害と，系に発生する系障害とに分けられます。系とは，業務処理に必要なハードウェアのほか，実行するプログラムや通信機器も含めたシステム全体の総称です。HAモニタの対象となる主な障害には，次のものがあります。

サーバ障害

サーバの論理エラー

リソース（ディスク装置など）の障害

系障害

系のハードウェア障害または電源断

カーネルの障害

HAモニタの障害

監視パスの障害

系のスローダウン

＜この節の構成＞

付録C.1　ハードウェア構成例とHAモニタの動作概要

付録C.2　Hitachi Web Serverの設定

付録C.3　監視コマンドの作成

付録C.4　HAモニタの設定

付録C.1　ハードウェア構成例とHAモニタの動作概要

HAモニタは，監視対象のシステム（以降，現用系と呼ぶ）に障害が発生すると，予備のシステム（以降，予備系と呼ぶ）に処理を切り替えて業務処理を続行します。この動作を，系切り替え機能といいます。

次に系切り替えとLANアダプタを二重化した場合について，それぞれのハードウェア構成例と動作の概要を示します。

＜この項の構成＞

(1)　1：1系切り替えの構成例

(2)　LANアダプタを二重化した場合の構成例

(1)　1：1系切り替えの構成例

現用系と予備系が1：1に対応している構成の例について示します。

現用系と予備系の2台のサーバ構成で，サーバがサービスを提供するためのLAN，互いの系を監視するための監視パスおよび実行系で障害が発生した場合にリセット指示をするためのリセットパスによって，2台のシステム間が接続されています。ディスク記憶装置は，ノード間で共有します。

現用系に障害が発生すると，HAモニタは現用系を停止させて系切り替えをします。共有ディスクは，予備系のシステムの方にマウントされます。1：1系切り替えの構成例を次に示します。

図C-1　1：1系切り替えの構成例

(2)　LANアダプタを二重化した場合の構成例

HP-UX HAモニタでは，系内でのLANアダプタの二重化も制御できます。サーバが使用するLANアダプタを現用，予備の組み合わせで二重化として定義することによって，HAモニタは一定間隔でLANの活性状態を調査し，現用LANアダプタが障害になった場合に自動的に予備系のLANアダプタに切り替えます。

LANアダプタを二重化した場合の構成例を次に示します。

図C-2　LANアダプタを二重化した場合の構成例

付録C.2　Hitachi Web Serverの設定

HAモニタに適用するための，Hitachi Web Serverの設定手順を次に示します。

Hitachi Web Serverを各系のローカルディスクにそれぞれインストールします。

Hitachi Web Serverのコンフィグファイルを作成し，各系に配布します。

設定に当たっては，次の点に注意してください。

＜この項の構成＞

(1)　バーチャルホストの場合

(2)　IPアドレスの指定

(3)　コンフィグファイルの文法チェック

(4)　コンフィグファイルの変更

(5)　CRLを使用して運用している場合

(1)　バーチャルホストの場合

系切り替えの結果，クライアントに返送されるサーバ名が変更される場合があります。このため，バーチャルホストでもServerNameディレクティブは必ず設定してください。

(2)　IPアドレスの指定

IPアドレスを指定するディレクティブ（<VirtualHost>，BindAddress，Listen，NameVirtualHost）では，物理IPアドレスではなく，論理IPアドレス（エイリアスIPアドレス）を使用してください。

(3)　コンフィグファイルの文法チェック

HAモニタの起動の前には，"/opt/hitachi/httpsd/sbin/httpsdctl configtest"を実行し，サーバ設定が正しいことを確認してください。

(4)　コンフィグファイルの変更

コマンド"httpsdctl restart"または"httpsdctl graceful"をコマンドラインから直接実行すれば，HAモニタ使用中にHitachi Web Serverの設定を変更できます。変更内容は，ほかの系にも反映する必要があります。

(5)　CRLを使用して運用している場合

CRLを用いて運用しているときは，予備系の場合でも，現用系と同様のCRLを設定する必要があります。

付録C.3　監視コマンドの作成

HAモニタでは，HAモニタとインタフェースを持たないサーバについては，サーバ障害をHAモニタに通知するためのプログラムをHAモニタに登録する必要があります。したがって，HAモニタとのインタフェースを持たないHitachi Web Serverを監視対象とするためには，Hitachi Web Serverの動作を監視するコマンドを作成してください。監視対象としない場合はコマンドを作成する必要はありません。

Hitachi Web Serverでは，実行コマンドと実際にサービスするプロセスが異なります。HAモニタの監視対象とするためには，実際のプロセスを監視するコマンドを作成してください。

次に「Hitachi Web Serverに障害が発生して停止したと同時にその実行を終了する」という処理をするスクリプトの例を示します。

（例）

PidFileディレクティブで指定したファイルに記録されているプロセスIDが実行中かどうかを，5秒おきに監視するシェルスクリプト（httpsd_monitor）です。

#!/bin/sh
###############################################################
### ALL RIGHTS RESERVED. COPYRIGHT (C) 2000, 2002, HITACHI,LTD.
###############################################################
HWSIDFILE=/opt/hitachi/httpsd/logs/httpd.pid
HWSITIME=5

if [ ! -e $HWSIDFILE ]
then
   exit 1
fi

HWSID=`cat $HWSIDFILE`
if [ x$HWSID = "x" ]
then
   exit 1
fi

while true
do
  STATUS=`ps -p $HWSID | grep $HWSID | awk '{print $1}' `
  if [ x$STATUS = "x" ]
  then
    break
  fi
  sleep $HWSITIME
done

exit 0

＜この項の構成＞

(1)　注意事項

(1)　注意事項

Hitachi Web Serverでは，リクエストを処理するためのプロセス群を制御するプロセスが一つあります（「4.1　Hitachi Web Serverの処理とディレクティブとの関係」参照）。例に示したスクリプトhttpsd_monitorでは，その制御プロセスが動作しているかどうかを監視します。リクエスト処理のためのプロセス群の動作は監視しません。

付録C.4　HAモニタの設定

Hitachi Web Serverと，必要であれば関連プログラムをHAモニタに設定します。ここで説明していない内容および詳細説明については，マニュアル「高信頼化システム監視機能　HAモニタ」を参照してください。

Hitachi Web ServerのHAモニタへの設定手順を次に示します。

HAモニタの環境設定をします。

必要に応じて，Hitachi Web Serverを監視するためのスクリプト，開始スクリプトおよび停止スクリプトを作成し，各系に配布します。

Hitachi Web Serverに対応した，HAモニタの環境設定をします。

HAモニタを起動し，HAモニタのコマンドでHitachi Web Serverを起動します。

＜この項の構成＞

(1)　起動および停止スクリプトの作成

(2)　Hitachi Web Serverに対応したHAモニタの環境設定

(3)　注意事項

(1)　起動および停止スクリプトの作成

HAモニタがHitachi Web Serverを起動および停止するためには，起動および停止スクリプトを作成し登録する必要があります。

(a)　開始スクリプト例

#!/bin/sh
/opt/hitachi/httpsd/sbin/httpsdctl start

(b)　停止スクリプト例

#!/bin/sh
/opt/hitachi/httpsd/sbin/httpsdctl stop

(2)　Hitachi Web Serverに対応したHAモニタの環境設定

HAモニタ環境設定用ディレクトリ下にある，serversというファイルにサーバ対応の環境を設定します。ここで，開始スクリプト，停止スクリプトおよび監視コマンドについて設定します。

(a)　環境設定例

サーバ対応の環境設定例を次に示します。各オペランド，設定の詳細については，マニュアル「高信頼化システム監視機能　HAモニタ」を参照してください。

/* サーバ対応環境設定例 (現用系の例) */                                            
      server  name                   /home/work/hws-start.sh, /* 開始スクリプト */
              alias                  HWS,                        　　　　　　　  
              acttype                monitor,                    　　　　　　　  
              termcommand            /home/work/hws-stop.sh,  /* 停止スクリプト */
              switchtype             switch,                     　　　　　　　  
              initial                online,                  /* 現用系の設定　 */
              patrolcommand          /home/work/httpsd_monitor, /* 監視コマンド */
              servexec_retry         2,                          　　　　　　　  
              waitserv_exec          yes;                        　　　　　　　  

(3)　注意事項

系切り替えが発生した場合，通常のHTTP接続，SSLを使用した接続はすべて切断され，予備系には引き継がれません。クライアントは，再接続してください。

付録D　MC/ServiceGuardによるシステム監視（クラスタリングシステムの運用）

MC/ServiceGuardは，クラスタリングシステムを構築するHewlett-Packard社のソフトウェアです。Hitachi Web Serverは，MC/ServiceGuardを使用したクラスタリングシステムで運用できます。なお，MC/ServiceGuardの詳細については，MC/ServiceGuardのマニュアルを参照してください。また，Hitachi Web Serverの前提プログラム（OSなど）や関連プログラム（CGIプログラムなど）をクラスタリングシステム構成で運用する場合の詳細については，各プログラムのマニュアルを参照してください。

MC/ServiceGuardを利用すると，ハードウェア障害およびソフトウェア異常停止によるコンテンツ配信の停止時間を最小限にとどめたWebサーバ運用ができます。また，サービスを停止しないで，ソフトウェアの管理，保守およびバージョンアップもできます。

対象となる主な障害

MC/ServiceGuardの対象となる主な障害には，次のものがあります。

LAN障害

リソース（システム演算処理装置，ディスク，インタフェース）障害

ソフトウェアの異常停止

＜この節の構成＞

付録D.1　ハードウェア構成例とMC/ServiceGuardの動作概要

付録D.2　Hitachi Web Serverの設定

付録D.3　監視スクリプトの作成

付録D.4　MC/ServiceGuardの設定

付録D.1　ハードウェア構成例とMC/ServiceGuardの動作概要

MC/ServiceGuardは，監視対象のシステム（以降，1次系とする）に障害が発生すると，予備のシステム（以降，待機系とする）に処理を切り替えてサービスを続行します。この動作を，フェイルオーバといいます。ローカルノードでの運用と複数ノードでの運用で，フェイルオーバの動作が異なります。

それぞれのハードウェア構成例とフェイルオーバの概要を次に示します。

＜この項の構成＞

(1)　ローカルノードの運用の例

(2)　複数のノードの運用の例

(1)　ローカルノードの運用の例

LANは二重化していて，一方を１次LAN，他方を待機LANとしているシステムで，双方のLANに対応するLANカードを接続している場合の例を示します。

この場合，1次系LANカードに障害が発生すると，同一ノード上の待機系LANカードに接続が切り替えられます。ローカルノードの運用の例を次に示します。

図D-1　ローカルノードの運用の例

(2)　複数のノードの運用の例

LANを二重化した場合の例について示します。

一方を１次LAN，他方を待機LANとしているシステムで，双方のLANに対応するLANカードをそれぞれのノードに接続します。さらに，ハートビート専用LANまたはRS232通信を使用したハートビートラインを設け，１次LANと合わせハートビート用の通信線を２重構成とします。ディスク記憶装置は，ノード間で共有します。

1次ノードに障害が発生し，他ノードへのフェイルオーバが必要だと判断すると，１次系システムを停止させ，待機系システム上で再度パッケージを起動してサービスを継続させます。共有ディスクは，待機系システムの方にマウントされます。複数ノードの運用の例を次に示します。

図D-2　複数ノードの運用の例（MC/ServiceGuard）

付録D.2　Hitachi Web Serverの設定

MC/ServiceGuardに適用するための，Hitachi Web Serverの設定手順を次に示します。

Hitachi Web Serverを各ノードのローカルディスクにそれぞれインストールします。

必要に応じて，Hitachi Web Serverを監視するためのスクリプトを作成します。

MC/ServiceGuardの設定をします。

Hitachi Web Serverのコンフィグファイル，作成した監視スクリプトおよびMC/ServiceGuardのパッケージ制御スクリプトを各ノードに配布します。

MC/ServiceGuardを起動します。

環境設定については，次の点に注意してください。

＜この項の構成＞

(1)　バーチャルホストの場合

(2)　IPアドレスの指定

(3)　コンフィグファイルの文法チェック

(4)　コンフィグファイルの変更

(5)　CRLを使用して運用している場合

(1)　バーチャルホストの場合

フェイルオーバの結果，クライアントに返送されるサーバ名が変化する場合があります。このため，バーチャルホストでもServerNameディレクティブは必ず設定してください。

(2)　IPアドレスの指定

IPアドレスを指定するディレクティブ（<VirtualHost>，BindAddress，Listen，NameVirtualHost）では，定常IPアドレス（他ノードに移動できないIPアドレス）ではなく，再配置できるIPアドレス（パッケージに対して与えられ，他ノードに移動できるIPアドレス）を使用してください。

(3)　コンフィグファイルの文法チェック

MC/ServiceGuardの起動の前には，"/opt/hitachi/httpsd/sbin/httpsdctl configtest"を実行し，サーバ設定が正しいことを確認してください。

(4)　コンフィグファイルの変更

コマンド"httpsdctl restart"または"httpsdctl graceful"をコマンドラインから直接実行すれば，MC/ServiceGuard使用中にHitachi Web Serverの設定を変更できます。変更内容は，ほかのノードにも反映する必要があります。

(5)　CRLを使用して運用している場合

待機ノードにも，1次ノードと同様のCRLを設定する必要があります。

付録D.3　監視スクリプトの作成

MC/ServiceGuardでは，ソフトウェアを監視対象とするためには，各実行コマンドが実際のサービスの名前であることと，そのプロセスが実際にサービスが終了するまで動作している必要があります。

Hitachi Web Serverでは，実行コマンドと実際にサービスするプロセスが異なります。MC/ServiceGuardの監視対象とするためには，実際のプロセスを監視するスクリプトを作成してください。

ただし，監視対象としない場合や，ローカルノードだけの運用の場合，すなわち他ノードにフェイルオーバをさせない場合には，スクリプトを作成する必要はありません。

Hitachi Web Serverの動作を監視するためのシェルスクリプトを作成します。「Hitachi Web Serverに障害が発生して停止したと同時にその実行を終了する」という処理をするスクリプトの例を示します。

（例）

PidFileディレクティブで指定したファイルに記録されているプロセスIDが実行中かどうかを，5秒おきに監視するシェルスクリプト（httpsd_monitor）です。PidFileディレクティブ指定値を絶対パスで表したものを引数に指定します。

#!/bin/sh
###########################################################
### P-1B41-E171    Hitachi Web Server
### ALL RIGHTS RESERVED, COPYRIGHT (C) 2000, HITACHI,LTD.
###########################################################
HWSITIME=5  
if [ $# -ne 1 ]
then
   exit 1
fi

HWSIDFILE=$1

if [ ! -e $HWSIDFILE ]
then
   exit 1
fi

HWSID=`cat $HWSIDFILE`
if [ x$HWSID = "x" ]
then
   exit 1
fi

while true
do
  STATUS=`ps -p $HWSID | grep $HWSID | awk '{print $1}' `
  if [ x$STATUS = "x" ]
  then
    break
  fi
  sleep $HWSITIME
done

exit 0

＜この項の構成＞

(1)　注意事項

(1)　注意事項

Hitachi Web Serverでは，リクエストを処理するためのプロセス群を制御するプロセスが一つあります（「4.1　Hitachi Web Serverの処理とディレクティブとの関係」参照）。例に示したスクリプトhttpsd_monitorでは，その制御プロセスが動作しているかどうかを監視します。リクエスト処理のためのプロセス群の動作は監視しません。

付録D.4　MC/ServiceGuardの設定

Hitachi Web Serverと，必要であれば関連プログラムをパッケージに定義します。ここで説明していない内容および詳細説明については， MC/ServiceGuardのマニュアルを参照してください。

＜この項の構成＞

(1)　クラスタの構成およびパッケージの構成

(2)　パッケージ制御スクリプトの記述

(3)　注意事項

(1)　クラスタの構成およびパッケージの構成

クラスタの構成およびパッケージの構成例を次に示します。

(a)　クラスタ構成例

CLUSTER_NAME cluster1
FIRST_CLUSTER_LOCK_VG /dev/vg01
NODE_NAME original_node
NETWORK_INTERFACE lan0
HEARTBEAT_IP 172.16.1.1
FIRST_CLUSTER_LOCK_PV /dev/dsk/c1t2d0
NODE_NAME adoptive_node
NETWORK_INTERFACE lan0
HEARTBEAT_IP 172.16.1.2
FIRST_CLUSTER_LOCK_PV /dev/dsk/c1t2d0
HEARTBEAT_INTERVAL 1000000
NODE_TIMEOUT 2000000
AUTO_START_TIMEOUT 600000000
NETWORK_POLLING_INTERVAL 2000000
MAX_CONFIGURED_PACKAGES 10
VOLUME_GROUP /dev/vg01

(b)　パッケージ構成例

PACKAGE_NAME HitachiWebServer
FAILOVER_POLICY CONFIGURED_NODE
FAILBACK_POLICY MANUAL
NODE_NAME original_node
NODE_NAME adoptive_node
RUN_SCRIPT /etc/cmcluster/HitachiWebServer/control.sh
RUN_SCRIPT_TIMEOUT NO_TIMEOUT
HALT_SCRIPT /etc/cmcluster/HitachiWebServer/control.sh
HALT_SCRIPT_TIMEOUT NO_TIMEOUT
SERVICE_NAME httpsd_check
SERVICE_FAIL_FAST_ENABLED NO
SERVICE_HALT_TIMEOUT 300
SUBNET 172.16.1.0
PKG_SWITCHING_ENABLED YES
NET_SWITCHING_ENABLED YES
NODE_FAIL_FAST_ENABLED NO

(2)　パッケージ制御スクリプトの記述

Hitachi Web Serverを監視する場合のパッケージ制御スクリプトの記述について説明します。次に示す説明以外は，個々のシステムに応じて設定してください。

(a)　スクリプトの登録

作成したシェルスクリプトhttpsd_monitorを，MC/ServiceGuardが監視するサービスとして登録します。次の例では，httpsd_monitorが/opt/hitachi/httpsd/binに格納されていることを前提としています。

なお，Hitachi Web Serverのコンフィグファイルに指定したPidFileディレクティブの値と，httpsd_monitorの引数には，同じ値を指定します。Hitachi Web Serverを監視対象としない場合，SERVER_NAMEとSERVER_CMDは登録する必要はありません。

PATH=/sbin:/usr/bin:/usr/sbin:/etc:/bin
VGCHANGE="vgchange -a e"
VG[0]=/dev/vg01
LV[0]=/dev/vg01/lvol1
FS[0]=/MCSG
FS_MOUNT_OPT[0]="-o rw"
IP[0]=172.16.1.3
SUBNET[0]=172.16.1.0
SERVICE_NAME[0]="httpsd_check"
SERVICE_CMD[0]="/opt/hitachi/httpsd/bin/httpsd_monitor
               /opt/hitachi/httpsd/logs/httpd.pid"
SERVICE_RESTART[0]="-r 0"

(b)　関数の定義

パッケージ制御スクリプト内の関数customer_defined_run_cmds（パッケージ起動時）と，関数customer_defined_halt_cmds（パッケージ停止時）内に，Hitachi Web Serverを起動または終了させる処理を記述してください。

（起動）

function customer_defined_run_cmds
{
# ADD customer defined run commands.
: # do nothing instruction, because a function must contain some command.
 /opt/hitachi/httpsd/sbin/httpsdctl start
 test_return 51
}

（終了）

function customer_defined_halt_cmds
{
# ADD customer defined halt commands.
: # do nothing instruction, because a function must contain some command.
 /opt/hitachi/httpsd/sbin/httpsdctl stop
test_return 52
}

(3)　注意事項

ほかのノードへのフェイルオーバが発生した場合，通常のHTTP接続，SSLを使用した接続はすべて切断され，待機ノードには引き継がれません。クライアントは，再接続してください。

付録E　HACMP for AIXによるシステム監視（クラスタ・マルチプロセッシングの運用）

主幹業務の計算プラットフォームを構築するためにIBM社が開発したツールがHACMP for AIXソフトウェアです。HACMP for AIXには，ハイ・アベイラビリティー（HA）およびクラスタ・マルチプロセッシング（CMP）という二つの主要なコンポーネントがあります。Hitachi Web Serverは，HACMP for AIXを使用したクラスタ・マルチプロセッシングで運用できます。なお，HACMP for AIXの詳細については，HACMP for AIXのマニュアルを参照してください。また，Hitachi Web Serverの前提プログラム（OSなど）や関連プログラム（CGIプログラムなど）をクラスタ・マルチプロセッシング構成で運用する場合の詳細については，各プログラムのマニュアルを参照してください。

HACMP for AIXを利用すると，ハードウェア障害およびソフトウェア異常停止によるコンテンツ配信の停止時間を最小限にとどめたWebサーバ運用ができます。また，サービスを停止しないで，ソフトウェアの管理，保守およびバージョンアップもできます。

対象となる主な障害

HACMP for AIXの対象となる主な障害には，次のものがあります。

LAN障害

リソース（システム演算処理装置，ディスク，インタフェース）障害

ソフトウェアの異常停止

＜この節の構成＞

付録E.1　ハードウェア構成例とHACMP for AIXの動作概要

付録E.2　Hitachi Web Serverの設定

付録E.3　監視スクリプトの作成

付録E.4　HACMP for AIXの設定

付録E.1　ハードウェア構成例とHACMP for AIXの動作概要

HACMP for AIXは，監視対象のノードに障害が発生すると，予備のノードに処理を切り替えてサービスを続行します。この動作を，テイクオーバといいます。テイクオーバには，次に示す切り替え機能があります。

ノード

アプリケーション

ネットワークおよびネットワーク・アダプタ

ディスクおよびディスク・アダプタ

次にネットワークの障害例とアプリケーションの障害例を示します。

＜この項の構成＞

(1)　ネットワークの障害例

(2)　アプリケーションの障害例

(1)　ネットワークの障害例

LANアダプタを二重化するときは，一方をアプリケーションのサービスをするために稼働させるアダプタ（サービス・アダプタ）とし，他方をサービス・アダプタをバックアップするアダプタ（スタンバイ・アダプタ）として定義します。

この構成では，サービス・アダプタ側に障害が発生すると，同一ノード上のスタンバイ・アダプタに接続が切り替えられます。アダプタの二重化について，次に示します。

図E-1　アダプタの二重化

(2)　アプリケーションの障害例

ノードを二重化した場合の例について示します。

稼働ノード（サービス・ノード）とバックアップ用ノード（スタンバイ・ノード）の2台のサーバ構成で，LANを二重化し，双方の監視用パスとしてRS232通信を使用して2台のノード間を接続する構成とします。ディスク記憶装置は，ノード間で共有します。

サービス・ノードに障害が発生し，他ノードへのフォールオーバが必要だと判断すると，サービス・ノードを除去して，スタンバイ・ノード上でサービスを継続させます。共有ディスクは，スタンバイ・ノードで継続的に利用できます。複数ノードの運用の例を，次に示します。

図E-2　複数ノードの運用の例（HACMP for AIX）

付録E.2　Hitachi Web Serverの設定

HACMP for AIXに適用するための，Hitachi Web Serverの設定手順を次に示します。

Hitachi Web Serverを各ノードのローカルディスクにそれぞれインストールします。

サービス・ノード上でHitachi Web Serverのコンフィグファイル，開始スクリプト，停止スクリプトおよびモニタメソッドを作成します。

必要に応じて，コンフィグファイル，開始スクリプト，停止スクリプトおよびモニタメソッドをスタンバイ・ノードへ配布します。

HACMP for AIXでHitachi Web Server用のアプリケーションサーバを定義します。

HACMP for AIXでHitachi Web Server用のアプリケーションモニタを定義します。

HACMP for AIXの定義を完成し，クラスタ定義をすべてのノードで同期化します。

クラスタサービスを開始します。

環境設定については，次の点に注意してください。

＜この項の構成＞

(1)　コンフィグファイルの文法チェック

(2)　コンフィグファイルの変更

(3)　CRLを用いて運用している場合

(1)　コンフィグファイルの文法チェック

クラスタサービスの開始前には，"/opt/hitachi/httpsd/sbin/httpsdctl　configtest"を実行し，サーバ設定が正しいことを確認してください。

(2)　コンフィグファイルの変更

コマンド"httpsdctl restart"または"httpsdctl graceful"をコマンドラインから直接実行すれば，HACMP for AIXで使用中にHitachi Web Serverの設定を変更できます。変更内容は，ほかのノードにも反映する必要があります。

(3)　CRLを用いて運用している場合

CRLを用いて運用しているときは，スタンバイノード上でも，サービスノードと同様のCRLを設定する必要があります。

付録E.3　監視スクリプトの作成

HACMP for AIXで，Hitachi Web Serverを監視対象とするためには，Hitachi Web Serverの動作をモニタするスクリプトを作成して，モニタメソッドに登録する必要があります。このスクリプトは，Hitachi Web Serverが正常であれば0を戻し，問題を検出したときに0以外の値を戻す必要があります。

Hitachi Web Serverでは，実行コマンドと実際にサービスするプロセスが異なります。HACMP for AIXの監視対象とするためには，実際のプロセスを監視するスクリプトを作成してください。

ただし，監視対象としない場合や，ローカルノードだけの運用の場合にはスクリプトを作成する必要はありません。

Hitachi Web Serverの動作を監視するためのシェルスクリプトを作成します。「Hitachi Web Serverが正常であれば0を戻し，問題を検出したときに0以外の値を戻す」という処理をするスクリプトの例を示します。

（例）

PidFileディレクティブで指定したファイルに記録されているプロセスIDが実行中であれば0を戻し，実行されていなければ1を戻すスクリプトです。

#!/bin/sh
###########################################################
### P-1M41-E171    Hitachi Web Server
### ALL RIGHTS RESERVED, COPYRIGHT (C) 2001, HITACHI,LTD.
###########################################################

HWSIDFILE=/opt/hitachi/httpsd/logs/httpd.pid
if [ ! -e $HWSIDFILE ]
then
       exit 1
fi

HWSID=`cat $HWSIDFILE`
if [ x$HWSID = "x" ]
then
       exit 1
fi

STATUS=`ps -p $HWSID | grep $HWSID | awk '{print $1}'`

if [ x$STATUS = "x" ]
then
       exit 1
else
       exit 0
fi

＜この項の構成＞

(1)　注意事項

(1)　注意事項

Hitachi Web Serverでは，リクエストを処理するためのプロセス群を制御するプロセスが一つあります（「4.1　Hitachi Web Serverの処理とディレクティブとの関係」を参照してください）。例に示したスクリプトでは，その制御プロセスが動作しているかどうかを監視します。リクエスト処理のためのプロセス群の動作は監視しません。

付録E.4　HACMP for AIXの設定

Hitachi Web Serverと，必要であれば関連プログラムをパッケージに定義します。ここで説明していない内容および詳細説明については，HACMP for AIXのマニュアルを参照してください。

＜この項の構成＞

(1)　Hitachi Web Serverのアプリケーション・サーバ登録方法

(2)　Hitachi Web Serverのモニタ方法

(3)　注意事項

(1)　Hitachi Web Serverのアプリケーション・サーバ登録方法

HACMP for AIXでHitachi Web Serverを管理するためには，Hitachi Web Serverをアプリケーション・サーバとして登録する必要があります。

SMITを使い「アプリケーション・サーバの追加（Add an Application Server）」画面を選び，Hitachi Web Server用のサーバ名，開始スクリプトおよび停止スクリプトを登録します。

(a)　開始スクリプト例

#!/bin/sh
/opt/hitachi/httpsd/sbin/httpsdctl start

(b)　停止スクリプト例

#!/bin/sh
/opt/hitachi/httpsd/sbin/httpsdctl stop

(2)　Hitachi Web Serverのモニタ方法

HACMP for AIXでHitachi Web Serverを監視するためには，監視スクリプトを登録する必要があります。運用を考慮してスクリプトを作成します。

HACMP/ES（拡張スケーラブル機能）を使った場合はSMITを使い「ユーザ定義アプリケーション・モニタの追加（Add Custom Application Monitor）」画面を選び，Hitachi Web Server用の監視スクリプトを登録できます。

(3)　注意事項

ほかのノードへのテイクオーバが発生した場合，通常のHTTP接続，SSLを使用した接続はすべて切断され，待機ノードには引き継がれません。クライアントは，再接続してください。

付録F　Microsoftサーバクラスタによるシステム監視

MicrosoftサーバクラスタはMicrosoft社のソフトウェアです。Hitachi Web Serverは，Microsoftサーバクラスタを使用し，クラスタサービスを実行し運用できます。なお，Microsoftサーバクラスタの詳細については，Microsoftサーバクラスタのマニュアルを参照してください。

サーバクラスタの対象となる主な障害には，次のものがあります。

LAN障害

リソース（システム演算処理装置，ディスク，インタフェース）障害

ソフトウェアの異常停止

サーバクラスタは，監視対象のシステム（以降，1次系とする）に障害が発生すると，予備のシステム（以降，待機系とする）に処理を切り替えてサービスを続行します。この動作を，フェイルオーバといいます。

Windows Server 2008でご使用になる場合は，用語を次のように読み替えてご使用ください。

本書およびマニュアルに記載の用語 | Windows Server 2008よりの用語
Microsoft Cluster Serviceまたは，Microsoftサーバクラスタ | Windows Server Failover Cluster
クラスタアドミニストレータ | フェールオーバー クラスタ管理
グループまたは，リソースグループ | クラスタ化されたサービスやアプリケーション

＜この節の構成＞

付録F.1　運用の例

付録F.2　Hitachi Web Serverの設定

付録F.3　サーバクラスタの設定

付録F.1　運用の例

1次ノードに障害が発生し，他ノードへのフェイルオーバが必要だと判断すると，１次系システムを停止させ，待機系システム上で起動してサービスを継続させます。共有ディスクは，待機系システムの方にマウントされます。複数ノードの運用の例を次に示します。

図F-1　複数ノードの運用の例（Microsoftサーバクラスタ）

付録F.2　Hitachi Web Serverの設定

サーバクラスタに適用するための，Hitachi Web Serverの設定手順を次に示します。

Hitachi Web Serverを各ノードのローカルディスクにそれぞれインストールします。

各ノードで，Hitachi Web ServerをWindowsのサービスとして登録します。登録するサービス名は各ノードで共通にします。Hitachi Web Serverをインストールしたときに登録される，サービス名"Hitachi Web Server"のサービスをクラスタ化したい場合は，この手順は不要です。

サーバクラスタの設定をします。

Hitachi Web Serverのコンフィグファイルを各ノードに配布します。

サーバクラスタのグループをオンラインにします。

環境設定については，次の点に注意してください。

＜この項の構成＞

(1)　バーチャルホストの場合

(2)　IPアドレスの指定

(3)　コンフィグファイルの文法チェック

(4)　コンフィグファイルの変更

(5)　CRLを使用して運用している場合

(6)　リソースの種類

(1)　バーチャルホストの場合

フェイルオーバの結果，クライアントに返送されるサーバ名が変化する場合があります。このため，バーチャルホストでもServerNameディレクティブは必ず設定してください。

(2)　IPアドレスの指定

IPアドレスを指定するディレクティブ（<VirtualHost>，BindAddress，Listen，NameVirtualHost）では，LANカードに指定されたIPアドレス（他ノードに移動できないIPアドレス）ではなく，再配置できるIPアドレス（リソースモジュールに対して与えられ，他ノードに移動できるIPアドレス）を使用してください。

(3)　コンフィグファイルの文法チェック

サーバクラスタの起動の前には，インストールしたディレクトリで"httpsd -t"を実行し，サーバ設定が正しいことを確認してください。Hitachi Web Serverのコンフィグファイルの中で，IPアドレスや記憶域など，クラスタのグループに属しているリソースを参照している場合，確認しようとしているノードにグループを移動してから，”httpsd -t”を実行してください。

(4)　コンフィグファイルの変更

サービスがオンライン中のノードで，httpsdコマンドやスタートメニューによりHitachi Web Serverのサービスを再起動すれば，サーバクラスタで使用中のサービスをオフラインにすることなくHitachi Web Serverの設定を変更できます。コンフィグファイルの変更内容は，ほかのノードにも反映する必要があります。

(5)　CRLを使用して運用している場合

待機ノードにも，1次ノードと同様のCRLを設定する必要があります。

(6)　リソースの種類

Hitachi Web Serverをリソースで指定する場合，汎用アプリケーションではなく汎用サービスで指定してください。汎用アプリケーションでは，Hitachi Web Serverは正常に動作しません。

付録F.3　サーバクラスタの設定

＜この項の構成＞

(1)　Microsoftサーバクラスタの設定（Windows Server 2003の場合）

(2)　Windows Server Failover Clusterの設定（Windows Server 2008の場合）

(1)　Microsoftサーバクラスタの設定（Windows Server 2003の場合）

Microsoftサーバクラスタの設定では，クラスタ管理ソフトウェアの「クラスタアドミニストレータ」を使用します。ツールの詳細については，Microsoft社のドキュメントを参照してください。

クラスタアドミニストレータを使用してグループを作成します。

そのグループに属する汎用サービス（Hitachi Web Serverのサービス），ネットワーク，IPアドレス，物理ディスクなど，フェイルオーバ時にノード間を移動するリソース類を作成します。汎用サービスを作成する際，起動パラメータの設定値は何も入力しないでください。

(2)　Windows Server Failover Clusterの設定（Windows Server 2008の場合）

Windows Server Failover Clusterの設定では，クラスタ管理ソフトウェアの「フェールオーバー クラスタ管理」およびclusterコマンドを使用します。これらの詳細については，Microsoft社のドキュメントを参照してください。

次に示す手順で設定します。

「フェールオーバー クラスタ管理」を使用して，Hitachi Web Serverのクラスタ化されたサービスを作成します。クラスタ化されたサービスに属する汎用サービス(Hitachi Web Serverのサービス)，クライアントアクセスポイント(名前・IPアドレス)，記憶域など，フェイルオーバ時にノード間を移動するリソース類を追加します。各項目のプロパティを表示し，リソースの依存関係やその他クラスタに関する設定を実施します。

管理者として実行したコマンドプロンプトを開きます。

コマンドプロンプトから，以下のコマンドを実行します。
cluster△res△"リソース名"△/priv△StartupParameters=""
△は半角スペースを表しています。リソース名には，Hitachi Web Serverの汎用サービスのリソース名を指定します。Hitachi Web Serverの汎用サービスのリソース名は「フェールオーバー クラスタ管理」から確認してください。

「フェールオーバー クラスタ管理」から，Hitachi Web Serverの汎用サービスのプロパティを開き，「セットアップ パラメータ」の値が空白になっていることを確認します。

付録G　バージョン03-00以降への移行方法

バージョン03-00より前のHitachi Web Serverをバージョン03-00以降へ移行する手順を次に示します。

Hitachi Web Serverを上書きインストールします。

次の設定を見直します。

ErrorDocumentディレクティブにテキストを指定している場合

バージョン03-00より前では，先頭に"を記述して文字列を指定しましたが，バージョン03-00以降は，文字列を""で囲ってください。

(例)

バージョン03-00より前での指定方法

　ErrorDocument 500 "Server Error.

バージョン03-00以降での指定方法

　ErrorDocument 500 "Server Error."

リバースプロキシを使用している場合

バージョン03-00より前では，Windows版ではmod_proxy.so，UNIX版ではlibproxy.soだけをロードしていましたが，バージョン03-00以降は，mod_proxy.soおよびmod_proxy_http.soの二つをロードしてください。UNIX版の場合は必ず下記の例に示す順序でロードしてください。

(例)

Windows版

バージョン03-00より前での指定方法

　LoadModule proxy_module modules/mod_proxy.so

バージョン03-00以降での指定方法

　LoadModule proxy_module modules/mod_proxy.so

　LoadModule proxy_http_module modules/mod_proxy_http.so

UNIX版

バージョン03-00より前での指定方法

　LoadModule proxy_module libexec/libproxy.so

バージョン03-00以降での指定方法

　LoadModule proxy_module libexec/mod_proxy.so

　LoadModule proxy_http_module libexec/mod_proxy_http.so

ShmemUIDisUserディレクティブを使用している場合

内部処理の変更に伴い，バージョン03-00以降はこのディレクティブは設定不要となりましたので，

ディレクティブ指定を削除してください。

TransferLogディレクティブ，CustomLogディレクティブ，ErrorLogディレクティブに対し，rotatelogsまたはrotatelogs2以外のプログラムをパイプ指定している場合(Windows版だけ)

ログ情報に含める改行コードがLFからCRLFに変更されました。そのためプログラムの見直しが必要となる場合があります。

ディレクティブにプログラムを指定するときは，プログラムの拡張子（例えば.exe）を含める必要があります。
(例) ログを出力するユーザ作成プログラムwritelogs.exeを指定する場合
バージョン03-00より前での指定方法
　CustomLog "|¥"¥"C:/proprietary/writelogs¥" プログラム引数¥""
バージョン03-00以降での指定方法
　CustomLog "|¥"¥"C:/proprietary/writelogs.exe¥" プログラム引数¥""

Hitachi Web Serverを起動します。

付録H　用語解説

<英字>

AES

Advanced Encryption Standardの略です。2000年に米国標準技術局（NIST）が，DESに代わる政府の標準暗号方式として採用した対称鍵暗号の一方式です。

Base64

E-Mailなどでバイナリデータを送信する場合に利用されるエンコード方式です。

CA

Certification Authorityの略です。SSLを使用するための証明書を発行する認証局です。

CGIプログラム

Common Gateway Interfaceの略です。Webサーバとサーバ上で動作するプログラムとのインタフェースをとるプログラムです。

CRL

Certificate Revocation Listの略です。鍵の漏洩などで鍵の信頼性が失われ，無効となった証明書のリストです。

CSR

Certificate Signing Requestの略です。Webサーバサイトの証明書を発行してもらうために，認証局（CA）に提出する証明書発行要求ファイルのことです。

DER

証明書，秘密鍵，CSRおよびCRLファイルの形式です。バイナリ形式のファイルです。

DES

Data Encryption Standardの略です。1977年に米国商務省標準局が，政府の標準暗号方式として公表した，対称鍵暗号の一方式です。

DNS

Domain Name Systemの略です。TCP/IPシステムの場合に，インターネットやイントラネットで使われる分散名前管理システムです。DNSを利用すると，Webで目的のサイトを探すときに，172.17.40.100などのわかりにくい数字（IPアドレス）ではなく，サイトを表すわかりやすい名前で指定できます。

DNSサーバは，ホスト名のルックアップ要求に答えて，IPアドレスからホスト名への変換やホスト名からIPアドレスへの変換をします。

DSO

Dynamic Shared Objectの略です。DSOによって，Webサーバの機能を動的に拡張できます。LoadModuleディレクティブに指定されたモジュールはDSOによってWebサーバに組み込まれます。

FQDN

Fully Qualified Domain Name（完全修飾ドメイン名）の略です。ホスト名＋ドメイン名による記述形式です。同一ホスト上に複数のサービスを稼働させる場合にネームサーバ上で別名定義することが多くあります。そのとき，wwwやnewsなどのホスト名を使用して，FQDNを定義します。一般的にはFQDNのことをホスト名と呼ぶ場合もあります。

HACMP for AIX

主幹業務の計算プラットフォームを構築するためにIBM社が開発したツールです。HACMP for AIXには，ハイ・アベイラビリティー（HA）およびクラスタ・マルチプロセッシング（CMP）という二つの主要なコンポーネントがあります。Hitachi Web Serverは，HACMP for AIXを使用したクラスタ・マルチプロセッシングで運用できます。

HTTP

HyperText Transfer Protocolの略です。WebサーバとWebブラウザ間の通信で使用するプロトコルです。

httpsd.confファイル

このファイルにWebサーバの環境を設定するディレクティブを定義します。

KeepAlive

一度のコネクションで複数のリクエストを処理する機能です。この機能を使用すると，コネクションの確立，解放のオーバヘッドがなくなり，レスポンスが良くなります。

LDAP

Lightweight Directory Access Protocolの略です。ISO標準であるX.500を簡略化したディレクトリ・アクセスのためのプロトコルです。インターネットやイントラネットなどのTCP/IPネットワークで，ディレクトリデータベースにアクセスするためのプロトコルです。

MC/ServiceGuard

MC/ServiceGuardは，Hewlett-Packard社のソフトウェア製品です。MC/ServiceGuardを使用すると，ハードウェア障害またはソフトウェア障害が発生した場合でも，予備の待機系ノードに処理を切り替え(フェイルオーバ)て，サービスの中断を最小限に抑えられます。

MD5

Message Digest Algorithm 5の略です。元になる長いメッセージから一方向性ハッシュ関数を使い，固定長のパターンを生成する技術の一方式です。デジタル署名などに用いられます。MD5はRFC1321で規定されています。

mime.typesファイル

コンテンツのファイル拡張子とコンテントタイプ（MIMEタイプ）の関連づけを定義するファイルです。TypesConfigディレクティブで異なるファイル名も指定できます。

NIS

Network Information Serviceの略です。Sun Microsystems社が開発しUNIXに導入した，ネットワーク管理システムです。

PEM

証明書，秘密鍵，CSRおよびCRLファイルの形式です。DER形式のファイルをBase64エンコード処理し，テキスト形式にしたファイルです。

PEM形式の証明書ファイルでは，データの前後に"-----BEGIN CERTIFICATE-----"，"-----END CERTIFICATE-----"というタグが付きます。

秘密鍵では，データの前後に"-----BEGIN RSA PRIVATE KEY-----"，"-----END RSA PRIVATE KEY-----"というタグが付きます。

CSRでは，データの前後に"-----BEGIN CERTIFICATE REQUEST-----"，"-----END CERTIFICATE REQUEST-----"というタグが付きます。

CRLでは，データの前後に"-----BEGIN X509 CRL-----"，"-----END X509 CRL-----" というタグが付きます。

QOS

ユーザに提供するネットワークの通信品質を制御する技術の総称です。

RC2

RSA Security, Inc.で開発された対称鍵暗号の一方式です。

RC4

RSA Security, Inc.で開発された対称鍵暗号の一方式です。

RFC

Request for Commentsの略です。インターネット上でのプロトコル標準などを含んでいる一連の文書またはその配布形式です。

RSA暗号

Rivest-Shamir-Adleman Schemeの略です。リベスト，シャミアおよびエイドルマンが1978年に発明した公開鍵暗号の一方式です。

SCM

Service Control Managerの略です。サービスを管理するシステムです。SCMは判明しているサービスのリストをレジストリによって管理して，コンピュータの起動時にそれらを自動的に開始するかまたはユーザから要求されたときに開始します。サービスとして動作するプログラムは通常のEXE（実行可能）ファイルですが，SCMと正常に通信するためのインタフェースを確立するために，Microsoftの提供する必要な関数を，必要な手順に従って実施しなければなりません。

SHA

Secure Hash Algorithmの略です。元になる長いメッセージから一方向性ハッシュ関数を使い，固定長のパターンを生成する技術の一方式です。デジタル署名などに用いられます。1995年に米国標準技術局(NIST)によってアメリカ政府の標準ハッシュ関数として採用されました。

SSL

Secure Sockets Layerの略です。TCP層の上位層です。クライアントとWebサーバの間で証明書による認証，鍵交換，暗号化およびメッセージ認証をします。

sslc.cnfファイル

SSL関連のユティリティを使用する場合の環境設定をするファイルです。

SSLバージョン2

Netscape Communications社によって開発されたSSLの初期バージョンです。

SSLバージョン3

SSLバージョン2に対して，大幅に改良したバージョンです。Netscape Communications社によって開発されています。

TLSバージョン1

SSLバージョン3を改訂し，IETF（The Internet Engineering Task Force）で標準化されているプロトコルです。

URI

Universal Resource Identifierの略です。インターネットのどこに，どんな情報があるかを位置づけるものです。RFC1630で規定されています。URIは一般的概念で，URLの上位集合です。

URL

Uniform Resource Locatorの略です。インターネットのどこに，どんな情報があるかを位置づけるものです。

Webサーバ

WWW環境を構築するソフトウェアの一つで，Webブラウザからの要求に対して，HTML文書，画像，音声，動画などを送信します。

Webブラウザ

WWW環境を構築するソフトウェアの一つです。WebサーバにHTML文書や画像などを要求し，画面上に表示します。

WWW

World Wide Webの略です。世界中のWebサーバとリンクして情報を利用できる，大規模情報システムです。

<ア行>

アクセスコントロールファイル

ディレクトリのアクセス制御情報を定義したファイルのことです。このファイルは，アクセス制御するディレクトリの下に，AccessFileNameディレクティブに指定したファイル名と同じ名前で作成します。

暗号鍵サイズ

対称鍵暗号で使用される鍵のビット長です。

イメージマップ

画像（画像のファイル）に複数のリンクを定義できます。その定義個所をクリックすると，ほかのURLの情報を入手できます。

<カ行>

鍵交換方式

クライアントとWebサーバ間で，鍵を送受信する際に使用する公開鍵暗号方式です。

クッキー

Webブラウザからインターネットを介してサーバにアクセスしたときに，サーバからクライアント側に情報ファイルを送り，保存できる機能のことです。

計画停止

実行中のサーバプロセスまたはサーバスレッドを，実行終了後に停止する方法です。httpsdctlユティリティのgracefulstopオプションまたはhttpsdコマンドの-k gracefulstopオプションの指定によって，Hitachi Web Serverは計画停止します。

公開鍵

公開鍵暗号方式で使用する鍵です。通信相手に公開するための鍵です。

公開鍵暗号方式

暗号方式の一つで，データを暗号化するための鍵と，復号するための鍵が異なる暗号方式です。

コンピュータ名

ネットワーク上のコンピュータに固有のNetBIOS名です。コンピュータ名には，最小1文字，最大15文字まで指定できます。

コンフィグファイル

Webサーバおよびsslccertユティリティの実行環境を定義しているファイルです。httpsd.conf，mime.types（TypesConfigディレクティブでファイル名の変更可），アクセスコントロールファイル（.htaccess），sslc.cnfファイル，およびIncludeディレクティブで指定したファイルを指します。

<サ行>

サービス

Windowsシステムで，ユーザがログインしたときとは別に，システムを起動したときに自動的に開始するプロセスを作成して処理する機能です。メールを監視するMessengerサービス，atコマンドで登録されたタスクを一定時間ごとに実行するScheduleサービスなどがあります。

<タ行>

対称鍵

対称鍵暗号方式で使用する鍵のことです。

対称鍵暗号方式

暗号方式の一つで，データを暗号化するための鍵と，復号するための鍵が同じである暗号方式です。

ディレクティブ

Webサーバの実行環境を定義するパラメタです。httpsd.confファイル，アクセスコントロールファイルに定義します。

ディレクトリインデクス

ディレクトリのファイル名一覧を出力する機能です。

トリプルDES（DES3）

安全性を高めるためDESを3段並べて鍵を長くした対称鍵暗号の一方式です。

<ナ行>

内部リダイレクト

リダイレクトとは，クライアントからリダイレクト先に再リクエストすることです。これに対して，内部リダイレクトは，クライアントに再リクエストさせることなく，Webサーバでリダイレクト先に直接アクセスして結果を返すことを指します。例えば，ErrorDocumentディレクティブでローカルURLを指定した場合，エラーステータス番号に一致すると，Webサーバは内部的にローカルURLにアクセスし結果を返します。

認証方式

署名をするときに使用するアルゴリズムです。

<ハ行>

バーチャルホスト

１台のサーバマシンを複数台のサーバマシンに見せる機能です。１台のサーバマシンに対して，DNSサーバで複数の名前を定義する方法（サーバ名に基づくバーチャルホスト）と，１台のサーバマシンに複数のネットワークインタフェースを設定またはIPアドレスのエイリアスを指定する方法（IPアドレスに基づくバーチャルホスト）があります。

秘密鍵

公開鍵暗号方式で使用する鍵です。通信相手には公開しないで，送信側だけで保持する鍵のことです。

ホスト名のルックアップ

DNSサーバ，NISサーバ，/etc/hostsファイルなどを検索して，IPアドレスとホスト名との対応付けを解決することです。OSの機能（gethostbyname,gethostbyaddrなど）を使用します。ホスト名からIPアドレスを検索することを正引き，IPアドレスからホスト名を検索することを逆引きといいます。

<マ行>

メッセージ認証アルゴリズム

それぞれのメッセージに固有なハッシュ値を生成するためのアルゴリズムです。

<ラ行>

リクエストログ

モジュールトレース，リクエストトレースおよびI/Oフィルタトレースの総称です。

モジュールトレース

モジュールの各関数の実行時およびCGIプログラムの実行時に採取されるトレースです。

リクエストトレース

次のときに採取されるトレースです。

・リクエスト処理開始時

・リクエスト処理完了時

・KeepAlive接続の場合，次のリクエストラインの受信完了時

・リクエスト処理開始からリクエストライン受信完了前のコネクション切断時

I/Oフィルタトレース

モジュールが実装している入出力フィルタ関数の実行時に採取されるトレースです。

索引

[記号]
[Ａ][Ｂ][Ｃ][Ｄ][Ｅ][Ｆ][Ｇ][Ｈ][Ｉ][Ｋ][Ｌ][Ｍ][Ｎ][Ｏ][Ｐ][Ｑ][Ｒ][Ｓ][Ｔ][Ｕ][Ｗ]
[ア行][カ行][サ行][タ行][ナ行][ハ行][マ行][ヤ行][ラ行]

(記号)

<Directory ディレクトリ名>

<DirectoryMatch 正規表現>

<Files ファイル名>

<FilesMatch 正規表現>

<IfModule 〔!〕モジュール名>

<Limit メソッド名 〔メソッド名 …〕>

<Location URL>

<LocationMatch 正規表現>

<VirtualHost ｛ホスト名｜IPアドレス〔:ポート番号〕｝ 〔｛ホスト名｜IPアドレス〔:ポート番号〕｝ …〕>

(英字)

(Ａ)

AccessFileName

Action

AddAlt

AddAltByEncoding

AddAltByType

AddCharset

AddDefaultCharset

AddDescription

AddEncoding

AddHandler

AddHandlerディレクティブの指定

AddIcon

AddIconByEncoding

AddIconByType

AddLanguage

AddType

AES

AES

AES

Alias

AliasMatch

Allow from

AllowOverride

AuthAuthoritative

AuthGroupFile

AuthName

AuthType

AuthUserFile

auto

(Ｂ)

Base64

BindAddress

BrowserMatch

BrowserMatchNoCase

(Ｃ)

CA

CacheNegotiatedDocs

CGIプログラム

CGIプログラムの定義

CGIプログラムの呼び出し

CoreDumpDirectory

CRL

CRLの運用

CRLファイルの形式

CRLを使用して運用している場合

CSR

CSRの形式

CustomLog

(Ｄ)

debugレベル

DefaultIcon

DefaultLanguage

DefaultType

Deny from

DER

DER形式

DES

DirectoryIndex

DNS

DocumentRoot

DSO

(Ｅ)

ErrorDocument

ErrorLog

ExpiresActive

ExpiresByType

ExpiresDefault

ExtendedStatus

(Ｆ)

FancyIndexing

FileETag

ForceType

FQDN

(Ｇ)

gcacheサーバ

Group

(Ｈ)

HACMP for AIX

HACMP for AIXによるシステム監視

HACMP for AIXの設定

HACMP for AIXの動作概要

Header

HeaderName

Hitachi Web Server

Hitachi Web Serverが標準提供している外部モジュールとモジュールファイル名の対応

Hitachi Web Serverの起動，停止

Hitachi Web Serverの処理とディレクティブとの関係

Hitachi Web Serverのプロセス構造（UNIX版）

Hitachi Web Serverのプロセス構造（Windows版）

Hitachi Web Serverを運用するためのシステム構成

Hitachi Web Serverを起動，停止する

HostnameLookups

HTTP

httpsd

httpsd.confファイル

httpsd.confファイル

httpsd.confファイル

httpsdctlユティリティ

hwscollectユティリティ

HWSContentCacheMaxFileSize

HWSContentCacheSize

HWSErrorDocumentMETACharset

HWSGracefulStopLog

HWSGracefulStopTimeout

HWSImapMenuCharset

HWSKeepStartServers

HWSLogSSLVerbose

HWSLogTimeVerbose

HWSMaxQueueSize

HWSNotModifiedResponseHeaders

HWSProxyPassReverseCookie

HWSRequestLog

HWSRequestLogType

hwsservereditユティリティ

HWSSetEnvIfIPv6

HWSStackTrace

HWSSuppressModuleTrace

HWSTraceIdFile

hwstraceinfoユティリティ

HWSTraceLogFile

HWS作成モード

(Ｉ)

I/Oフィルタトレース

I/Oフィルタトレースの採取

IdentityCheck

ImapBase

ImapDefault

ImapMenu

Include

IndexIgnore

IndexOptions

IndexOrderDefault

infoレベル

IP-Based Virtual Hosts

IPv6に対応しているディレクティブ

IPv6による通信

IPv6による通信の準備

IPアドレスに基づくバーチャルホスト

(Ｋ)

KeepAlive

KeepAlive

KeepAliveTimeout

(Ｌ)

LanguagePriority

LDAP

LDAPBaseDN

LDAPNoEntryStatus

LDAPRequire

LDAPServerName

LDAPServerPort

LDAPSetEnv

LDAPTimeout

LDAPUnsetEnv

LDAPサーバ

LimitRequestBody

LimitRequestFields

LimitRequestFieldsize

LimitRequestLine

Listen

ListenBacklog

LoadFile

LoadModule

LogFormat

LogLevel

logresolveユティリティ

(Ｍ)

MaxClients

MaxKeepAliveRequests

MaxRequestsPerChild

MaxSpareServers

MC/ServiceGuard

MC/ServiceGuard

MC/ServiceGuardの設定

MD5

Microsoftサーバクラスタによるシステム監視

mime.typesファイル

mime.typesファイル

mime.typesファイル

MinSpareServers

MultiviewsMatch

(Ｎ)

Name-Based Virtual Hosts

NameVirtualHost

NIS

notable

(Ｏ)

Options

Order

(Ｐ)

PassEnv

PEM

PEM形式

PidFile

Port

PP一覧の表示

ProxyErrorOverride

ProxyPass

ProxyPassReverse

ProxyPreserveHost

ProxyVia

(Ｑ)

QOS

QOSCookieDomain

QOSCookieExpires

QOSCookieName

QOSCookieSecure

QOSCookieServers

QOSRedirect

QOSRejectionServers

QOSResponse

(Ｒ)

RC2

RC4

ReadmeName

Redirect

RedirectMatch

refresh

RequestHeader

Require

RFC

rotatelogs2ユティリティ

rotatelogsユティリティ

RSA暗号

(Ｓ)

Satisfy

SCM

Script

ScriptAlias

ScriptAliasMatch

ScriptAliasディレクティブの指定

ScriptInterpreterSource

ScriptLog

ScriptLogBuffer

ScriptLogLength

ServerAdmin

ServerAlias

ServerName

ServerPath

ServerRoot

ServerSignature

ServerTokens

SetEnv

SetEnvIf

SetEnvIfNoCase

SetHandler

SHA

SSL

SSLBanCipher

sslc.cnfファイル

SSLCACertificateFile

SSLCACertificatePath

SSLCacheServerPath

SSLCacheServerPort

SSLCacheServerRunDir

SSLCertificateFile

SSLCertificateKeyFile

SSLCertificateKeyPassword

sslckeyユティリティおよびsslccertユティリティの使用例

SSLCRLAuthoritative

SSLCRLDERPath

SSLCRLPEMPath

SSLDenySSL

SSLDisable

SSLEnable

SSLExportCertChainDepth

SSLExportClientCertificates

SSLFakeBasicAuth

sslpasswdユティリティ

SSLProtocol

SSLRequireCipher

SSLRequiredCiphers

SSLRequireSSL

SSLSessionCacheSize

SSLSessionCacheSizePerChild

SSLSessionCacheTimeout

SSLVerifyClient

SSLVerifyDepth

SSLクライアント認証の準備

SSLセション管理

SSL通信のための準備

SSL通信の手順

SSLで認証，暗号化する

SSLでの暗号強度について

SSLによる認証，暗号化

SSLバージョン2

SSLバージョン3

StartServers

(Ｔ)

ThreadsPerChild

Timeout

TLSバージョン1

TraceEnable

TransferLog

TypesConfig

(Ｕ)

uCosminexus Application Server

UnsetEnv

URI

URL

UseCanonicalName

User

UserDir

(Ｗ)

Webサーバ

Webサーバ上でプログラムを実行する（CGI）

Webサーバの秘密鍵の作成

Webブラウザ

Windows 7，Windows Vista，Windows Server 2008 R2，およびWindows Server 2008使用時の注意事項

WWW

(ア行)

(あ)

アクセス権の設定例

アクセスコントロールファイル

アクセスコントロールファイル

アクセスコントロールファイル

アクセスコントロールファイル

アクセス制御

アクセスログ

アンインストール

アンインストール

暗号鍵サイズ

(い)

一般ユーザアカウントによる運用

イメージマップ

イメージマップ

イメージマップの定義例

イメージマップファイルの文法

インストール

インストール

(う)

運用環境の定義ファイル

運用環境を定義する

運用の準備と起動，停止（Windows版）

運用を始める前に

(え)

エラーログ

(カ行)

(か)

鍵交換方式

稼働状況の表示

環境の定義方法

環境変数の定義

監視スクリプトの作成

監視スクリプトの作成

関数オフセット

(き)

起動と停止

起動と停止

逆引き

共有メモリの解放

(く)

クッキー

クライアントのホスト名またはIPアドレスによるアクセス制御

クラスタリングシステム

(け)

計画停止

(こ)

公開鍵

公開鍵暗号方式

高信頼化システム監視機能HAモニタによるシステム監視（クラスタリングシステムの運用）

コンピュータ名

コンフィグファイル

コンフィグファイル

コンフィグファイル

コンフィグファイルの文法チェック

コンフィグファイルの変更

(サ行)

(さ)

サーバマシンのバーチャル化（バーチャルホスト）

サーバ名に基づくバーチャルホスト

サービス

(し)

システム構成

システムの運用方法

システムパラメタの定義方法

持続型接続

証明書取得手順

証明書の形式変換

証明書の内容表示

証明書の有効性の検証

証明書発行要求（CSR）の作成

証明書発行要求（CSR）の作成

証明書発行要求（CSR）の内容表示

(す)

ステータスコード

ステータス情報表示

(せ)

正規表現

静的コンテンツキャッシュ機能

正引き

(そ)

ソフトウェア構成

ソフトウェア構成

(タ行)

(た)

対称鍵

対称鍵暗号方式

タイムアウト

(て)

ディレクティブ

ディレクティブ

ディレクティブ一覧

ディレクティブについての注意事項

ディレクティブの詳細

ディレクトリインデクス

ディレクトリサービスを利用したユーザ認証とアクセス制御

ディレクトリ内のファイル名一覧をWebブラウザに表示する

ディレクトリに対するアクセス制御

(と)

トリプルDES

トレース情報の採取

トレース対象

トレースフォーマット

(ナ行)

(な)

内部トレースの採取

内部リダイレクト

(に)

認証方式

(ハ行)

(は)

バージョン03-00以降への移行方法

バーチャルホスト

バーチャルホスト

バーチャルホスト

ハードウェア構成

ハードウェア構成

ハードウェア構成例とHAモニタの動作概要

パスワード付きサーバ秘密鍵の使用

ハッシュリンクの作成（UNIX版）

(ひ)

秘密鍵

秘密鍵の作成

秘密鍵の内容

(ふ)

ファイルへの出力方法

フェイルオーバ

フェイルオーバ

複数のWebサーバ環境の生成

プロセスIDのログ

プロセス構造

プロセス数の遷移

プロンプトモードでのsslckeyユティリティおよびsslccertユティリティの実行

(へ)

ヘッダカスタマイズ機能

(ほ)

保守情報収集機能

ホスト名のルックアップ

(マ行)

(め)

メッセージ認証アルゴリズム

(も)

モジュールトレース

モジュールトレースの採取

モジュールトレースの出力先と出力条件

(ヤ行)

(ゆ)

有効期限設定機能

ユーザ作成モード

ユーザ認証

ユーザ名およびパスワードによるアクセス制御

(ラ行)

(り)

リクエストトレース

リクエストトレースの採取

リクエストログ

リクエストログ

リダイレクト

リダイレクト

リダイレクト

リダイレクト

リバースプロキシの設定

流量制限機能

(ろ)

ログの採取方法

ログの種類

ログを採取する

ログを分割する

■ 商標類

AIXは，米国における米国International Business Machines Corp.の登録商標です。
BSAFEは，RSA Security Inc.の米国およびその他の国における登録商標です。
GIFは，米国CompuServe Inc.が開発したフォーマットの名称です。
gzipは，米国FSF(Free Software Foundation)が配布しているソフトウェアです。
HACMPは，米国における米国International Business Machines Corp.の商標です。
HP-UXは，米国Hewlett-Packard Companyのオペレーティングシステムの名称です。
i486は，Intel Corporationのアメリカ合衆国及びその他の国における登録商標です。
IBMは，米国における米国International Business Machines Corp.の登録商標です。
Internet Explorerは，米国Microsoft Corporationの米国及びその他の国における登録商標または商標です。
Itaniumは，アメリカ合衆国および他の国におけるインテル コーポレーションまたはその子会社の登録商標です。
JavaScriptは，米国およびその他の国における米国Sun Microsystems,Inc.の商標または登録商標です。
Java 及びすべてのJava関連の商標及びロゴは，米国及びその他の国における米国Sun Microsystems, Inc.の商標または登録商標です。
Linuxは，Linus Torvaldsの米国およびその他の国における登録商標あるいは商標です。
Microsoftは，米国およびその他の国における米国Microsoft Corp.の登録商標です。
Mozillaは，Mozilla Foundationの，米国およびその他の国における商標です。
Netscapeは, 米国およびその他の国におけるNetscape Communications Corporationの登録商標です。
RC2は，RSA Security Inc.の米国およびその他の国における登録商標です。
RC4は，RSA Security Inc.の米国およびその他の国における登録商標です。
Red Hatは，米国およびその他の国でRed Hat,Inc. の登録商標若しくは商標です。
RSAは，RSA Security Inc.の登録商標です。

すべてのSPARC商標は，米国SPARC International, Inc. のライセンスを受けて使用している同社の米国およびその他の国における商標または登録商標です。SPARC商標がついた製品は，米国Sun Microsystems, Inc. が開発したアーキテクチャに基づくものです。
Solarisは，米国Sun Microsystems, Inc. の米国およびその他の国における商標または登録商標です。
Sun，Sun Microsystems，Javaは，米国Sun Microsystems,Inc. の米国およびその他の国における商標または登録商標です。
UNIXは，X/Open Company Limited が独占的にライセンスしている米国ならびに他の国における登録商標です。
Windowsは，米国およびその他の国における米国Microsoft Corp.の登録商標です。
Windows Serverは，米国Microsoft Corporationの米国及びその他の国における登録商標です。
Windows Vistaは，米国Microsoft Corporationの米国及びその他の国における登録商標です。
イーサネットは，富士ゼロックス(株)の商品名称です。
プログラムプロダクト「P-9D41-E181」には，米国Sun Microsystems,Inc.が著作権を有している部分が含まれています。
プログラムプロダクト「P-9D41-E181」には，UNIX System Laboratories,Inc.が著作権を有している部分が含まれています。
Hitachi Web Serverは，RSA Security Inc.のRSA(R) BSAFETMソフトウェアを搭載しています。
This product includes software developed by the Apache Software Foundation (http://www.apache.org/).
This product includes software developed by Ben Laurie for use in the Apache-SSL HTTP server project.
Portions of this software were developed at the National Center for Supercomputing Applications (NCSA) at the University of Illinois at Urbana-Champaign.
This product includes software developed by the University of California, Berkeley and its contributors.
This software contains code derived from the RSA Data Security Inc. MD5 Message-Digest Algorithm, including various modifications by Spyglass Inc., Carnegie Mellon University, and Bell Communications Research, Inc (Bellcore).
Regular expression support is provided by the PCRE library package, which is open source software, written by Philip Hazel, and copyright by the University of Cambridge, England. The original software is available from 　ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/
This product includes software developed by Ralf S. Engelschall <rse@engelschall.com> for use in the mod_ssl project (http://www.modssl.org/).