Webサーバー管理
Webサーバー管理:記事リスト
Webサーバー管理のカテゴリーには以下の記事がリストされています。
logresolveコマンドでApacheログのIPアドレスをホスト名に変換する方法
\n「HostnameLookupsをOnにするとパフォーマンスが落ちると聞いたが、後からまとめて変換できないか」
\n
\nこの記事では、logresolveコマンドを使ってApacheのアクセスログに含まれるIPアドレスを一括でホスト名に変換する方法を解説します。
\n\n
\n・logresolveコマンドはApacheのアクセスログ内のIPアドレスを一括でホスト名に変換する
\n・HostnameLookupsをOnにするパフォーマンス低下を防ぎながらログ解析ができる
\n・-sオプションで名前解決の統計情報を別ファイルに出力できる
\n
Apacheのアクセスログで接続クライアントのホスト名を記録する
デフォルトのApacheアクセスログはIPアドレスで記録されます。
この記事では、
HostnameLookups ディレクティブを使ってアクセスログにホスト名を記録する設定方法を解説します。
【この記事でわかること】
・デフォルトの HostnameLookups Off はIPアドレスで記録する設定
・HostnameLookups On に変更するとIPアドレスから逆引きしてホスト名を記録する
・HostnameLookups Onはリバースルックアップ(逆引き)が必要なためパフォーマンスに影響する
・後からIPアドレスをホスト名に変換するには logresolve コマンドも使える
Apacheのカスタムログを設定する
Apacheのカスタムログ設定は、
httpd.conf の LogFormat と CustomLog ディレクティブを使います。この記事では、Apacheのカスタムログ(LogFormat)の設定方法とフォーマット文字列の一覧を解説します。
【この記事でわかること】
・ログ形式は LogFormat ディレクティブで定義し、CustomLog で適用する
・デフォルトは common 形式(IPアドレス・日時・リクエスト・ステータス)
・combined 形式はcommonにReferer・User-Agentを加えた業界標準フォーマット
・%{クッキー名}C や %{ヘッダー名}i など柔軟なカスタマイズが可能
Apacheで接続クライアント数を設定する
Apacheの同時接続クライアント数は
MaxClients(Apache 2.4以降は MaxRequestWorkers)で制御します。この記事では、Apacheの接続クライアント数の設定方法を解説します。使用しているMPM(Prefork/Worker)によって設定箇所が変わるため、確認方法も合わせて解説します。
【この記事でわかること】
・Apache 2.3以前は MaxClients、2.4以降は MaxRequestWorkers で設定する
・mpm_prefork_module と mpm_worker_module で設定箇所が異なる
・CentOS/RHEL環境ではデフォルトでPrefork MPMが使用される
・設定値が小さすぎると処理待ちが発生し、大きすぎるとメモリ不足になる
Apacheのポート番号を変更する
Apacheのポート番号は
httpd.conf の Listen ディレクティブで設定します。この記事では、Apacheのポート番号を変更する手順を解説します。
【この記事でわかること】
・Apacheのポート番号は httpd.conf の Listen ディレクティブで設定する
・デフォルトは80番(HTTP)と443番(HTTPS)
・ポート変更後はファイアウォール設定も忘れずに変更する
・Apacheを再起動して設定を反映させる
KeepAliveを利用してApacheのパフォーマンスを向上させる
KeepAliveは、クライアントとのTCP接続を維持して複数のHTTPリクエストを1つのコネクションで処理する機能です。
この記事では、ApacheのKeepAlive設定(有効化・タイムアウト・最大リクエスト数)の方法を解説します。
【この記事でわかること】
・KeepAliveは httpd.conf または httpd-default.conf で設定する
・KeepAlive On で有効化、Off で無効化する
・MaxKeepAliveRequests でコネクションあたりの最大リクエスト数を設定する
・KeepAliveTimeout の値は短すぎても長すぎてもパフォーマンスに悪影響がある
接続中のプロセスが終了するのを待ってApacheを停止する
通常の
httpd stop コマンドは、接続中のプロセスを強制終了します。この記事では、接続中のプロセスが終了するのを待ってからApacheを停止する
graceful-stop の使い方を解説します。
【この記事でわかること】
・apachectl graceful-stop で接続中のクライアント通信を待ってから停止できる
・通常の httpd stop は接続中プロセスを強制終了するため本番環境では注意が必要
・graceful-stop は apachectl コマンドで実行する(initスクリプト経由では不可)
・systemd環境(CentOS 7以降)では systemctl stop httpd で同様の動作をする
Apacheのアクセスログを設定する方法|CustomLogとLogFormatの書き方とcombined形式の読み方
「CustomLogとLogFormatの設定が多くて、何をどう書けばいいのか整理できていない」
Webサーバーの運用では、アクセスログを正しく設定・読み解く能力が欠かせません。
この記事では、ApacheのCustomLogディレクティブとLogFormatディレクティブの設定方法、combined形式のログフォーマットの読み方を解説します。
ログローテーション連携、条件付きロギング、実サーバーのログ出力例まで、現場で必要な知識をまとめました。
【この記事でわかること】
・CustomLog でログファイルの保存先とフォーマット名を指定する
・LogFormat でフィールド構成(combined形式が業界標準)を定義する
・combined形式はIPアドレス・日時・リクエスト・ステータス・リファラー・UAの7フィールド
・本番環境ではパスを絶対パスで指定し、logrotate と組み合わせて管理する
続きを読む "Apacheのアクセスログを設定する方法|CustomLogとLogFormatの書き方とcombined形式の読み方"
Apacheのエラーログを設定する|ErrorLogとLogLevelの使い方・バーチャルホスト別設定
\n「エラーログに情報が出過ぎて、本当の問題が埋もれてしまう」
\n
\nApacheのエラーログは、サーバートラブルの原因特定に欠かせないファイルです。ログの出力先とログレベルを適切に設定することで、必要な情報を効率的に収集できます。
\n
\nこの記事では、ApacheのエラーログをhttpDConfで設定する方法を、
ErrorLog ディレクティブの基本から LogLevel の各段階の意味、バーチャルホスト別のログ設定まで実践的に解説します。\n
\n
\n\n・
ErrorLog ディレクティブでエラーログの出力先ファイルを指定する\n・
LogLevel で出力する重要度レベルを debug/info/notice/warn/error/crit/alert/emerg から選ぶ\n・デフォルトは
LogLevel warn(warn以上のメッセージを記録)\n・バーチャルホスト設定内に
ErrorLog を書けばサイト別にログを分けられる\n・
tail -f /var/log/httpd/error_log でリアルタイムにエラーを監視できる\n
Apacheの設定にインデックスファイルを追加する|DirectoryIndexでindex.phpを最優先にする方法
\n「index.htmlではなくindex.phpをデフォルトページにしたい」
\n
\nApacheの
DirectoryIndex ディレクティブを設定することで、ディレクトリアクセス時に表示するデフォルトファイルを指定できます。優先順位も制御できるため、WordPressなどのPHPサイト構築でも必須の設定です。\n
\nこの記事では、Apacheの設定ファイル(httpd.conf)で
DirectoryIndex を設定する方法を、基本の追加・変更から複数ファイルの優先順位指定まで実践的に解説します。\n
\n
\n\n・
DirectoryIndex でディレクトリアクセス時のデフォルトファイルを指定できる\n・複数ファイルを指定すると左から順に優先して検索される
\n・設定ファイルは
/etc/httpd/conf/httpd.conf の <IfModule dir_module> 内\n・設定変更後は
systemctl reload httpd で再読み込みが必要\n・PHPサイトでは
index.php を最優先に設定するのが一般的\n
続きを読む "Apacheの設定にインデックスファイルを追加する|DirectoryIndexでindex.phpを最優先にする方法"
Apacheで採用しているモジュールを確認する方法|httpd -Mとmpm・mod_rewriteの有効確認
\n「mod_rewriteが有効かどうか調べる方法がわからない」
\n
\nApacheのモジュールはサーバーの機能を決定します。認証・URL書き換え・圧縮・SSL対応など、各機能はモジュールで提供されているため、モジュール一覧の確認はトラブルシュートや設定変更の基本操作です。
\n
\nこの記事では、
httpd -M と apachectl -M コマンドを使ってApacheのモジュール一覧を確認する方法を解説します。静的モジュールと動的モジュールの違い、特定モジュールの有効確認方法まで実践的に解説します。\n
\n
\n\n・
httpd -M または apachectl -M でロード済みモジュール一覧を表示できる\n・
(static) は起動時に固定で組み込まれた静的モジュール\n・
(shared) は実行時に動的にロードされるモジュール\n・
httpd -l で静的モジュール(コンパイル組み込み)のみを表示できる\n・grepと組み合わせて特定モジュールの有効確認ができる
\n
続きを読む "Apacheで採用しているモジュールを確認する方法|httpd -Mとmpm・mod_rewriteの有効確認"
Apacheの設定ファイルを構文チェックする方法|httpd -tとapachectl configtestで文法エラーを検出
\n「設定ファイルを変更するたびにドキドキしながら再起動している」
\n設定ミスは1文字でもApacheが起動不能になる深刻な問題です。本番環境なら即サービス停止です。
\n
\nこの記事では、Apacheの設定ファイルを本番投入前にチェックする
httpd -tコマンドとapachectl configtestコマンドの使い方を解説します。\nエラーメッセージの読み方、設定変更のベストプラクティス、本番環境での安全な反映手順まで、現場で実践できる内容をまとめました。
\n\n
\n\n・
httpd -t または apachectl configtest で設定ファイルの構文を事前チェックできる\n・「Syntax OK」と表示されれば文法エラーなし、エラー時は行番号が表示される
\n・本番環境では configtest → graceful の手順で無停止で設定を反映する
\n・
Include で読み込まれた全設定ファイル(conf.d/*.conf)もまとめてチェックされる\n
続きを読む "Apacheの設定ファイルを構文チェックする方法|httpd -tとapachectl configtestで文法エラーを検出"
使用中のプロセスが終了するのを待ってhttpdサービスを停止する|graceful-stopの使い方
\n
\n本番運用中のWebサーバーで
systemctl stop httpd を実行すると、処理中のリクエストが途中で切断されてしまいます。ダウンロード中のユーザーや決済処理中の顧客に影響を与えないためには、接続が終わるのを待ってから停止する仕組みが必要です。\n
\nこの記事では、Apache HTTP Serverの
graceful-stop を使って、通信中のクライアントに影響を与えずhttpdサービスを停止する方法を解説します。\n
\n
\n\n・
graceful-stop は通信中のリクエストが完了するのを待ってから停止する\n・
apachectl graceful-stop または httpd -k graceful-stop で実行できる\n・
systemctl stop httpd は即時停止で既存接続を切断する\n・RHEL9系は
apachectl、Ubuntu LTSは apache2ctl とコマンド名が異なる\n・待ち時間の上限は
GracefulShutdownTimeout ディレクティブで設定できる\n
httpdサービスを起動・停止・再起動する方法|systemctlとinit.dの両対応
\n「CentOS 6系のinit.dコマンドしか知らないが、CentOS 7以降ではsystemctlが必要と聞いた」
\n
\nこの記事では、ApacheのhttpdサービスをLinuxで起動・停止・再起動する方法を、CentOS 7以降のsystemctlから旧来のinit.dまで実践的に解説します。
\n
\n
\n\n・CentOS 7以降は
systemctl start httpd でサービスを起動する\n・
systemctl stop / restart / reload / status で停止・再起動・再読込・確認ができる\n・
systemctl enable httpd でOS起動時に自動起動するよう設定できる\n・CentOS 6以前は
/etc/init.d/httpd start または service httpd start を使う\n・
systemctl status httpd でエラーログも含めた詳細な状態を確認できる\n
Apacheのバージョンを確認する方法|httpd -v・apachectl -V・rpmの使い分け実例
脆弱性対応やアップデートの際、まず把握しなければならないのがApacheのバージョン情報です。しかし、確認方法はひとつではありません。サーバーにSSHログインできる場合、パッケージ管理で調べたい場合、さらにはサーバーに直接入れない場合と、状況によって使うコマンドが変わります。
この記事では、Apacheのバージョンを確認する方法を5つ紹介します。基本の
httpd -vから、ビルド情報の詳細確認、rpm/dpkgによるパッケージ確認、さらに外部からの確認方法まで、実際のサーバー出力例とあわせて解説します。【この記事でわかること】
・httpd -v でApacheのバージョンを即座に確認できる
・httpd -V でビルド日時やMPM・設定ファイルの場所もわかる
・rpm -q httpd でパッケージのリリース番号まで把握できる
・サーバーにログインできない場合はcurlで応答ヘッダーから確認する
続きを読む "Apacheのバージョンを確認する方法|httpd -v・apachectl -V・rpmの使い分け実例"
