Чи можете ви визначити, які модулі Apache використовувались та які можна видалити?


18

Я, як і багато людей, маю відносно нестандартну установку Apache з великою кількістю ліній "LoadModule" за замовчуванням.

З самого початку я встановив багато програмного забезпечення, і якщо чесно, я не знаю, яке програмне забезпечення використовує, які модулі.

Я хотів би зменшити слід пам’яті моїх примірників 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
Хоча я люблю вашу відповідь, ОП шукає якийсь інструмент, аргумент командного рядка або обробник, який підкаже, які модулі безпечно видалити, імовірно, коли вони працюють проти або під час огляду файлів конфігурації живого сервера.
mahnsc

4

Попередня публікація пропонує вимкнути модулі, поки щось не зламається. Хоча це, безумовно, нерозумно у виробничій системі, людина на вірному шляху, тому що вам потрібно буде зробити регресійне тестування в будь-якому випадку.

Отже, у цьому випадку:

  1. Створіть тестовий сервер, ідентичний тому, який ви працюєте, аж до конфігурації сайтів
  2. Вимкнути модуль.
  3. Проведіть регресійне тестування на сайтах.
  4. Повторюйте кроки 2 і 3, поки щось не зламається, або якщо ви закінчите всі модулі.
  5. Повторно увімкніть модуль.
  6. Повторіть кроки 2 та 3.
  7. З нещодавно оновленим апашем виконайте спалах конфігурації конфігурації та перезапустіть службу 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/Comppare_of_WAMPs

0

Я знаю, що ви запитуєте про Apache, але зважаючи на обмеження пам’яті у вашій системі, вам може бути набагато краще, замінивши Apache на Nginx, Lighthttpd або інші веб-сервери з низькою площею. Apache чудово підходить для підтримки модулів, але дуже запам’ятовує пам'ять порівняно з більш молодими веб-серверами, такими як Nginx, Lighthttpd, Cherokee, G-WAN тощо.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.