明らかな理由なしにApache2が停止しました。

明らかな理由なしにApache2が停止しました。

今朝、サーバーの1つのWebサーバーが機能していないという電話を受けました。 apache2 プロセスを再起動すると問題は解決しましたが、競合の原因を理解できません。

すべてのログを確認しましたが、イベントに関する唯一の関連情報は次の場所にありますerror.log

[Tue Feb 07 06:25:39.804775 2017] [mpm_prefork:notice] [pid 16376] AH00171: Graceful restart requested, doing restart
AH00557: apache2: apr_sockaddr_info_get() failed for ourdomain.com
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1. Set the 'ServerName' directive globally to suppress this message
[Tue Feb 07 06:25:59.749847 2017] [unique_id:alert] [pid 16376] (EAI 2)Name or service not known: AH01564: unable to find IPv4 address of "ourdomain.com"
[Tue Feb 07 06:26:09.760784 2017] [:emerg] [pid 16376] AH00020: Configuration Failed, exiting
[Tue Feb 07 11:44:50.000663 2017] [:notice] [pid 4841] ModSecurity for Apache/2.8.0 (http://www.modsecurity.org/) configured.
[Tue Feb 07 11:44:50.001311 2017] [:notice] [pid 4841] ModSecurity: APR compiled version="1.5.1"; loaded version="1.5.1"
[Tue Feb 07 11:44:50.001317 2017] [:notice] [pid 4841] ModSecurity: PCRE compiled version="8.35 "; loaded version="8.39 2016-06-14"
[Tue Feb 07 11:44:50.001324 2017] [:warn] [pid 4841] ModSecurity: Loaded PCRE do not match with compiled!
[Tue Feb 07 11:44:50.001326 2017] [:notice] [pid 4841] ModSecurity: LUA compiled version="Lua 5.1"
[Tue Feb 07 11:44:50.001328 2017] [:notice] [pid 4841] ModSecurity: LIBXML compiled version="2.9.1"
[Tue Feb 07 11:44:50.001330 2017] [:notice] [pid 4841] Original server signature: Apache/2.4.10 (Debian) OpenSSL/1.0.1t
[Tue Feb 07 11:44:50.001364 2017] [:notice] [pid 4841] ModSecurity: StatusEngine call: "2.8.0,StanSoftWeb 6.22,1.5.1/1.5.1,8.35/8.39 2016-06-14,Lua 5.1,2.9.1,82"
[Tue Feb 07 11:44:51.420554 2017] [:notice] [pid 4841] ModSecurity: StatusEngine call successfully sent. For more information visit: http://status.modsecurity.org/
[Tue Feb 07 11:44:52.000688 2017] [core:warn] [pid 4848] AH00098: pid file /var/run/apache2/apache2.pid overwritten -- Unclean shutdown of previous Apache run?

私たちは意図的に再起動を要求したわけではありません。重要な場合、サーバーはAWS EC2インスタンスです。数時間ごとに問題なくログが正常に再起動されることがわかります。 Webサーバーは、その期間中に構成変更なしで数ヶ月間正常に実行されました。

AH00020: Configuration Failed, exiting私としてはとても説明できないセリフだ。

アイデアはありません。衝突の原因が何であるかを提案できる人はいますか?

ベストアンサー1

ログの最初の数行には、DNSが利用できないという内容が表示されます。 ApacheがWebサイトを見つけるために必要なDNSです。完全修飾ドメイン名バインドするように指示したIPアドレスが提供されます。 (そしてそれが必要ですそれHostHTTP/1.1ヘッダなどを処理するため)

これはいくつかの可能な解決策を提供します。

  1. ServerNameログエントリに示すように、このディレクティブを使用してApacheにFQDNを明示的に提供します。これでDNSは不要です。

  2. DNSが引き続き実行されていることを確認してください。標準的な慣行は、以下を使用することです。少なくとも2つのDNSサーバー、理想的には地理的に分離されているため、あるサーバーまたはそのサーバーへのパスが失敗した場合でも、別のサーバーを引き続き使用できます。

    これが発生すると、システムは最初のDNSパケットがタイムアウトするのを待つため、2番目のDNSパケットを試みる前にDNS速度が大幅に遅くなりますが、少なくとも最終的には動作し続けます。ここではDNSキャッシュが役立ちます。

    セカンダリDNSのみを提供する企業が多いため、完全に異なるデータセンターを設定したり、セカンダリDNSサーバーを設定したりするためにEC2インスタンス全体またはVPSをリースする必要はありません。他の多くの企業は、一般的なインターネットホスティングサービススイートの一部としてセカンダリDNSを提供しています。

  3. オペレーティングシステムの/etc/hostsファイルを使用してIPをドメイン名にマップし、オペレーティングシステムの名前解決者に通知します。この情報の使用を優先してくださいDNSに。これはDNSよりも高速であるだけでなく、ライフサイクルも本質的にApacheホストのライフサイクルに関連付けられています。それを「下げる」作る唯一の方法はだれでも/etc/hosts

    このオプションを選択した場合は、上記のオプションを実行することを検討してください。とにかくセカンダリDNSが必要で、ホスト名を最初に見つけるためにApacheがIP逆照会を実行するように強制する特別な理由はありません。変更できる情報ではないからです。

おすすめ記事