[2주차 TIL] 아파치 웹 서버

2024. 12. 16. 10:01카테고리 없음

1. 아파치 웹 서버의 개념

Apache HTTP Server(아파치 웹 서버)는 오픈 소스 기반의 HTTP 웹 서버로, 전 세계에서 가장 널리 사용되는 웹 서버 중 하나입니다. 다양한 운영 체제에서 작동하며, HTTP 프로토콜을 통해 웹 클라이언트(브라우저)와 통신하여 웹 콘텐츠를 제공합니다.

  • 특징:
    • 안정적이고 신뢰할 수 있음.
    • 다양한 모듈을 통한 확장성 제공.
    • 오픈 소스 프로젝트로 커뮤니티 지원이 활발함.

2. 아파치의 기본 구조와 모듈

  • 기본 구조:
    • Core: 서버의 핵심 기능을 처리.
    • MPM (Multi-Processing Modules): 프로세스와 쓰레드 관리를 담당. 대표적으로 prefork, worker, event MPM이 있음.
    • 모듈: 다양한 추가 기능 제공. 동적 또는 정적으로 로드 가능.
  • 주요 모듈:
    • mod_ssl: SSL/TLS를 통해 HTTPS 지원.
    • mod_rewrite: URL 재작성 기능.
    • mod_proxy: 프록시 서버 기능.
    • mod_security: 보안 관련 기능.

3. 아파치의 주요 설정 파일

  • httpd.conf:
    • Apache의 핵심 설정 파일.
    • 포트 번호, 서버 루트, 로그 파일 경로 등의 설정 포함.
  • apache2.conf:
    • 일부 배포판(Ubuntu 등)에서 사용되는 추가 설정 파일.
  • sites-available/sites-enabled:
    • 가상 호스트(Virtual Host) 설정 파일이 저장되는 디렉터리.
    • a2ensite 또는 a2dissite 명령어를 사용해 활성화 또는 비활성화.
  • mods-available/mods-enabled:
    • Apache 모듈 관련 설정 파일이 저장되는 디렉터리.

4. .htaccess 파일의 사용법

  • 주요 기능:
    • URL 리디렉션 및 재작성 (mod_rewrite 사용).
    • 인증 설정(비밀번호 보호).
    • 디렉터리 접근 권한 설정.
  • 예시: URL 리디렉션 설정
  • apache
    코드 복사
    RewriteEngine On RewriteRule ^old-page.html$ new-page.html [R=301,L]
  • 주의사항:
    • .htaccess는 매 요청마다 읽히므로, 남용 시 성능 저하 가능.
    • 주요 설정은 가능하면 httpd.conf나 가상 호스트 파일에서 처리하는 것이 좋음.

5. 아파치 성능 튜닝의 기초

  • MPM 선택:
    • prefork: 안정적이지만 메모리 사용량이 높음. PHP와 함께 사용 시 적합.
    • worker: 멀티스레드 방식으로 메모리 효율적. 대규모 동시 연결 처리에 적합.
    • event: 비동기 방식으로, 최신 Apache 버전에서 추천.
  • KeepAlive 설정:
    • HTTP 연결을 유지해 요청-응답의 효율성을 높임.
    • KeepAlive On 및 MaxKeepAliveRequests 최적화.
  • 캐싱 활용:
    • mod_cache, mod_expires 등을 사용해 정적 파일의 캐싱 설정.
  • 불필요한 모듈 제거:
    • 사용하지 않는 모듈은 비활성화해 메모리 및 CPU 사용량 감소.