이것이 점프 투 공작소

httpd의 설정 항목들을 정리해보자 본문

리눅스

httpd의 설정 항목들을 정리해보자

겅겅겅 2022. 10. 21. 20:26

 

 

아파치의 대부분의 핵심 기능을 볼 수 있는 httpd.conf 파일의 항목들에 대해서 정리해보려고 합니다.

 

ServerTokens

서버의 응답해더를 설정합니다.

설정값 응답헤더예시
Prod Server: Apache
Major Server: Apache/2
Minor Server: Apache/2.0
Min Server: Apache/2.0.41
OS Server: Apache/2.0.41(Unix)
Full Server: Apache/2.0.41(Unix) PHP/4.2.2 MyMod/1.2

 

ServerRoot

아파치 서버가 설치된 디렉토리, 서버 설정 디렉토리의 루트입니다.

설정파일이 참조 될 때 기준디렉토리이며 일반적으로 /etc/httpd를 설정값으로 가집니다.

 

PidFile

주 서버 프로세스, httpd의 PID가 기록되는 파일을 설정합니다.

 

Timeout

클라이언트로 부터 수신을 기다리는 최대 대기시간을 설정합니다.

EX) 설정값이 60이면 서버는 60초 이내에 클라이언트의 TCP패킷을 모두 받거나 클라이언트에 데이터를 보낸 후 60초 이내에 모든 응답을 받아야합니다.

 

KeepAlive

클라이언트가 한 번의 연결로 서버와 여러번의 요청과 응답을 받을 수 있도록 지속적 연결을 허용할지 여부를 on/off로 설정합니다.

 

MaxkeepAliceRequests

keepAlive가 on으로 설정된 경우, 클라이언트가 지속적인 연결을 유지하며 보낼 수 있는 최대 요청의 수를 설정합니다.

기본값은 100이며 0으로 설정하면 제한 없이 요청을 받을 수 있습니다.

 

KeepAliveTimeOut

keepAlive가 on으로 설정된 경우,  클라이언트와 지속적인 연결을 유지할 최대 대기시간을 초 단위로 설정합니다.

큰 값으로 설정하게되면 서버의 성능에 문제가 생기기 쉽습니다.

 

StartServers

초기에 생성하는 자식 서버 프로세스의 수를 설정합니다.

 

MinSpareServers / MaxSpareServers

유휴 자식 서버 프로새스의 최소값 및 최대값을 설정합니다.

유휴 자식 프로세스 수가 부족하거나 초과 시 자식 서버 프로세스를 생성하거나 종료시키는 기준이 됩니다.

 

MaxClients

동시에 접속 가능한 클라이언트 수의 최대값을 설정합니다.

 

MaxRequestsPerChild

자식 서버 프로세스를 종료하기 전까지 처리할 최대 요청 수를 설정합니다.

0 : 요청 제한 없음

EX) 4000 : 자식 서버 프로세스가 처리한 요청 수가 4000을 초과하면 해당 자식 서버 프로세스를 종료시킵니다.

 

Listen

서버가 사용할 TCP port번호를 설정합니다.

일반적으로 웹서버는 80을 사용합니다.

 

LoadModule

웹 서버의 기능을 확장시키는 DSO모듈을 설정합니다.

 

User / Group

서버 프로세스의 사용자와 그룹을 지정합니다.

서버는 root로 실행 된 후, 낮은 권한의 계정으로 실행되어야합니다. 

만약 root권한으로 실행된다면 클라이언트의 악의적인 요청이 root권한으로 실행 될 수 있기 떄문입니다.

 

ServerAdmin

서버의 문제가 생겼을 때 클라이언트에 메일을 보내는 웹 서버 관리자의 이메일 주소를 설정합니다.

 

DocumentRoot

웹 서버가 웹 페이지를 찾을 떄의 루트 디렉토리를 설정합니다.

EX) /var/www/html로 설정된 경우 http://localhost/index.html에 해당하는 웹 페이지는 /var/www/html/index.html 파일이 됩니다.

 

UserDir

클라이언트의 요청에 userId가 있는 경우의 처리 여부를 설정합니다.

루트 사용자 이외의 다른 사용자가 자신의 계정으로 웹서버를 만들 때의 기본 디렉토리를 설정하는 용도로 사용됩니다.

설정값이 disabled로 설정된 경우 사용자의 홈 디렉토리로 변환하지 않습니다.

해당 사용자의 웹서버가 열리지 않으면 사용자 디렉토리의 mod를 확인해야합니다.

-> 홈 디렉토리는 711, userId/index.html은 755(적어도 RX권한 필요)로 설정되어야 합니다. 설정값이 다르면 403에러 발생

DirectoryIndex

클라이언트가 요청한 경로에 파일 이름이 포함되지 않았을 경우 기본으로 사용할 웹 페이지의 이름을 설정합니다.

일반적으로 index.html로 설정합니다.

 

ErrorLog

웹서버의 에러 로그가 기록될 파일을 설정합니다.