[Linux] httpd.conf ¼³Á¤ ÆÄÀÏ
http://ehostidc.co.kr/center/EH050402.php?no=141437&page=8&choose=tit¡¦ (336)https://blog.naver.com/goethe1/221642889788 (362)
A. apache mpm 설정
1. prefork
프로세스: 쓰레드 = 1: 1
StartServers 처음 시작할때의 자식 프로세스 갯수
MinSpareServers / MaxSpareServers 서비스 대기 중인 프로세스
ServerLimit MaxClients가 생성 가능한 최대 프로세스(apache 2.2 2000)
MaxClients 최대 동접자로 Apache 자식 프로세스의 최대값
MaxRequestPerChild 자식프로세스가 서비스 할 수 있는 최대 요청 갯수 제한
2. worker
프로세스: 쓰레드 = 1: n
StartServers 시작할때의 자식 프로세스 갯수
MinSpareThreads 최소 대기 스레드 갯수
MaxSpareThreads 최대 대기 스레드 갯수
ThreadPerChild 각가의 자식프로세스가 가질 수 있는 스레드의 갯수
3. event
리스팅 소켓과 기타 모든 소켓을 처리하는 각 프로세스를 위한 전용 리스너 스레드 사용
B. default mpm
1. apache 2.2: prefork
2. apache 2.4 event
C. httpd.conf 설정 파일
ServerTokens Prod
apache 응답 헤드 설정
ExtendedStatus On
apache 상태 모니터링의 상태정보보기 제공 여부 (Off 권장)
UseCanonicalName Off
ServerName 에 등록된 도메인에 대한 확인 기능
HostnameLookups Off
로그 파일에 client 접속 정보를 IP로 기록하기 위해 off 설정
On의 경우 DNS 쿼리로 인한 부하 발생
DirectoryIndex index.html index.html.var
인덱스 파일이 지정 되지 않았을때, 우선 순위
Timeout 60
클라이언트와 서버간에 어떤 메시지가 없을때 타임아웃까지 대기 시간
KeepAlive Off
apache의 프로세스가 특정 사용자의 지속적인 요청작업들을 계속해서 처리 허용에 대한 여부
MaxKeepAliveRequests 100
KeepAlive On 일때 지정한 횟수만큼 처리
KeepAliveTimeout 15
keepAlive On 일때 설정한 시간동안 요청이 없으면 연결 해제
LogLevel warn
에러로그파일(error_log)의 기록내요을 얼마나 자세하게 기록할 것인가를 결정하는 지시자이다.
none : 발생하는 모든 상황에 대한 메시지
emerg : 최상위, 매우 위험한 상황의 메시지. 전체공지가 요구되는 메시지
alert : 즉각적으로 조치를 취해야하는 상황의 메시지, 즉시 행동이 취해져야하는 상황
crit : 급한 상황은 아니지만 치명적인 시스템문제 발생 상황의 메시지
warn : 주의를 요하는 메시지 즉 경고상황
notice : 에러가 아닌 알림에 관한 메시지, 즉 경고상황
info : 단순한 프로그램에 대한 정보 및 통계관련 메시지, 보통수준으로 알려주는 상황
debug : 최하위, 디버깅관련 메시지
* : 발생하는 모든 상황에 대한 메시지
LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" combined
%a : 방문자의 원격의 IP 주소 (HostNameLookups 값이 On이면 도메인으로 기록될 수 있음)
%A : 아파치 웹서버의 로컬시스템의 IP 주소
%b : 헤더를 포함한 전송량(bytes)
%B : HTTP 헤더를 포함한 전송량
%{var}e : 환경 변수 "var"
%f : 요청한 파일이름
%h : 요청을 보낸 원격의 호스트
%H : 요구 프로토콜
%l : 클라이언트에서 보낸 로그인 ID명(즉 원격 로그인 ID)
%m : 요청방법
%p : 서버의 Canonical 포트 번호(요청이 처리되는 포트)
%P : 요청이 처리되는 아파치 자식 프로세스 ID(PID)
%q : 질의
%r : 첫번째 요청 라인
%s : 상태코드
%u : 사용자인증에 대한 원격의 유저. 클라이언트가 요청한 URL이 기본 HTTP인증 요구에 대한 사용자명을 의미
%U : 요청한 URL 경로
%v : 클라이언트 요청에 따른 Canonical 서버네임(서버네임 혹은 가상호스트의 이름)
%V : UseCanonicalName 설정에 따른 서버네임
%t : 클라이언트의 요청을 아파치 자식프로세스가 처리하기 위해 소요된 시간으로 CLF 포맷(일/월/년:시:분:초 time-zone)
%T : 클라이언트에 아파치 자식프로세스에게 처리를 요청하는 시간(초)
%{IncomingHeader}I : IncomingHeader의 내용. 즉 서버에게 보내진 요청의 헤더부분
%{OutgoingHeader}o : OutgoingHeader의 내용. 즉 응답의 헤더부분.
%{MODULE_NOTE}n : 다른 모듈로 부터의 MODULE_NOTE 내용
%I : 요청과 헤드를 포함하여 받은 byte수
%O : 요청과 헤드를 포함하여 보낸 byte수
combinedio : 모듈 mod_logio_module이 로드되어 있어야 하며 %I와 %O 변수를 사용해 보내고 받는 byte를 측정
combined : common(접근정보), agent, referer 정보를 모두 저장