ディレクティブ
設定ファイル ・/etc/httpd/conf/httpd.conf Redhat系 ・/etc/apache2/apache2.conf Debia系
通常
Server Name 『ホスト名』 [:ポート番号] Apacheが稼働しているホスト名とポート番号を指定
Server Root 「ディレクトリ名」 httpdが利用する設定ファイル。関連コマンド、ライブラリなどを設置するベースディレクトリを指定
Server Admin 「管理者のメールアドレスを指定(エラーページなどに表示される)
Listen 「IPアドレス」ポート番号 リクエストを受け付けるIPアドレスとポート番号(デフォルト80)を指定
User ユーザー名|ユーザID httpd子プロセスの実行ユーザを指定。
Group グループ名|グループID httpd子プロセスの実行ユーザを指定
DocumentRoot ディレクトリ名 ウェブで公開するHTMLを保存する最上位のディレクトリを指定。
DirectoryIndex ファイル名
インデックスとして返すファイル名を(複数可)
Alias ディレクトリ パス
指定の「ディレクトリ」へアクセスがあった場合、「パス」で指定したファイルやディレクトリを参照させる。
UserDir ディレクトリ名|disable 一般ユーザの公開ディレクトリを指定
ErrorDocument エラーコド ファイル名|文字列|URL エラー発生時の処理を指定
TImeOut 秒数
クライアントからリクエストを受け取ってから完了する(コンテンツを提供し終わる)までの時間の最大値を指定。
KeepAlive on|off 1つのTCP接続において複数のリクエストを受け付けるのか/受け付けないのか
MaxkeepAliveRequests
リクエスト数 KeepAlive時に1つの接続で受け付ける最大リクエスト数を指定(0は無限に許可)
KeepAliveTimeout 秒数
KeepAlive時にリライアントからのリクエストを完了してから、コネクションを切断せずに次のリクエストを受け取るまでの最大待ち時間を指定。
StartServers 子プロセス数
apache起動時のhttpd子プロセスの数を指定
MinSpareServers 子プロセス数
httpdの待機子プロセスの最小数を指定
MaxSpareServers 子プロセス数
httpdの待機子プロセスの最大数を指定
MaxClients 子プロセス数
生成されるhttpd子プロセスの最大数を指定 (同時に応答するリクエストの最大数)
MaxRequestsPerChild リクエスト数
httpd子プロセスが処理するリクエストの最大数を指定。
ログ関連
HostnameLookups on|off
クライアントのIPアドレスをログファイルに記載する際、IPアドレスを逆引きしてホスト名で記録するかどうかを指定
LogFormat 書式 書式名
アクセスログに使われる書式を定義
Customlog ファイル名 書式名
アクセスログのファイル名とLogFormatで定義された書式を指定
ErrorLog ファイル名
エラーログファイルを指定
LogLevel レベル
エラーログに記録するログのレベルを指定
格納先は/var/log/httpd
デフォルトのファイル名はaccess_log error_log
外部設定ファイル用
AccessFileName ファイル名
外部ファイル名を指定(デフォルトは.htaccess)
AllowOverride
パラメータ 外部設定ファイルによるhttpd.confの上書きを許可 指定できる主なパラメータ AutchConfing 認証関係の設定を許可 Limit Order、Allow、Denyディレクティブの設定を許可 All すべての設定変更を許可 None すべての設定の変更を禁止
URL変更通知
あるURLから異なるURLへリダイレクトするよう指示を出したい時。 ディレクティブに以下を設定
Redirect 「ステータス」 URL-Path 「URL」
勘違いしやすい点
Redirectはクラアンとへ変更通知を促す Aliasディレクトリブはサーバ側で処理を行い直接クライアントへ返す
起動方法
・apachectl Redhat系 ・apache2ctl Debian系
サブコマンド start stop restart graceful 安全に再起動(プロセスがリクエストを処理している場合は それらの処理が終わるまで再起動を行わない) configtest 設定ファイルの構文をチェック
認証もしくは暗号
apacheでは指定したディレクトリにアクセスがあった際、ユーザー認証を行ってアクセスを許可・拒否することができます。
BASIC認証
導入のための主な手順
・htpasswdコマンドを使用しパワードファイルの作成およびユーザの登録を行う ・必要であればグループファイルの作成およびグループの登録を行う ・Apacheの設定ファイルhttpd.confまたは外部設定ファイル.htaccessでユーザ認証を行いたいディレクトリの設定を行う
コマンド
htpass
認証に必要なパスワードファイルの新規作成、ユーザの追加、パスワードの変更
htpasswd -c パスワードファイルの新規作成 -D ユーザを削除
BASIC認証に関するダィレクティブ
AuthType
認証方式を指定。BASIC認証の場合はBasic
AuthName
認証画面に表示されるメッセージを指定 (ダイジェストと認証と用途が違うので注意)
AuthUserFile
作成したパスワードファイル名を指定
AuthGroupFile
作成したグループファイル名を指定
Require
認証対象とするユーザまたはグループを指定 ・ユーザの場合 Require user ユーザ名 ユーザ名・・・ ・グループの場合 Require group グループ名 グループ名・・・
BASIC認証に必要なモジュール
mod_auth
ダイジェスタ認証
導入のための主な手順
htdigestコマンドを使用しパスワードファイルの作成及びユーザの登録を行う。
コマンド
ダジェスト認証のユーザー管理を行う
htdigest [-c] ファイル名 領域 ユーザー名
ダイジェスタ認証に関するディレクティブ
AuthType
認証方式を指定
AuthName
認証領域を指定(BASIC認証と用途が違うので注意)
AuthUserFile
作成したパスワードファイル名を指定
AuthDigestGroupFile
作成したグループファイル名を指定
Require
認証対象とするユーザまたはグループを指定 ・ユーザの場合 Require user ユーザ名 ユーザ名… ・グループ名 Require group グループ名 グループ名…
SSL
・SSL(Secure Soket Leyer) とは公開鍵暗号方式を使ったセキュリテイ技術のこと。 ・SSLを使用すると、通信の暗号化が行われるためデータが盗聴されても内容は解読できない。 またSSLにはクライアント接続サーバの身元を確認できる仕組みが用意されているため、「なりすまし」も防げる
アクセス制御
Apacheではアクセス元のIPアドレス、ホスト名もしくはドメイン名を使用してアクセス制御を行うことが出来る。 アクセス制御にはApacheの設定ファイルhttpd.confのOrder、Allow、Denyディレクティブを使用。
モジュール
静的モジュール
▪️静的モジュールはApacheのインストール時に組み込む必要があり、Apacheの本体に組込まれます。 configure→make→make installの流れのconfigureスクリプトのオプションで指定することができます。 ▪️メリット ・静的モジュールの利点はApache本体と一体となって動作するため、組み込みにかかる負担が少ない。 ▪️デメリット ・静的モジュールの数を増やしすぎるとapacheが肥大化し、メモリの使用量が増えてしまう。
動的モジュール
▪️動的モジュールはDSO(Dynaic Shared Object)モージュールと呼ばれる。 apxsコマンドでコンパイルとインストールをし、httpd.confファイルのLoadModuleディレクティブで有効、無効を設定することができる。 ▪️メリット 動的モジュールの利点は有効、無効の設定が簡単である。Apache本体のサイズを小さく出来るためメモリに負荷がかからない。 ▪️デメリット 欠点は静的モジュールに比べて組み込む際に時間がかかるため、動作が遅くるなるということです。
モジュールディレクティブ
LoadModule モジュール名 モジュールのファイル名 Apacheのモジュールを動的にロードする。
mode_auth BASIC認証を提供
mod_auth_digest ダイジェスト認証を提供
mod_so 動的(DSO)モジュールを組込む機能を提供
mod_ssl SSLによる暗号化通信を提供
mod_perl Perlの機能を提供
mod_php PHPの機能を提供
コマンド
・️apacheに静的に組込まれているモジュールを確認 httpd オプション -l 静的に組込まれてたモージュルを表示 -M 静的・動的に組込まれモージュールを表示(apache2.2)
・インストール後に動的モジュールを組込むために使用するコマンド apxs
バーチャルホスト
名前ベースバーチャルホスト
・1つのIPアドレスに複数のドメイン名を設定する。 ・名前ベースの場合、Listenディレクティブではなく、NameVirtualHostディレクティブで受け付けるIPアドレスの設定を行う。 これで1つのIPで複数のバーチャルホストで共有することを示します。 ・異なるドメイン名で同じIPアドレスを返すようにDNSを設定(CNAMEで別名を作成)する必要がある。
IPベースのバーチャルホスト
・複数のIPアドレスにそれぞれ異なるドメイン名を設定。 受け付けるIPアドレスの設定はListenディレクティブを使用。
Loading...