【プログラミング】【java】httpd.confのデフォルト設定と説明 - j-komatsu/myCheatSheet GitHub Wiki
以下は、httpd.conf
のデフォルト構成に対する日本語の説明をコメント形式で記載したチートシートです。
# サーバーの動作設定
# Listen: サーバーがリクエストを受け付けるポートを指定します(デフォルトは80)。
Listen 80
# ログファイルの場所を指定
# ErrorLog: サーバーエラーが記録されるファイルのパスを指定します。
# CustomLog: アクセスログが記録されるファイルのパスを指定します。
ErrorLog "/var/log/apache2/error_log"
CustomLog "/var/log/apache2/access_log" common
# サーバー名の設定
# ServerName: このサーバーが応答するホスト名を指定します。
# IPアドレスや完全修飾ドメイン名(FQDN)を設定するのが一般的です。
ServerName example.com
# ドキュメントルート(ウェブのコンテンツが保存されるディレクトリ)
# DocumentRoot: サーバーが提供するファイルの基準ディレクトリ。
DocumentRoot "/var/www/html"
# 各ディレクトリの権限設定
# <Directory>: 指定したディレクトリの動作をカスタマイズ。
<Directory "/var/www/html">
# Options: ディレクトリ内のファイルやリンクの扱いを設定します。
# - Indexes: ディレクトリインデックス(ファイル一覧)を許可。
# - FollowSymLinks: シンボリックリンクの使用を許可。
Options Indexes FollowSymLinks
# AllowOverride: .htaccessファイルでの上書き設定を許可する範囲。
# - None: .htaccessファイルを無効化。
AllowOverride None
# Require: アクセス許可を設定。
# - all granted: すべてのユーザーにアクセスを許可。
Require all granted
</Directory>
# モジュールの読み込み
# LoadModule: サーバーに必要な機能を有効化するモジュールを指定します。
# - mod_rewrite: URLのリライト(書き換え)を可能にします。
# - mod_proxy: プロキシとして動作させるために必要です。
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule proxy_module modules/mod_proxy.so
# リライトとリダイレクトの設定
# mod_rewriteを使ってURLの書き換えやリダイレクトを設定する例。
# 基本的なリライト設定例
<IfModule mod_rewrite.c>
# リライトエンジンを有効化
# RewriteEngine: デフォルトでは無効化されています。リライトを使用するには "On" を指定してください。
RewriteEngine On
# 1. 特定のパスを別のパスにリダイレクト
# /old-page にアクセスがあれば /new-page にリダイレクトします。
RewriteRule ^/old-page$ /new-page [R=301,L]
# 2. HTTPSへの強制リダイレクト
# http://example.com を https://example.com にリダイレクトします。
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
# 3. 特定の拡張子を持つファイルを他のディレクトリにリライト
# /images/sample.jpg を /static/images/sample.jpg にリライト。
RewriteRule ^/images/(.*) /static/images/$1 [L]
# 4. クエリパラメータを使った条件付きリライト
# URLに ?key=value が含まれる場合、/special-page にリダイレクト。
RewriteCond %{QUERY_STRING} key=value
RewriteRule ^ /special-page [L]
# 5. デフォルトのindexページを変更
# / にアクセスした場合、/homepage.html にリライト。
RewriteRule ^/$ /homepage.html [L]
</IfModule>
# Redirectディレクティブを使った単純なリダイレクト例
# 特定のURLを別のURLにリダイレクトします。
Redirect 301 /old-static-page.html /new-static-page.html
# 仮想ホスト内でのリライト例
<VirtualHost *:80>
ServerName www.example.com
DocumentRoot "/var/www/example"
<IfModule mod_rewrite.c>
RewriteEngine On
# wwwありからwwwなしへのリダイレクト
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [R=301,L]
</IfModule>
</VirtualHost>
-
Listen:
- サーバーがリクエストを待機するポートを指定します。
- デフォルトは80(HTTP用)。HTTPSでは通常443を使用します。
-
ErrorLog:
- サーバーエラーが記録されるファイルのパス。
- トラブルシューティングに使用します。
-
CustomLog:
- アクセスログ(リクエスト記録)が保存されるファイルのパス。
- アクセス解析やセキュリティ監視に役立ちます。
-
ServerName:
- サーバーが応答するホスト名。
- ドメイン名またはIPアドレスを指定します。
-
DocumentRoot:
- サーバーが提供するウェブコンテンツのルートディレクトリ。
- 静的ファイル(HTML、CSS、画像など)を配置します。
-
Options:
- 許可する動作を指定。
- 例:
Indexes
はディレクトリ一覧表示を有効化。
-
AllowOverride:
-
.htaccess
ファイルによる設定上書きを制御。 - デフォルトは
None
(無効化)。
-
-
Require:
- ディレクトリへのアクセス許可設定。
-
all granted
は全ユーザーにアクセスを許可。
-
LoadModule:
- 必要なモジュールを有効化。
- 例:
mod_rewrite
はURLのリライト機能を提供。 -
mod_proxy
はプロキシとして動作可能にします。
-
RewriteRule:
- URLの書き換えルールを指定します。
- '[L]:' ルールが一致した場合、それ以降のルールを無視します。
- '[R=301]:' 301リダイレクト(恒久的リダイレクト)を指定します。
-
RewriteCond:
- 条件を指定し、特定条件下でのみリライトを適用します。
- 例: HTTPSが無効の場合や特定のクエリパラメータが存在する場合。
-
設定確認:
- サーバーの動作やモジュールの有効化を確認する。
-
リダイレクトの適用:
- HTTPからHTTPSへのリダイレクトや、特定のパスの移動を簡単に設定可能。
-
トラブルシューティング:
- ログ設定を見直し、エラーログで問題箇所を特定。
-
アクセス制御:
- 必要に応じて
AllowOverride
やRequire
を調整し、セキュリティを向上。
- 必要に応じて