Apache 웹 서버 설정
ServBay를 사용하면 내장된 Apache 웹 서버 패키지를 쉽고 편리하게 관리 및 설정할 수 있습니다. ServBay의 그래픽 사용자 인터페이스(GUI)를 통해 다양한 개발 프로젝트 요구 사항에 맞춰 Apache의 핵심 설정들을 간편하게 조정할 수 있습니다.
Apache 설정 화면 접속하기
- ServBay 애플리케이션을 엽니다.
- 좌측 내비게이션 바에서
웹 서버
를 클릭합니다. Apache
탭을 선택합니다.
아래와 같이 Apache의 설정 화면이 보입니다:
주요 설정 항목 설명
아래는 Apache 설정 화면에서 제공하는 각 항목에 대한 상세 설명입니다:
기본 설정
- HTTP 포트: Apache가 HTTP 프로토콜을 수신하는 포트입니다. 기본값은
80
입니다. - HTTPS 포트: Apache가 HTTPS 프로토콜을 수신하는 포트입니다. 기본값은
443
입니다. - 서버 이름: 서버를 식별할 때 사용하는 호스트명 및 포트입니다. 기본값
127.0.0.1
은 대개 로컬 접속시 사용됩니다. - 서버 루트: Apache 패키지 설치 루트 경로입니다. 참고: 이 경로는 웹사이트 파일을 두는 곳이 아니며(웹사이트 루트는 사이트 추가 시에 따로 지정), Apache 프로그램 파일이 위치한 경로입니다. 보통 기본값은
/Applications/ServBay/package/apache/current
입니다.
성능 튜닝 (Performance Tuning)
- Timeout: 서버가 I/O 작업을 포기하기 전까지 대기하는 최대 초 단위 시간입니다. 기본값은
300
초입니다. - Max KeepAlive Requests: 하나의 지속 연결(KeepAlive)에서 허용되는 최대 요청 수입니다.
1000
은 다수 재사용을 의미하며,0
은 제한 없음입니다. - KeepAlive Timeout: 지속 연결 종료 전, 다음 요청을 대기하는 최대 시간(초)입니다. 기본값은
60
초입니다. - Keep Alive: HTTP 지속 연결(KeepAlive) 활성화 여부입니다. 성능 향상을 위해
On
을 권장합니다. - MPM StartServers: 서버 시작 시 생성되는 자식 프로세스 수입니다.
- MPM MaxSpareThreads: 대기(유휴) 스레드의 최대 수로, 갑작스러운 요청에 대응하기 위한 여유 스레드 수를 제어합니다.
- MPM MaxConnectionsPerChild (기존 MaxRequestsPerChild): 자식 프로세스가 수명주기 동안 처리할 수 있는 최대 연결 수입니다.
0
은 제한 없음입니다. 장기 서비스로 인한 메모리 누수 방지에 도움이 됩니다. - MPM MaxRequestWorkers (기존 MaxClients): 동시에 처리 가능한 최대 동시 요청 수(모든 자식 프로세스의 합). Apache 성능의 핵심 파라미터입니다.
- MPM ThreadsPerChild: 각 자식 프로세스가 생성하는 고정 스레드 수(
worker
또는event
MPM에 적용).
기능 및 특성 (Features & Characteristics)
- Access File Name: 분산 설정 파일명을 지정하는 명령입니다. 일반적으로
.htaccess
사용. 이 파일을 이용해 서버 메인 설정의 일부를 덮어쓸지 가능 여부를 조정합니다. - Use Canonical Name: Apache가 자기참조 URL을 생성하는 방식 제어.
Off
가 더 유연합니다. - Server Signature: 서버가 생성하는 페이지(오류 페이지 등) 하단에 서버 버전 및 가상 호스트 이름 정보 한 줄을 추가합니다. 보안상 운영 환경에서는
Off
권장. - Hostname Lookups: 요청한 클라이언트 IP에 대해 DNS 역방향 조회로 호스트명을 얻을지 여부입니다.
Off
가 성능상 유리(불필요한 DNS 조회 지연 방지). - Server Tokens: 서버 응답 헤더(
Server:
)에 포함하는 정보 수준 제어.Minor
(예: Apache/2.4)는Full
(예: Apache/2.4.58 (Unix) PHP/8.3.1)보다 안전.Prod
는Apache
만 표시.
관리 및 로그 (Admin & Logging)
- Server Admin: 서버가 클라이언트에 오류 메시지를 반환할 때 표시되는 관리자 이메일 주소입니다.
- Log Level: 오류 로그(
error_log
)에 기록할 메시지의 상세 레벨 제어.warn
이 일반적이며, 경고 및 그 이상 오류 기록. 기타 레벨로는debug
,info
,notice
,error
,crit
,alert
,emerg
가 있습니다.
모듈 (Modules)
이 영역에서는 사용 가능한 Apache 모듈이 나열됩니다. 필요한 모듈 옆의 체크박스를 선택(활성화) 또는 해제(비활성화)할 수 있습니다. 자주 사용되는 모듈 예시는 다음과 같습니다:
mod_rewrite
: URL 재작성에 사용.mod_ssl
: SSL/TLS 지원(HTTPS 제공).mod_deflate
: 컨텐츠 전송 압축.mod_expires
: 캐싱 헤더 제어.mod_proxy
및 관련 모듈: 역방향 프록시 및 프록시 기능.mod_auth_basic
,mod_auth_digest
: 기본/다이제스트 인증용.
모듈을 활성화/비활성화한 후에는 반드시 설정을 저장해야 하며, Apache 서비스를 재시작해야 적용될 수 있습니다.
디렉터리 인덱스 (Directory Index)
- Directory Index: URL이 디렉터리를 가리킬 때, Apache가 해당 디렉터리에서 우선적으로 찾는 파일들의 목록입니다. 나열된 순서대로 파일이 존재하는지 검사 후, 처음 발견한 파일을 반환합니다. 기본값은 대체로
index.html index.htm index.php
입니다.
SSL/TLS 설정
다음 설정들은 Apache의 HTTPS 기능을 위한 항목입니다.
- SSLCipherSuite / TLSCipherSuite: 서버가 허용하는 암호화 방식(암호군)을 정의합니다. 강력한 최신 암호군 사용이 보안상 매우 중요합니다. ServBay는 추천 기본값을 제공합니다.
- SSLProxyCipherSuite: Apache가 역방향 프록시 역할을 할 때 SSL 연결에 사용하는 암호군입니다.
- SSLHonorCipherOrder:
On
일 경우 서버가 선호하는 암호군을 우선 사용합니다(클라이언트 것보다). 보안을 위해On
권장. - SSLStrictSNIVHostCheck:
On
이면 클라이언트 SNI(Server Name Indication)로 요청한 도메인이 설정된 가상호스트와 다를 경우 연결을 거부합니다. 보안 강화 옵션입니다. - ProtocolHonorOrder:
SSLHonorCipherOrder
와 유사하지만, 프로토콜 버전 협상에 적용됩니다. - SSLProtocol: 허용할 SSL/TLS 프로토콜 버전 설정. 예시
all -SSLv2 -SSLv3
는 모든 최신 프로토콜 허용, SSLv2/v3(취약점 있음)는 비활성화. - SSLProxyProtocol: Apache가 프록시로 작동할 때 SSL 연결에 허용할 프로토콜 버전 지정.
- Protocols: 프로토콜 지원 협상순서 지정. 예) HTTP/2 지원시
h2 h2c http/1.1
로 설정하면, 우선적으로 HTTP/2(암호화h2
, 평문h2c
), 그 후 HTTP/1.1로 폴백.
저장 및 초기화
- 초기화(Reset): 이 버튼을 클릭하면 Apache 설정이 ServBay의 기본값으로 되돌아갑니다.
- 저장(Save): 이 버튼은 Apache 설정에 대한 모든 변경사항을 저장합니다. 저장 후 ServBay가 변경사항을 자동으로 적용합니다. Apache 서비스가 실행 중인 경우, 모든 변경사항을 적용하려면 서버의 잠깐 재시작이 필요할 수 있습니다.
중요 참고사항
- 이곳에서 변경하는 설정들은 Apache의 글로벌 설정입니다. 개별 사이트(가상호스트)의 설정(
DocumentRoot
, 특정RewriteRule
등)은 일반적으로웹사이트
추가 또는 편집 과정에서 따로 구성합니다. - 만약 설정 화면 상단에 "Service Apache is not enabled" 문구가 보인다면, 이는 Apache 서비스가 현재 실행되고 있지 않다는 의미입니다. 그래도 설정값 수정 및 저장은 가능하며, 이러한 변경사항은 이후 Apache 서비스를 시작할 때 적용됩니다. Apache는 ServBay의 메인 대시보드나
패키지
메뉴에서 시작할 수 있습니다.
요약
ServBay는 Apache 웹 서버의 핵심 설정을 손쉽게 관리할 수 있는 직관적인 인터페이스를 제공합니다. 이 옵션들을 이해하고 활용함으로써, 개발 요구에 따라 Apache의 동작 방식, 성능, 보안을 자유롭게 조정할 수 있으며, ServBay를 더욱 강력한 로컬 개발 환경으로 만들 수 있습니다.