Bisakah Anda menentukan modul Apache mana yang telah digunakan dan dapat dihapus?

18

Saya, seperti banyak orang, memiliki instalasi Apache yang relatif out-of-the-box dengan banyak baris "LoadModule" default.

Sejak awal, saya telah menginstal banyak perangkat lunak, dan jujur ​​saja, saya tidak tahu perangkat lunak apa yang menggunakan modul mana.

Saya ingin mengurangi jejak memori instance Apache saya, dan untuk itu, saya ingin menghapus modul agar tidak digunakan. Satu-satunya cara yang saya tahu untuk menentukan apakah suatu modul sedang digunakan adalah menghapusnya dari konfigurasi dan melihat apakah ada yang rusak. Ini buruk dalam banyak hal daripada yang saya punya waktu untuk menggambarkan.

Saya ingin tahu apakah ada yang mengetahui cara untuk membuat Apache melaporkan modul mana yang telah digunakan , atau apakah ada cara lain untuk menentukan secara terprogram apakah suatu modul aman untuk di -konfigurasi .

Matt Simmons
sumber

Jawaban:

7

Cara yang saya lakukan adalah membangun server pengujian, membaca dokumentasi , dan mulai dari halaman kosong.

Modul-modul berikut ini wajib:

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

Lalu saya berkomentar semua modul yang tersisa dan restart Apache. Akan terdengar jika ada yang rusak, misalnya:

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

Lakukan hal yang sama dengan modul lainnya. Dengan menggunakan metode ini, berikut adalah beberapa modul yang sering tidak diperlukan:

  • 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

Jika Anda tidak menggunakan LDAP untuk otentikasi, ini dapat dinonaktifkan:

  • mod_ldap
  • mod_authnz_ldap

Modul di bawah ini harus dipertimbangkan saat mengaktifkan:

  • 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
kuanta
sumber
3
Bagaimana hal itu menjawab pertanyaan yang diajukan?
John Gardeniers
Apa maksudmu?
quanta
4
Meskipun saya menyukai jawaban Anda, OP sedang mencari beberapa alat, argumen baris perintah, atau pawang yang akan memberi tahu Anda modul mana yang aman untuk dihapus, mungkin ketika dijalankan melawan atau saat memeriksa file konfigurasi server langsung.
mahnsc
4

Posting sebelumnya menyarankan menonaktifkan modul sampai sesuatu rusak. Meskipun hal itu pasti sangat bodoh dalam sistem produksi, orang tersebut berada di jalur yang benar, karena Anda tetap harus melakukan pengujian regresi.

Jadi dalam hal ini:

  1. Buat server uji yang identik dengan yang Anda jalankan, langsung ke konfigurasi situs
  2. Nonaktifkan modul.
  3. Lakukan pengujian regresi di situs.
  4. Ulangi langkah 2 dan 3 sampai ada yang rusak atau Anda selesai dengan semua modul.
  5. Aktifkan kembali modul.
  6. Ulangi langkah 2 dan 3.
  7. Dengan apache yang baru diperbarui, lakukan konfigurasi flash-cut pada konfigurasi dan restart layanan apache.
  8. Jika gagal, gulung konfigurasi, tarik log, analisis, dan mulai dari langkah 2 (atau langkah 1 jika perlu).

Itu mungkin cara termudah untuk merampingkan konfigurasi Apache. Jika tidak, Anda harus melihat setiap modul, menentukan fungsinya dan mencari melalui situs untuk melihat mana yang menggunakan fungsionalitas itu. Itu akan memakan waktu lebih lama.

Sebagai alternatif, ini dapat memberi Anda peluang bagus untuk beralih ke sesuatu yang lebih ringan :

Rilindo
sumber
0

Saya tahu Anda bertanya tentang Apache, tetapi mengingat keterbatasan memori pada sistem Anda, Anda mungkin lebih baik dilayani dengan menukar Apache untuk Nginx, Lighthttpd, atau server web low-footprint lainnya. Apache sangat bagus untuk dukungan modul tetapi sangat haus memori dibandingkan dengan server web yang lebih muda seperti Nginx, Lighthttpd, Cherokee, G-WAN, dll.

Robert Munn
sumber