웹 서버 기초: 아파치 웹 서버의 이해와 활용
📚 학습 목표
- 아파치 웹 서버의 기본 개념 이해
- 아파치의 구조와 모듈 알아보기
- 주요 설정 파일의 역할 파악
.htaccess파일의 사용법 익히기- 성능 튜닝의 기초 배우기
1. 아파치 웹 서버의 개념
아파치 웹 서버(Apache HTTP Server)는 세계에서 가장 널리 사용되는 오픈 소스 웹 서버입니다. 아파치는 1995년 개발이 시작되어 현재까지 계속해서 발전해왔습니다. 기본적으로 HTTP 프로토콜을 사용하여 클라이언트(웹 브라우저)와 서버 간에 웹 페이지 및 콘텐츠를 전달하는 역할을 합니다.
주요 특징
- 오픈 소스: 무료로 사용할 수 있으며, 소스 코드를 수정할 수 있습니다.
- 플랫폼 독립성: Windows, Linux 등 다양한 운영 체제에서 작동합니다.
- 확장성: 다양한 모듈을 통해 기능을 확장할 수 있습니다.
2. 아파치의 기본 구조와 모듈
아파치 웹 서버는 기본적으로 클라이언트의 요청을 처리하고, 요청된 리소스를 제공합니다. 이 과정에서 사용되는 구조와 주요 모듈은 다음과 같습니다.
2.1 기본 아키텍처
- 클라이언트: 웹 브라우저 또는 다른 HTTP 클라이언트
- 서버: Apache HTTP Server
- 리소스: HTML, CSS, 이미지 파일 등
2.2 모듈
아파치는 다양한 모듈을 통해 기능을 확장할 수 있으며, 대표적인 모듈은 다음과 같습니다:
- mod_ssl: HTTPS를 통한 보안 통신 지원
- mod_rewrite: URL 재작성 및 리디렉션
- mod_proxy: 프록시 기능 제공
- mod_php: PHP와의 통합을 위한 모듈
모듈은 필요에 따라 활성화하거나 비활성화할 수 있습니다.
3. 아파치의 주요 설정 파일
아파치 웹 서버는 여러 설정 파일을 사용하여 서버 동작을 관리합니다. 주요 설정 파일은 다음과 같습니다:
3.1 httpd.conf
- 아파치의 주 설정 파일입니다.
- 서버의 전반적인 설정, 모듈 로드, 리스닝 포트 및 디렉토리 설정 등을 정의합니다.
3.2 apache2.conf
- 보통 Ubuntu와 같은 Debian 기반 시스템에서 사용되는 파일입니다.
- 아파치의 전체적인 설정을 포함하며,
httpd.conf와 비슷한 역할을 합니다.
3.3 sites-available 및 sites-enabled
- 도메인 별 사이트 설정을 관리하는 디렉토리입니다.
sites-available에 설정 파일을 추가하고,sites-enabled에 심볼릭 링크를 만들어 활성화합니다.
4. .htaccess 파일의 사용법
.htaccess 파일은 특정 디렉토리의 설정을 조정할 수 있는 강력한 도구입니다. 이 파일을 사용하면 서버의 주 설정 파일을 수정하지 않고도 다양한 설정을 적용할 수 있습니다.
4.1 주요 기능
URL 리디렉션: 특정 URL로의 접근을 다른 URL로 리디렉션할 수 있습니다.
Redirect /old-page.html /new-page.html접근 제어: 특정 IP 주소에서의 접근을 차단하거나 허용할 수 있습니다.
Order Deny,Allow Deny from all Allow from 192.168.1.1커스터마이징 오류 페이지: 404 같은 오류 발생 시 사용자 정의 페이지 표시
ErrorDocument 404 /custom_404.html
4.2 사용 방법
.htaccess 파일은 필요한 디렉토리에 위치시켜야 하며, 올바른 권한 설정이 필요합니다. 일반적으로 644 권한으로 설정하여 읽기 가능하도록 합니다.
5. 아파치 성능 튜닝의 기초
아파치 웹 서버의 성능을 최적화하여 더 빠른 속도를 확보하고 많은 사용자 요청을 처리해야 합니다. 기본적인 성능 튜닝 방법에는 다음이 포함됩니다:
5.1 KeepAlive 설정
KeepAlive 기능을 활성화하면 클라이언트와의 연결을 계속 유지하여 성능을 향상시킬 수 있습니다.
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5
5.2 모듈 관리
필요하지 않은 모듈을 비활성화하여 서버의 메모리 사용량을 줄이고 성능을 향상시킬 수 있습니다.
5.3 최대 동시 연결 수 설정
동시 연결 수를 조정하여 서버의 리소스를 효율적으로 분배할 수 있습니다.
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxRequestWorkers 150
MaxConnectionsPerChild 3000
</IfModule>
5.4 페이지 캐싱
정적 파일에 대한 캐싱을 설정하면 특정 리소스를 클라이언트 측에 저장하여 서버의 응답 속도를 높일 수 있습니다.
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 1 month"
</IfModule>
📌 마무리
이번 포스트에서는 아파치 웹 서버의 기본 개념과 구조, 주요 파일, .htaccess의 사용법 그리고 성능 튜닝 방법에 대해 알아보았습니다. 아파치는 유연하고 강력한 웹 서버로, 다양한 설정과 최적화를 통해 효율적으로 웹 페이지를 제공하는 데 이상적인 선택입니다.
'KnockOn > 2week' 카테고리의 다른 글
| [2주차 TIL] KnockOn Bootcamp PHP (0) | 2024.12.16 |
|---|---|
| [2주차 TIL] KnockOn Bootcamp Mysql (0) | 2024.12.16 |
| [2주차 TIL] KnockOn Bootcamp Javascript (0) | 2024.12.16 |
| [2주차 TIL] KnockOn Bootcamp HTML (0) | 2024.12.16 |