사용되었고 제거 할 수있는 Apache 모듈을 결정할 수 있습니까?


18

많은 사람들과 마찬가지로 필자는 기본 "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
그 질문에 어떻게 대답합니까?
John Gardeniers

무슨 소리 야?
quanta

4
귀하의 답변을 좋아하지만 OP는 라이브 서버의 구성 파일을 검사하거나 실행하는 동안 아마도 제거 할 수있는 모듈을 알려주는 도구, 명령 줄 인수 또는 처리기를 찾고 있습니다.
mahnsc

4

이전 게시물에서는 문제가 발생할 때까지 모듈을 비활성화 할 것을 제안합니다. 그것이 프로덕션 시스템에서는 확실히 바보이지만 어쨌든 회귀 테스트를 수행해야하기 때문에 사람이 올바른 길을 가고 있습니다.

따라서이 경우 :

  1. 사이트 구성까지 실행중인 서버와 동일한 테스트 서버를 빌드하십시오.
  2. 모듈을 비활성화하십시오.
  3. 사이트에서 회귀 테스트를 수행하십시오.
  4. 문제가 발생하거나 모든 모듈이 완료 될 때까지 2 단계와 3 단계를 반복하십시오.
  5. 모듈을 다시 활성화하십시오.
  6. 2 단계와 3 단계를 반복하십시오.
  7. 새로 업데이트 된 아파치를 사용하여 구성에서 구성 플래시 컷을 수행하고 아파치 서비스를 다시 시작하십시오.
  8. 실패하면 구성 배스를 되돌리고 로그를 당겨 2 단계부터 (또는 필요한 경우 1 단계) 분석하고 시작하십시오.

아마도 아파치 구성을 간소화하는 가장 쉬운 방법 일 것입니다. 그렇지 않으면 각 모듈을보고 해당 기능을 결정한 다음 해당 기능을 사용하는 모듈을 찾기 위해 사이트를 검색해야합니다. 훨씬 오래 걸릴 것입니다.

또는 가벼운 것으로 전환 할 수있는 좋은 기회를 제공 할 수 있습니다 .



0

나는 당신이 아파치에 대해 묻는다는 것을 알고 있지만, 시스템의 메모리 제약이 주어지면 아파치를 Nginx, Lighthttpd 또는 다른 저 발자국 웹 서버로 바꾸면 훨씬 더 나은 서비스를 제공받을 수 있습니다. 아파치는 모듈 지원에는 좋지만 Nginx, Lighthttpd, Cherokee, G-WAN 등과 같은 젊은 웹 서버와 비교할 때 메모리가 많이 부족합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.