Apache

Table of Contents

AlmaLinux 9のApache HTTP Server(httpd)設定

AlmaLinux 9の標準リポジトリからhttpdをインストールし、基本設定・起動・
ファイアウォール設定・稼働状況の確認を行います。

インストール

# dnf info httpd
# dnf install httpd
# httpd -v

基本設定

既存設定をバックアップしてから、ServerNameと管理者メールアドレスを環境に合わせて設定します。
ServerNameには実際に使用するFQDNを指定してください。

# cp -a /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.bak
# vi /etc/httpd/conf/httpd.conf
ServerAdmin webmaster@example.org
ServerName www.example.org:80

Apacheのテスト用ウェルカムページを表示しない場合は、設定ファイルが存在することを確認して退避します。
既に退避先がある場合は上書きしないでください。

# test -f /etc/httpd/conf.d/welcome.conf && test ! -e /etc/httpd/conf.d/welcome.conf.disabled && mv /etc/httpd/conf.d/welcome.conf /etc/httpd/conf.d/welcome.conf.disabled

稼働状況の確認(mod_status)

標準パッケージでstatus_moduleが読み込まれていることを確認します。読み込まれていない場合は、
まず/etc/httpd/conf.modules.d/内の標準設定を確認し、同じモジュールを重複定義しないでください。

# httpd -M | grep status_module

状態ページはlocalhostと管理用ネットワークからのみアクセスできるように設定します。
192.168.10.0/24は例なので、実際の管理ネットワークに置き換えてください。

# vi /etc/httpd/conf.d/status.conf
<Location "/server-status">
    SetHandler server-status
    Require ip 127.0.0.1 ::1 192.168.10.0/24
</Location>

不要な情報公開を避けるため、状態ページをインターネットに公開しないでください。

設定検査と起動

設定ファイルの構文を検査してから、サービスを有効化・起動します。

# apachectl configtest
# systemctl enable --now httpd
# systemctl status httpd --no-pager

ファイアウォール

まず有効なゾーンとインターフェースを確認し、HTTPを公開する必要があるゾーンだけに許可します。
externalやinternalは環境依存の例であり、実際にHTTPクライアント側へ接続しているゾーンに置き換えてください。

# firewall-cmd --get-active-zones
# firewall-cmd --zone=public --add-service=http --permanent
# firewall-cmd --reload
# firewall-cmd --zone=public --list-services

HTTPSを提供する場合はTLS設定を別途行い、必要なゾーンに限ってhttpsサービスも許可してください。
状態ページのアクセス制御はFirewallの許可に依存せず、Apache側でも管理ネットワークに限定します。

動作確認

サーバー上で状態ページを確認します。

# curl --fail http://127.0.0.1/server-status/

外部のクライアントからWebサイトを確認し、/server-status/には許可した管理元以外から
アクセスできないことも検証してください。ログや起動状態は次のコマンドで確認できます。

# journalctl -u httpd -n 50 --no-pager
# tail -n 50 /var/log/httpd/error_log

参考資料

コメントを残す

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です