Web Web サーバの設定 ■ Apache のインストール Apache をインストールするには、 RPM や deb などディストリビューションごとのパッケージを利 用する方法と、ソースからコンパイルする方法があります。ソースからインストールする場合 は、一般的なソフトウェアのインストールと同様に、configure ∼ make ∼ make install を実行しま す。configure スクリプトでは、さまざまオプションを指定できます。 オプション 説明 --prefic= ディレクトリ インストール先ディレクトリの指定 --sysconfdir= ディレクトリ 設定ファイルのインストール先ディレクトリ --logfilrdir= ディレクトリ ログファイルのインストール先ディレクトリ --enable-module= モジュール 標準モジュールを組み込む --disable-module= モジュール 標準モジュールを組み込まない --enable-shared= モジュール 標準モジュールを DSO で組み込む --disable-module= モジュール 標準モジュールを DSO で組み込まない 次の例では、インストール先ディレクトリを /usr/local/apache にし、info モジュールを有効にして います。 $ ./configure --prefix=/usr/local/apache --enable-module=info ■ Apache の設定 Apache の設定ファイルは、httpd.conf です。この設定ファイルは、/etc/httpd/conf ディレクトリ以下 に配置されます ( ディストリビューションによって異なります )。httpd.conf では次の書式で設定 値を記述します。 < 書式 > ディレクティブ名 設定値 以下の例では、DocumentRoot ディレクティブに「/var/www/html」という値を設定しています。 DocumentRoot /var/www/html また、適用範囲のファイル、ディレクトリ、URL を指定することもできます。その場合、書式は 次のようになります。 < 書式 1> <File ファイル名 > ... </File> < 書式 2> <Directory ディレクトリ名 > ... </Directory> < 書式 3> <Location URL> ... </Location> 1 以下の例では、/home ディレクトリ以下に適用する設定を記述しています。 <Directory "/home/*"> AllowOverride None Options ExecCGI </Directory> 以下は、主なディレクティブの設定例です。 ディレクティブ 例 説明 ServerType ServerType standalone Apache の起動方法を指定しま す。standalone を指定すると、 スーパーサーバを経由せずにス タンドアローンで起動します。 inetd を指定すると、スーパー サーバ経由で起動できます。 ServerRoot ServerRoot /usr/local/apche httpd が利用するディレクトリを 指定します。 ServerName ServerName www.lpic.jp サーバのホスト名を指定しま す。 ServerAdmin ServerAdmin webmaster@lpic.jp サーバ管理者の連絡先メールア ドレスを指定します。 StartServers StartServers 5 httpd 起動時の子プロセスの数を 指定します。 MinServers MinServers 5 httpd の待機子プロセスの最少数 を指定します。 MaxServers MaxServers 10 httpd の待機子プロセスの最大数 を指定します。 MaxClients MaxClients 100 クライアントからの同時接続数 を指定します。 Timeout Timeout 300 タイムアウトになる秒数を指定 します。 KeepAlive KeepAlive on Web サーバとブラウザの間で持 続的な接続を保持するかを指定 します。 MaxKeepAliveRequests MaxKeepAliveRequests 100 キープアライブでの最大リクエ スト数を指定します。 KeepAliveTimeout KeepAliveTimeout 15 キープアライブのタイムアウト 時間を秒で指定します。 Port Port 80 待ち受けるポートを指定しま す。 2 User User apache httpd 子プロセスの実行ユーザを 指定します。 Group Group apache httpd 子プロセスの実行グループ を指定します。 DocumentRoot DocumentRoot /var/www/html ドキュメントルートを指定しま す。 UserDir UserDir public_html ユーザの公開ディレクトリを指 定します。 DirectoryIndex DirectoryIndex index.html index.htm index.php ディレクトリのインデックスと して返すファイル名を指定しま す。 ErrorLog ErrorLog logs/error_log エラーを記録するログファイル を指定します。相対パスが指定 されている場合は、ServerRoot からの相対パスとなります。 LogLevel LogLevel warn エラーログのログレベルを指定 します。 HostNameLookups off DNS の逆引きを行い、アクセス 元の IP アドレスからホスト名 を取得します。 Alias Alias /images /home/www/images ドキュメントルート以外の場所 を参照できるようにします。こ の例では、DocumentRoot/image で /home/www/image が参照でき るようにしています。 ScriptAlias ScriptAlias /cgi-bin/ /var/www/cgi-bin CGI スクリプト用ディレクトリ を指定します。 ErrorDocument 404 /notfound.hml エラーが発生した場合の処理 を、エラーコートに続けて指定 します。/ で始まるファイル名 を指定した場合は、ローカルド キュメントが表示されます。文 字列を指定した場合はその文字 列が表示されます。URL を指定 した場合は、その URL にリダ イレクトします。 HostNameLookups ErrorDocument Apache を起動するには、以下の起動スクリプトを使います。 # /etc/init.d/httpd start 3 また、apachectl というコマンドも利用できます。次の例では apachectl コマンドを使って Apache を 起動しています。 # apachectl start < 書式 > apachectl [ サブコマンド ] [ サブコマンド ] start: Apache を起動する stop: Apache を停止する restart: Apache を再起動する configtest: 設定ファイルの構文をチェックする ■モジュールの利用 Apache では、さまざまな機能を持ったモジュールを必要に応じてロードしたりアンロードしたり することができます。そのため、新しい機能を加える場合でも、Apache 自体をあらためてコンパ イルすることなく、必要なモジュールだけをコンパイルしてロードするだけですみます。モ ジュールは、Apache にディフォルトでふくまれているもの ( コアモジュール ) と、別に提供され ているものとがあります。 モジュール名 説明 mod_access ホストベースのアクセス制御 mod_alias ファイルの別名のサポート mod_auht パスワードファイルを使ったユーザ認証 mod_auth_ladp LDAP によるユーザ認証 mod_cgi CGI スクリプトの実行 mod_dav WebDAV プロトコルの利用 mod_dir ディレクトリのインデックス表示 mod_imap イメージマップのサポート mod_include SSI の利用 mod_info サーバの設定情報表示 mod_mime 拡張子に応じたファイルタイプの決定 mod_perl Perl の利用 mod_php PHP の利用 mod_so モジュールを組み込む DSO 機能の提供 mod_status サーバのステータス表示 mod_ssl SSL による暗号化通信 mod_userdir ユーザディレクトリの利用 モジュールの拡張子は「.so」であり、/usr/lib/httpd/modules ディレクトリ以下などにインストール されます。モジュールをロードするには、httpd.conf で LoadModule ディレクティブ、AddModule ディレクティブを使います。次の例では、Perl モジュールをロードするように設定しています。 4 LoadModule perl_module modules/libperl.so ( 中略 ) AddModule mod_perl.c モジュールを Apache に静的に組み込んで利用することもできます。頻繁に利用するモジュール は、組み込んだほうがパフォーマンスは向上します。 ■クライアントアクセスの制限 指定されたディレクトリ以下にアクセスするとき、ユーザ名とパスワードがなければアクセスを 拒否するよう制限をかけることができます。Apache ではそのために Basic 認証とダイジェスト認 証が利用できますが、通常は Basic 認証が利用されます。Basic 認証を利用するには、httpd.conf に ユーザ認証設定を追加し、専用のパスワードファイルを用意します。以下は httpd.conf の例です。 <Directory "/var/www/html/private-area"> AuthType Basic AuthName "Please Enter Your ID and Password!" AuthUserFile /etc/httpd/conf/.htpasswd Require valid-user </Directory> この例では、/var/www/html/private-area 以下のディレクトリにアクセスする場合、ユーザ名とパス ワードを求められます。AuthName には、認証の範囲の名前を、AuthUserFile には、パスワードファ イル名を指定します。パスワードファイル名は通常 .htpasswd というファイル名になります。 「Require valid-user」とすると、.htpasswd ファイルにエントリのあるすべてのユーザがアクセスを 許可されます。valid-user の代わりに、「user ユーザ名・・・」のようにユーザ名を列挙すると、指 定されたユーザのみが許可されます。 認証に用いられるユーザ名とパスワードを設定するには、htpasswd コマンドを使います。 < 書式 > htpasswd [ オプション ] ファイル名 ユーザ名 [ オプション ] -c : パスワードファイルを新規に作成する 以下は、/etc/httpd/conf/.htpasswd をパスワードファイルとして、lpicuser のアカウントを作成してい ます。 # htpasswd /etc/http/conf/.htpasswd lpicuser New password: Re-type new password: Adding password for user lpicuser ■バーチャルホスト Apache が備えているバーチャルホスト機能を利用すると、1 台のサーバで複数の Web サイトを管 理することができます。バーチャルホストには、1 台のコンピュータに 1 つの IP アドレスと複数 のドメインを設定する「名前ベースのバーチャルホスト」と、1 台のコンピュータに複数の IP ア ドレスと複数のドメインを設定する「IP ベースのバーチャルホスト」があります。202 試験では、 名前ベースのバーチャルホストについて問われます。 5 バーチャルホストを利用するには、VirtualHost ディレクティブ、NameVirtualHost ディレクティブ を使います。ここでは、IP アドレスが 192.168.120.100 であるホストで、www1.lpic.jp、www2.lpic.jp を運用する例を取り上げます。 まず、バーチャルホストに対するリクエストを受け付ける IP アドレスを NameVirtualHost ディレ クティブで指定します。次に、バーチャルホストごとの設定を VirtualHost ディレクティブ内に記 述します。 NameVirtualHost 192.168.120.100 <VirtualHost 192.168.120.100> ServerName www1.lpic.jp DocumentRoot /var/www/html/www1 </VirtualHost> <VirtualHost 192.168.120.100> ServerName www2.lpic.jp DocumentRoot /var/www/html/www2 </VirtualHost> DNS を適切に設定すれば、それぞれの Web サイトを独立して運用することができます。 ■ SSL SSL(SecureSocketLayer) は、TCP/IP とアプリケーション層との中間に実装されている、公開鍵暗号 を使ったセキュリティ技術です。公開鍵暗号では、公開鍵と秘密鍵のペアを使って暗号化と複合 化を行います。SSL を使うと、Web ブラウザと Web サーバ間の通信を暗号化することでセキュア な通信を行うことができます。また、認証局によって発行されたサイト証明書を使って、サイト の正当性を証明することができます。セキュアな Web サーバは、SSL による通信の暗号化とサイ ト証明書を使ってセキュリティを実現します。Apache では、mod_ssl モジュールを使うことで SSL に対応します。 SSL を利用して Web サーバを運用するには、 mod_ssl モジュールが利用できるようになっているこ とに加え、以下のような手順でサイト証明書を認証局から入手する必要があります。 1. 公開鍵と秘密鍵のペアを作成します。 2. 作成した公開鍵を、利用企業の身元を証明する書類、手数料などとともに認証局 (CA) へ 送付します。 3.CA では証明書を発行し、送付します。この証明書を使って、Web サーバが Web ブラウザ に対して身元を明らかにします。 4. 送られてきた証明書を Web サーバにインストールします。 なお、サイト証明書は IP アドレスやドメイン名のペアに対して発行されるため、IP アドレスやド メイン名が変更された場合は再取得する必要があります。 SSL でアクセスするには、リクエスト URL を「https:// ∼」とします。通信には一般的に 443 番ポー トが使われます。 Web サーバの監視とメンテナンス ■サーバ情報の取得 mod_status モジュールを利用すると、サーバの稼動状況についての情報を Web ブラウザに表示さ せることができます。また、mod_info モジュールを利用すると、サーバの設定に関する情報を表 6 示させることができます。以下は、それぞれのモジュールを利用するための httpd.conf の設定で す。 プロキシサーバの設定 プロキシサーバを使う利点は 2 つあります。1 つはローカルネットワークからインターネットへ のアクセスを代行することにより、特定の web サイトへのアクセスを制限するなど、クライアン トからのアクセスを制御できることです。もう 1 つは、1 度アクセスされたデータをキャッシュと して保存し、再度同じアクセスがあった場合はキャッシュデータを返すことでアクセスを高速化 し、ネットワークトラフィックを削減することができます。 ■ Squid の基本設定 Linux で も っ と も よ く 利 用 さ れ て い る プ ロ キ シ サ ー バ は Squid で す。Squid の 設 定 は Squid.conf(/usr/local/squid/etc/squid.conf など ) で行います。 設定項目 説明 http_port Squid が使用するポート番号 hierarchy_stoplist キャッシュを利用しない文字列 maximum_object_size キャッシュ可能な最大ファイルサイズ cache_dir キャッシュを格納するディレクトリと容量など のパラメータ cache_mem メモリ上のキャッシュサイズ chache_access_log アクセスログの出力先 cache_log キャッシュのログ ftp_user anonymous で FTP アクセスする際のパスワード ftp_passive on|off FTP パッシブモードの有効または無効 reference_age キャッシュの保存期間 acl アクセスコントロールリストの設定 http_access アクセスコントロールリストの制御 アクセス制限の設定は、acl と http_access で行います。acl では、ホストやプロトコルの集合にアク セスコントロールリスト名を付けます。そのアクセスコントロールリストに対しての制御を http_access で設定します。次に、squid.conf の設定例を示します。 7
© Copyright 2024 Paperzz