〜 Webサーバーを自在に構築・制御するための基礎〜
目次
📌 概要
Apache HTTPサーバー(httpd)は、Linuxにおける定番のWebサーバーです。本記事では、以下の内容をカバーします:
- Apacheのインストールと基本設定
- ログ・アクセス制限・ユーザー認証
- モジュール対応(PHPなど)
- 仮想ホスト・リソース制限・リダイレクト
🏗️ 1. Apache HTTPサーバーの基本
🔧 主なコマンドとファイル
| 項目 | 説明 |
|---|---|
httpd, apache2 | Apache本体(ディストリビューションにより異なる) |
httpd.conf, /etc/apache2/apache2.conf | メイン設定ファイル |
apachectl, apache2ctl | サーバーの起動・停止制御コマンド |
# 起動・停止・再起動(例:apachectl)
sudo apachectl start
sudo apachectl stop
sudo apachectl restart
📁 2. ログファイルの確認
ApacheのログはWebサーバーの動作確認・トラブルシュートに不可欠です。
| ログ種類 | ファイルパス(例) | 内容 |
|---|---|---|
| アクセスログ | /var/log/httpd/access_log | クライアントのアクセス記録 |
| エラーログ | /var/log/httpd/error_log | エラーや警告の記録 |
🔐 3. アクセス制限と認証設定
🔎 アクセス制限(IPやホストで制御)
<Directory "/var/www/html/private">
Require ip 192.168.1.0/24
</Directory>
- モジュール:
mod_authz_host
👤 ベーシック認証の設定
1. パスワードファイルの作成
htpasswd -c /etc/httpd/.htpasswd user1
2. .htaccess またはディレクティブで制限
<Directory "/var/www/html/secure">
AuthType Basic
AuthName "Restricted Area"
AuthUserFile /etc/httpd/.htpasswd
Require valid-user
</Directory>
- モジュール:
mod_auth_basic
⚙️ 4. モジュールとスクリプト言語の設定
Apacheはモジュールをロードすることで拡張できます。PHPなどを使いたい場合はmod_phpなどを利用。
sudo a2enmod php8.1 # Debian系
sudo systemctl restart apache2
🧠 5. リソース制限の設定
多くのリクエストやクライアントが来てもサーバーがパンクしないよう、接続数を制御可能。
例:prefork MPM の設定(httpd.conf)
<IfModule prefork.c>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxRequestWorkers 150
MaxConnectionsPerChild 0
</IfModule>
🌍 6. 仮想ホストの設定
1つのサーバーで複数のWebサイトを運用可能。
<VirtualHost *:80>
ServerName www.example.com
DocumentRoot /var/www/example
ErrorLog logs/example-error.log
CustomLog logs/example-access.log combined
</VirtualHost>
🔁 7. リダイレクトの設定
URLを他のページへ転送できます。SEOやHTTPS強制などに利用。
Redirect /old-page.html https://example.com/new-page.html
✅ まとめ
| 機能 | キーワード・ファイル・コマンド |
|---|---|
| インストール・起動 | httpd, apache2, apachectl |
| 設定 | httpd.conf, .htaccess |
| ログ確認 | access_log, error_log |
| アクセス制限 | Require, mod_authz_host |
| 認証設定 | htpasswd, mod_auth_basic |
| 仮想ホスト | <VirtualHost>, ServerName |
| モジュール | mod_php, a2enmod |
| リダイレクト | Redirect, mod_alias |
| リソース制限 | MaxRequestWorkers, StartServers など |
コメント