아파치 웹서버 httpd.conf 전역설정에 대해 정리한다.


ServerRoot "etc/httpd"

- 아파치 웹서버가 설치되어 있는 곳의 최상위 디렉토리.

- 기본설정은 "/etc/httpd"


ServerTokens Prod

- 웹서버 오류가 발생하였을 경우, 에러페이지와 Http Response 헤더에 보여지는 웹서버 정보의 노출 수준을 설정한다.

- 옵션 종류 : Full | OS | Minor | Minimal | Major | Prod

- 너무 많은 정보가 출력되는 것은 문제가 있으므로, 보통 Prod(Production)으로 설정하는 것이 좋다.


1) 에러페이지

- ServerSignature가 Off이면 웹서버 정보가 노출되지 않는다.


옵션

내용

Full 

 Apache/2.2.31 (Unix) mod_ssl/2.2.31 OpenSSL/1.0.1e-fips DAV/2 mod_jk/1.2.41 Server at 10.113.232.101 Port 80

OS

 Apache/2.2.31 (Unix) Server at 10.113.232.101 Port 80

Minor

 Apache/2.2 Server at 10.113.232.101 Port 80

Minimal

 Apache/2.2.31 Server at 10.113.232.101 Port 80

Major

 Apache/2 Server at 10.113.232.101 Port 80

Prod

 Apache Server at 10.113.232.101 Port 80


2) Http Response 헤더


옵션

내용

Full 

 Apache/2.2.31 (Unix) mod_ssl/2.2.31 OpenSSL/1.0.1e-fips DAV/2 mod_jk/1.2.41

OS

 Apache/2.2.31 (Unix)

Minor

 Apache/2.2

Minimal

 Apache/2.2.31

Major

 Apache/2

Prod

 Apache


KeepAlive Off

- KeepAlive는 한 프로세스가 특정 사용자의 요청을 지속적으로 허용하며 처리할지 여부를 설정한다.

- 기본설정은 Off이다. On으로 설정할 경우, 메모리 사용의 부담이 많아지게 되지만 성능은 좋아진다. 단발성 요청이 많은 대민 서비스의 경우 Off가 적절하다. (물론, 상황에 따라 다르다)


KeepAliveTimeout 15

- KeepAlive가 On일 경우에 유효한 값으로, 같은 클라이언트에서 처리할 시간을 지정한다.

- 기본설정은 15초


MaxKeepAliveRequests 100

- KeepAlive가 On일 경우에 유효한 값으로, 한 프로세스에서 특정 사용자의 요청을 설정에 지정된 횟수만큼 처리한다.  횟수를 넘어가게 되면 프로세스는 죽고, 다른 프로세스가 요청을 처리하게 된다.

- 기본설정은 100


Listen 80

- 해당 포트를 리스닝 하도록 설정한다. 여러개의 포트를 사용하려면 Listen 구문을 여러번 사용하면 된다.

- 기본값은 80


LoadModule

- 오브젝트 파일이나 라이브러리를 읽어온 후에 사용가능한 모듈 목록에 추가하는 지시자다.

- DSO(Dynamic Shared Object) 형태의 모듈에 사용한다.


User nobody

Group nobody

- 유닉스 계열 운영체제에서 1024 이하의 포트는 root 사용자만 사용할 수 있다. 하지만 root 권한으로 웹서버가 운영될 경우, 취약점을 이용해 공격자에게 root 권한을 유출할 수 있는 위험이 존재하게 된다. 따라서, 최초 구동은 root로 하고 자식 프로세스는 setuid, setgid 함수로 User, Group 지시자에 설정된 사용자 및 그룹으로 권한이 전환된다.

- ps -ef | grep httpd를 실행해보면 부모 프로세스만 root이고, 나머지는 apache(또는 nobody)로 떠있는 것을 확인할 수 있다.


Include

- 다른 설정파일을 포함시키는 지시자다.

- 하나의 파일에 모든 설정을 담고 있으면 관리 및 수정이 어렵기 때문에, 용도별로 설정파일을 나누고 Include 지시자로 포함을 하는것이 좋다.

- 예로 SSL 설정은 Include conf/extra/httpd-ssl.conf로 설정파일이 나뉘어 있다.


※ 참고자료

- 리눅스를 활용한 회사 인프라 구축의 모든 것

'서버 > 아파치' 카테고리의 다른 글

[아파치] mod_rewrite 모듈  (0) 2016.02.23
[아파치] mod_setenvif 모듈  (0) 2016.02.22
[아파치]VirtualHost 설정  (0) 2016.02.21
[아파치]httpd.conf 서버설정  (0) 2016.02.20
[아파치] mod_mpm 모듈  (0) 2016.01.12
Posted by SungHoon, Park
,