どのApacheモジュールが使用され、削除できるかを判断できますか?


18

私は、多くの人々と同様に、多くのデフォルトの「LoadModule」行を備えた比較的すぐに使えるApacheインストールを持っています。

始めから、私は多くのソフトウェアをインストールしてきましたが、正直なところ、どのソフトウェアがどのモジュールを使用しているかはわかりません。

Apacheインスタンスのメモリフットプリントを削減したいのですが、それを行うには、使用中のモジュールを削除したいと思います。モジュールが使用中かどうかを判断する唯一の方法は、構成からモジュールを削除して、何かが壊れているかどうかを確認することです。これは、説明するよりも多くの点で悪いことです。

Apacheに使用ているモジュールを報告させる方法を誰かが知っているか、またはモジュールを構成解除しても安全かどうかをプログラムで判断する別の方法があるかどうかを知りたいです。

回答:


7

私がやった方法は、テストサーバーを構築し、ドキュメントを読み、空白のページから始めることです。

次のモジュールは必須です。

  • mod_authz_host
  • mod_auth_basic
  • mod_authn_file
  • mod_dir
  • mod_log_config
  • mod_mime

次に、残りのすべてのモジュールをコメント化して、Apacheを再起動しました。何かが壊れると、音が鳴ります。例えば:

Starting httpd: Syntax error on line 10 of /etc/httpd/conf.d/squid.conf:
Invalid command 'order', perhaps misspelled or defined by a module not included in the server configuration

他のモジュールでも同じことを行います。この方法を使用することで、必要のないモジュールがいくつかあります。

  • mod_authn_alias
  • mod_authn_anon
  • mod_authn_dbm
  • mod_authn_default

  • mod_authz_user
  • mod_authz_owner
  • mod_authz_groupfile
  • mod_authz_dbm
  • mod_authz_default

  • mod_include
  • mod_logio
  • mod_ext_filter
  • mod_usertrack
  • mod_dav
  • mod_info
  • mod_dav_fs
  • mod_speling
  • mod_suexec
  • mod_cgi

認証にLDAPを使用していない場合、これを無効にできます。

  • mod_ldap
  • mod_authnz_ldap

有効にする場合、以下のモジュールを考慮する必要があります。

  • mod_proxy
  • mod_proxy_balancer
  • mod_proxy_ftp
  • mod_proxy_http
  • mod_proxy_connect

  • mod_cache
  • mod_disk_cache
  • mod_file_cache
  • mod_mem_cache

3
それは尋ねられた質問にどのように答えますか?
ジョンガーデニアス

どういう意味ですか?
クォンタ

4
私はあなたの答えを気に入っていますが、OPは、おそらくライブサーバーの構成ファイルに対してまたは実行中に実行するときに、どのモジュールを削除しても安全かを伝えるツール、コマンドライン引数、またはハンドラを探しています。
mahnsc

4

以前の投稿では、何かが壊れるまでモジュールを無効にすることが提案されています。それは実稼働システムでは間違いなく馬鹿げていますが、とにかく回帰テストを行う必要があるため、その人は正しい道を歩んでいます。

したがって、この場合:

  1. サイト構成まで実行しているサーバーと同じテストサーバーを構築します。
  2. モジュールを無効にします。
  3. サイトで回帰テストを実行します。
  4. 何かが壊れるか、すべてのモジュールが完了するまで、ステップ2と3を繰り返します。
  5. モジュールを再度有効にします。
  6. 手順2と3を繰り返します。
  7. 新しく更新されたApacheを使用して、構成でフラッシュカット構成を実行し、Apacheサービスを再起動します。
  8. 失敗した場合は、構成バスを元に戻し、ログをプルし、分析して、ステップ2(または必要に応じてステップ1)から開始します。

これはおそらく、Apache構成を合理化する最も簡単な方法です。それ以外の場合は、各モジュールを調べ、その機能を特定し、サイトを検索して、どのモジュールがその機能を使用しているかを確認する必要があります。それにはもっと時間がかかります。

または、これにより、より 軽量なものに切り替える良い機会が得られます:


0

私はあなたの質問に直接答えませんが、インターネットには多くの「小さな」AMPパッケージがありますが、私の知る限りでは、ほとんどのプリインストールモジュールは含まれていません。それで、私はそれらを参考例として見ることから始めます。

次の2つのリンクから開始できます。

  1. http://en.wikipedia.org/wiki/List_of_Apache%E2%80%93MySQL%E2%80%93PHP_packages
  2. http://en.wikipedia.org/wiki/Comparison_of_WAMPs

0

Apacheについて質問していることは承知していますが、システムのメモリの制約を考えると、ApacheをNginx、Lighthttpd、または他のフットプリントの小さいWebサーバーに交換することで、より適切に対応できる場合があります。Apacheはモジュールのサポートには最適ですが、Nginx、Lighthttpd、Cherokee、G-WANなどの若いWebサーバーと比較すると、非常にメモリを消費します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.