더북(TheBook)

아파치 웹 서버의 기본적인 설정 파일 ‘apache2.conf’를 살펴봅시다. ‘apache2.conf’는 아파치 웹 서버 운영에 영향을 미치는 전반적인 설정을 제어합니다.

administrator@server01:~$ sudo vi /etc/apache2/apache2.conf

Timeout은 클라이언트가 요청한 정보를 받을 때까지 소요되는 대기 시간을 설정합니다. 초 단위 값으로 시간을 초과하면 클라이언트와의 접속이 끊어집니다.

KeepAlive는 클라이언트의 지속적인 접속 허용 여부를 결정합니다. 클라이언트의 요청을 처리한 아파치 프로세스가 해당 클라이언트의 다른 요청에 대해서도 계속 처리하도록 설정합니다.

MaxKeepAliveRequestsKeepAliveOn일 때, 아파치 프로세스가 처리하는 클라이언트의 요청 횟수를 제한합니다. 값을 넘어서면 다른 아파치 프로세스가 클라이언트의 요청을 처리합니다.

KeepAliveTimeout은 역시 KeepAliveOn일 때, 클라이언트의 접속 상태에서 다음 요청에 대한 대기시간을 설정합니다. 초 단위 값으로 시간을 초과하면 클라이언트와의 접속이 끊어집니다.

Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5

다음은 아파치 웹 서버의 상태 정보를 저장하는 로그 관련 옵션입니다. ErrorLog는 오류 로그 파일의 경로, LogLevel은 로그 파일에 저장할 정보의 내용, LogFormat은 로그 형식을 지정합니다.

ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
LogFormat "%h %l %u %t \"%r\" %>s %O" common

IncludeOptionalInclude는 추가로 포함할 설정 파일과 디렉터리의 경로를 지정합니다. 앞에서 살펴본 모듈 설정을 위한 mods-enabled와 고급 기능을 위한 conf-enabled, 가상 호스트를 위한 sites-enabled 디렉터리가 설정되어 있습니다. 웹 서버 연결 설정을 위한 설정 파일 ‘ports.conf’도 확인할 수 있습니다.

IncludeOptional mods-enabled/*.load
IncludeOptional mods-enabled/*.conf
Include ports.conf
IncludeOptional conf-enabled/*.conf
IncludeOptional sites-enabled/*.conf

<Directory>는 웹 서버를 통해 접근 가능한 디렉터리를 설정하는 항목입니다. 웹 서버 루트 디렉터리인 /var/www에 대한 접근만 허용하고 루트 디렉터리에 대한 접근을 금지합니다.

<Directory />
       Options FollowSymLinks
       AllowOverride None
       Require all denied
</Directory>
<Directory /var/www/>
       Options Indexes FollowSymLinks
       AllowOverride None
       Require all granted
</Directory>

AccessFileName은 각 디렉터리에 접근 제어 정보를 저장할 파일을 지정합니다.

<FilesMatch>는 .htaccess처럼 .ht로 시작되는 파일에 대해 접근을 제한합니다. 보안과 밀접한 파일을 보호하기 위해 웹 브라우저를 통해 접근하지 못하도록 설정되어 있습니다.

AccessFileName .htaccess
<FilesMatch ~ "^\.ht">
    Require all denied
</FilesMatch>

웹 서비스에 대한 접근을 허용하기 위해 방화벽에서 80번 포트를 개방( ufw allow 80)합니다. 방화벽 규칙을 확인하면( ufw status) 80번 포트에 대한 접근을 허용해야 합니다.

administrator@server01:~$ sudo ufw allow 80
administrator@server01:~$ sudo ufw status
Status: active

To                          Action     From
--                          ------     ----
...
80                          ALLOW      Anywhere
80                          ALLOW      Anywhere (v6)

호스트에서 웹 브라우저를 실행시키고 웹 서버의 IP 주소를 입력하면 웹 서버가 보내온 웹 페이지가 나타납니다. 아파치 웹 서버가 정상적으로 운영되고 있습니다.

그림 8-5 아파치 웹 서버 테스트 페이지
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.