Red Hat Training

A Red Hat training course is available for RHEL 8

第1章 Apache HTTP Web サーバーの設定

1.1. Apache HTTP Web サーバーの概要

Web サーバー は、Web 経由でクライアントにコンテンツを提供するネットワークサービスです。これは通常 Web ページを指しますが、他のドキュメントも当てはまります。Web サーバーは、ハイパーテキスト転送プロトコル (HTTP) を使用するため、HTTP サーバーとも呼ばれます。

module_version は、 Apache HTTP Serverhttpd は、Apache Software Foundation により開発されたオープンソースの Web サーバーです。

Red Hat Enterprise Linux の以前のリリースからアップグレードする場合は、適切に httpd サービス設定を更新する必要があります。本セクションでは、新たに追加された機能の一部と、以前の設定ファイルの更新を説明します。

1.1.1. Apache HTTP Server への主な変更点

module_version は、 Apache HTTP ServerRHEL 7 から RHEL 8 では、バージョン 2.4.6 から、バージョン 2.4.37 に更新されました。この更新バージョンには新機能がいくつか含まれていますが、外部モジュールの設定および Application Binary Interface (ABI) のレベルでは、RHEL 7 バージョンとの後方互換性を維持します。

新機能は次のとおりです。

  • httpd モジュール含まれる mod_http2 パッケージにより、HTTP/2 に対応するようになりました。
  • systemd ソケットのアクティベーションが対応します。詳細は、man ページの httpd.socket(8) を参照してください。
  • 新しいモジュールが複数追加されています。

    • mod_proxy_hcheck - プロキシーのヘルスチェックモジュール
    • mod_proxy_uwsgi - Web Server Gateway Interface (WSGI) プロキシー
    • mod_proxy_fdpass - クライアントのソケットを別のプロセスに渡す
    • mod_cache_socache - HTTP キャッシュ (例: memcache バックエンドを使用)
    • mod_md - ACME プロトコルの SSL/TLS 証明書サービス
  • 以下のモジュールはデフォルトで読み込まれるようになりました。

    • mod_request
    • mod_macro
    • mod_watchdog
  • 新しいサブパッケージ httpd-filesystem が追加されました。 Apache HTTP Server ディレクトリーに適切なパーミッションを含める
  • インスタンス化されたサービスのサポート httpd@.service が導入されました。詳細は、man ページの httpd.service を参照してください。
  • 新しい httpd-init.service%post script に置き換わり、自己署名の鍵ペア mod_ssl を作成します。
  • (Let’s Encrypt などの証明書プロバイダーで使用するため) 自動証明書管理環境 (ACME) プロトコルを使用した、TLS 証明書の自動プロビジョニングおよび更新に、mod_md パッケージで対応するようになりました。
  • module_version は、 Apache HTTP Server PKCS#11 モジュールを利用してハードウェアセキュリティートークンから TLS 証明書と秘密鍵を直接読み込むようになりました。これにより、mod_ssl 設定で、PKCS#11 URL を使用して、SSLCertificateKeyFile ディレクティブおよび SSLCertificateFile ディレクティブに、TLS 秘密鍵と、必要に応じて TLS 証明書をそれぞれ指定できるようになりました。
  • /etc/httpd/conf/httpd.conf ファイルの新しい ListenFree ディレクティブに対応するようになりました。

    Listen ディレクティブと同様、ListenFree は、サーバーがリッスンする IP アドレス、ポート、または IP アドレスとポートの組み合わせに関する情報を提供します。ただし、ListenFree を使用すると、IP_FREEBIND ソケットオプションがデフォルトで有効になります。したがって、httpd は、ローカルではない IP アドレス、または今はまだ存在していない IP アドレスにバインドすることもできます。これにより、httpd がソケットをリッスンできるようになり、httpd がバインドしようとするときに、基になるネットワークインターフェースまたは指定した動的 IP アドレスを起動する必要がなくなります。

    ListenFree ディレクティブは、現在 RHEL 8 でのみ利用できます。

    ListenFree の詳細は、以下の表を参照してください。

    表1.1 ListenFree ディレクティブの構文、状態、およびモジュール

    構文状態モジュール

    ListenFree [IP-address:]portnumber [protocol]

    MPM

    event、worker、prefork、mpm_winnt、mpm_netware、mpmt_os2

その他の主な変更点は次の通りです。

  • 以下のモジュールが削除されました。

  • 使用する DBM 認証データベースのデフォルトタイプ Apache HTTP Server RHEL 8 では、SDBM から db5 に変更になりました。
  • このモジュールの mod_wsgi モジュール Apache HTTP Server Python 3 に更新されました。WSGI アプリケーションは Python 3 でしか対応していないため、Python 2 から移行する必要があります。
  • デフォルトでは設定されているマルチプロセッシングモジュール(MPM) Apache HTTP Server マルチプロセス、フォークモデル (preforkとして知られる)から、高パフォーマンスのマルチスレッドモデル event に変更しました。

    スレッドセーフではないサードパーティーのモジュールは、交換または削除する必要があります。設定した MPM を変更するには、/etc/httpd/conf.modules.d/00-mpm.conf ファイルを編集します。詳細は、man ページの httpd.service(8) を参照してください。

  • suEXEC によりユーザーに許可される最小 UID および GID はそれぞれ 1000 および 500 です (以前は 100 および 100 でした)。
  • /etc/sysconfig/httpd ファイルは、httpd サービスへの環境変数の設定に対応するインターフェースではなくなりました。systemd サービスに、httpd.service(8) の man ページが追加されています。
  • httpd サービスを停止すると、デフォルトで「自動停止」が使用されます。
  • mod_auth_kerb モジュールが、mod_auth_gssapi モジュールに置き換わりました。

1.1.2. 設定の更新

設定ファイルを更新するには、 Apache HTTP Server Red Hat Enterprise Linux 7 で使用されるバージョンでは、以下のオプションのいずれかを選択します。

  • /etc/sysconfig/httpd を使用して環境変数を設定する場合は、代わりに systemd ドロップインファイルを作成します。
  • サードパーティーのモジュールを使用する場合は、そのモジュールがスレッド化 MPM と互換性があることを確認してください。
  • suexec を使用する場合は、ユーザーおよびグループの ID が新しい最小値に合致していることを確認します。

以下のコマンドを使用すると、設定に誤りがないかどうかを確認できます。

# apachectl configtest
Syntax OK

このページには機械翻訳が使用されている場合があります (詳細はこちら)。