httpヘッダー情報を確認する

httpdやWebアプリケーションの環境の設定の結果として、httpヘッダー情報を確認する必要が出てきます。 特にセキュリティ面でのチェックには欠かせません。

そのhttpヘッダー情報を確認するためには、telnetで接続する方法やWebブラウザの機能を使用するなど様々な方法がありますが、サーバのローカル環境で実行する方法として、次のようにcurlを使用する方法があります。

[root ~]# curl -I http://www.goofoo.jp/ HTTP/1.1 200 OK Date: Fri, 20 Jan 2012 08:59:59 GMT Server: Apache X-Pingback: http://www.goofoo.jp/xmlrpc.php Vary: Accept-Encoding Content-Type: text/html; charset=UTF-8

Apache httpd の停止方法

Webサービスを停止する場合には、実行中のリクエストの処理をどう扱うかを考えた上で、適切な方法を採らなくてはなりません。扱いの考え方には次の2通しがあります。

実行中のリクエストの処理を中止して、即時停止する。 実行中のリクエストの処理が完了するのを待ってから停止する。

ここでは、それぞれの場合に、Apache httpd ではどのような方法を採るのかを整理しておきます。

実行コマンドは次の2通りです。それぞれにオプションがありますが、どちらのコマンドでも同じ処理を行います。

httpd -k オプション apachectl -k オプション

オプションは次の2通りです。

1.stop

httpd プロセスにTERMシグナル(SIGTERM)を送って、プロセスを即終了します。 処理中のリクエストはすべて中止して、すべての子プロセスを終了してから、親プロセスも終了します。

2.graceful-stop

httpd プロセスにWINCHシグナル(SIGWINCH)を送って、子プロセスを終了します。 ただし、子プロセスは実行中のリクエストの処理が完了してから終了します。親プロセスは、すべての子プロセスが終了したあとに終了します。

実行中のリクエスト処理の扱いと適切な停止コマンドオプション

実行中のリクエスト処理の扱いの違いによる実行コマンドオプションの対応を下表に整理します。

実行中のリクエスト処理の扱い 実行コマンドオプション 実行中のリクエストの処理を中止して、即時停止する。 httpd -k stopapachectl -k stop 実行中のリクエストの処理が完了するのを待ってから停止する。 httpd -k graceful-stopapachectl -k graceful-stop

Apache httpd の設定変更時の再起動・設定反映オプションの使い方

Apache httpd には起動関連の様々なコマンドオプションがあります。 状況や目的に応じて、使い分けることが必要になると思います。

ここでは、httpd.conf などの設定変更時の再起動・設定反映時にどのようなオプションを使うべきなのか整理しておきたいと思います。

まず、コマンド自体を確認しておきます。 下記の2通りあります。ここでの起動という目的を考えた場合には、いずれを使用しても同じです。

service httpd オプション /etc/init.d/httpd オプション

ここでは、service httpd オプション で説明します。 さて、このオプションを次のようにして確認してみます。

[root ~]# service httpd 使い方: httpd {start|stop|restart|condrestart|reload|status|fullstatus|graceful|help|configtest}

ここで、再起動に関係するオプションは次の4つです。

restart condrestart reload graceful

それぞれどのような処理になるのでしょうか。

1.restart

停止処理と開始処理を連続して行います。 開始処理の際に、変更した設定が反映されます。 停止処理は、TERMシグナル(SIGTERM)を送って、プロセスを即終了します。 処理中のリクエストはすべて中止して、すべての子プロセスを終了してから、親プロセスも終了します。 その後、起動処理を行います。 親プロセスIDは変更されます。

2.condrestart

restart の処理と同じですが、Apache httpd が起動しているときだけ再起動を行います。

3.reload

HUPシグナル(SIGHUP)を送って、子プロセスを終了します。 ただし、子プロセスのみを即終了して、親プロセスは終了しません。 処理中のリクエストはすべて中止されます。 すべての子プロセスが終了したあとに、親プロセスは設定を再読み込みし、変更した設定が反映されます。

変更後の設定の反映だけを行いたい場合に使用します。

4.graceful

USR1シグナルを送って、子プロセスを終了します。 ただし、子プロセスは実行中のリクエストの処理が完了してから終了します。 すべての子プロセスが終了したあとに、親プロセスは設定を再読み込みし、変更した設定が反映されます。

実行中のリクエストの処理を中止させたくない場合に使用します。

上記各オプションの用途表 続きを読む »

サーバ移行時の AWStats の移行方法

サーバの64bit化に伴い、httpdログの統計・分析/解析・レポートツールの AWStats も移行する必要がありました。

ここでは、AWStats の移行方法を整理しておきます。ポイントは、旧環境における過去ログ分析データを移行することです。

移行に必要な作業は次の通りです。

1.AWStats のインストール

yumでインストール可能なパッケージが rpmforgeリポジトリにありますので、それをインストールします。

まずは、パッケージ情報を確認します。

[root ~]# yum info awstats Loaded plugins: fastestmirror, priorities Loading mirror speeds from cached hostfile * base: www.ftp.ne.jp * epel: ftp.kddilabs.jp * extras: www.ftp.ne.jp * rpmforge: ftp-stud.fht-esslingen.de * updates: www.ftp.ne.jp 277 packages excluded due to repository priority protections Available Packages Name : awstats Arch 続きを読む »

httpdログの統計・分析/解析・レポート~AWStats のインストール・設定

httpdログの統計・分析/解析・レポートを行うために、AWStats を導入することにしました。

要件事項は次のようなものです。

(1) 対象ログはhttpdログだけで充分 (2) リアルタイムのログが対象にならなくてもかまわない (3) Webブラウザでレポートを参照したい (4) サーバリソースへの負荷を最小限にしたい (5) 開発プロジェクトが動いている

AWStats は、これらの要件事項をほぼ満たしていると判断できましたので、導入することにしました。

1.AWStats のインストール

yumでインストール可能なパッケージがあるはずだと考えられますので、検索してみます。

[root ~]# yum search awstats Loaded plugins: fastestmirror, priorities Loading mirror speeds from cached hostfile * addons: rsync.atworks.co.jp * base: rsync.atworks.co.jp * epel: ftp.iij.ad.jp * extras: rsync.atworks.co.jp * rpmforge: ftp-stud.fht-esslingen.de * updates: rsync.atworks.co.jp addons | 951 B 続きを読む »