Apache 웹서버 성능향상 관련 팁(#1. 모듈 설정)

Apache 웹서버에서 AtoM, Omeka 등의 오픈소스 시스템을 운용시 서버의 성능과 웹사이트의 속도를 조금 개선할 수 있는 간단한 성능 향상 팁입니다.

물론 다양한 방법 중의 하나일 뿐이므로 이 방법만 사용한다고 해서 성능이나 속도가 눈에 띌 만큼 달라진다거나 하지는 않습니다.

서버의 성능은 가장 기본적으로는 하드웨어의 사양과 서버가 위치한 서버실(ex:IDC)의 환경에 영향을 받고, 어플리케이션 서버/DB서버/이미지서버 등으로 서버의 역할과 기능을 구분해서 사용하는지의 여부에 따라서도 많은 차이가 존재하기 때문에 서버의 성능 향상을 위해 어떤 하나의 정답이 존재하지는 않습니다.

따라서, 현실적으로 사용 가능한 개선 방법들을 항상 염두에 두고 자신이 운영하는 서버의 환경에 맞게 적절하게 적용하는 것이 바람직합니다.


# 1. 모듈 설정
아파치 환경 설정 파일 또는 .htaccess 파일을 열어서 아래의 구문이 비활성화 되어 있는 경우엔 활성화 시키고, 없는 경우엔 추가해 주시면 됩니다. 
아래의 구문을 해석하면 웹서버의 모듈 중 mod_expires.c 모듈이 존재하면 이를 활성화 시키고, 사이트에 접근한 이용자(클라이언트)의 컴퓨터에 js, ico, gif, jpg, png, css 같은 파일을 10일간 저장하라는 의미입니다.
이렇게 설정하면 이용자들은 이후 10일 이내 재접속하는 경우 첫 방문때보다 더 빠른 속도로 콘텐츠를 보거나 검색 할 수 있게 됩니다. 물론 10일이 경과된 후에는 해당 파일들은 갱신되어 보여질 것입니다. 여기서 10일이라고 설정한 것은 제가 임의로 설정한 값이므로 서버 관리자는 자관의 정책과 판단에 따라서 이 값을 조정해야 합니다.

 <IfModule mod_expires.c>
    <FilesMatch "\.(js|ico|gif|jpg|png|css)$">
        ExpiresActive on
        ExpiresDefault "access plus 10 day"
    </FilesMatch>
 </IfModule>

위에서는 특정 파일에 대해서만 캐쉬를 허용했는데 이를 전체 파일들에 대해서도 설정할 수도 있습니다.
<IfModule mod_expires.c>
  ExpiresActive On
  ExpiresDefault "access plus 10 day"
</IfModule>


또는 각각의 파일들을 아래와 같이 파일별로 세부적으로 설정할 수도 있습니다.
ExpiresByType text/css "access plus 1 month"
ExpiresByType text/x-javascript "access plus 20 day"
ExpiresByType image/png "access plus 1 month"
ExpiresByType image/jpg "access plus 7 day"
ExpiresByType image/gif "access plus 10 day"

그리고, mod_deflate.c 모듈을 사용하면 html, css, javascript 같은 텍스트 기반의 콘텐츠들을 서버에서 압축해서 클라이언트에게 전달하기 때문에 서버의 부하를 조금 줄일 수 있습니다.

<IfModule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/html text/css text/javascript
</IfModule>


mod_deflate.c 모듈 설정은 이외에도 매우 다양하며 설정시 위험한 요소도 분명히 존재하기 때문에 아래의 아파치 레퍼런스 문서들을 검토한 후 적용하시기 바랍니다.
http://httpd.apache.org/docs/2.0/mod/mod_deflate.html

이외의 성능향상 방법은 추후 또 올리겠습니다.

Sign In or Register to comment.