웹서버에서 압축 전송 활성화 방법은?
_____답변:
웹서버에서 압축 전송을 활성화하면 클라이언트와 서버 간 데이터 전송 시 데이터 크기를 줄여 전송 속도와 대역폭 효율을 높일 수 있습니다. 주요 웹서버별 압축 활성화 방법은 다음과 같습니다.
---
1. 아파치(Apache)
- 기본 모듈: `mod_deflate` 모듈을 사용하여 압축을 수행합니다.
- 설정 방법:
1. 아파치가 `mod_deflate` 모듈을 로드하는지 확인 (`httpd.conf` 또는 `apache2.conf` 에서)
```
LoadModule deflate_module modules/mod_deflate.so
```
2. 압축 설정 추가 (`.htaccess` 또는 서버 설정파일에 추가)
```
텍스트, 스크립트, XML, JSON 등 압축 대상 MIME 타입 지정
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/json
특정 브라우저 호환성 문제 해제 (필요 시)
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
```
3. 아파치 재시작 필요
```
sudo systemctl restart apache2
```
---
2. Nginx
- 설정 방법:
1. Nginx 설정 파일(일반적으로 `/etc/nginx/nginx.conf` 또는 각 서버 블록) 내에 다음 추가
```
gzip on;
gzip_min_length 256; 압축 적용 최소 바이트 크기
gzip_comp_level 5; 압축 수준 (1~9)
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
gzip_vary on; Vary 헤더 추가 (Proxy 캐싱 고려)
```
2. 설정 테스트 및 재시작
```
sudo nginx -t
sudo systemctl reload nginx
```
---
3. IIS (Windows 서버)
- 설정 방법:
1. IIS 관리자 실행
2. 서버 또는 사이트 선택 후, “압축”(Compression) 메뉴 클릭
3. "정적 콘텐츠 압축 활성화" 및 "동적 콘텐츠 압축 활성화" 체크
4. 필요시 `web.config` 파일에 직접 설정 추가 가능:
```xml
```
5. IIS 재시작 없이 바로 적용됩니다.
---
4. 기타 팁 및 주의사항
- 압축 대상은 텍스트 계열 MIME 타입에 국한하는 것이 성능과 안정성에 좋습니다. 이미지, 영상, PDF 등 이미 압축된 파일은 압축하지 않는 것이 좋습니다.
- 브라우저 호환성, 특히 오래된 브라우저와의 호환 문제를 확인하세요.
- SSL(HTTPS) 환경에서는 압축 관련 취약점(BREACH 공격 등)에 주의하세요. 필요시 동적 콘텐츠 압축은 비활성화 합니다.
- 압축 활성화 후 개발자 도구(Network 탭)에서 Response Header에 `Content-Encoding: gzip` 등이 표시되는지 확인하세요.
---
요약:
웹서버에서 압축 전송은 `mod_deflate` (아파치), `gzip` (Nginx), IIS 압축 기능을 각각 활성화함으로써 가능하며, MIME 타입 지정 및 브라우저 호환성 고려가 중요합니다. 활성화 후 반드시 서버 재시작 및 동작 확인을 권장합니다.
대표적으로 HTTP 프로토콜에서 지원하는 압축 방식은 gzip과 브라우저가 최신일 경우 사용되는 Brotli가 있습니다.
웹서버 종류별로 압축 전송 활성화 방법을 자세히 설명드리겠습니다.
1. 아파치(Apache) 웹서버 - 모듈 활성화 - Apache에서는 mod_deflate 모듈을 사용하여 gzip 압축을 지원합니다.
- 서버에 따라 이미 모듈이 포함되어 있을 수 있지만, 없다면 설치 후 활성화해야 합니다.
- 설정 방법 - Apache 설정파일(httpd.conf 또는 사이트별 설정파일, 예: /etc/apache2/sites-available/000-default.conf)에 아래와 같이 추가하거나, 별도의 conf 파일로 작성합니다.
```apache
```shell sudo systemctl restart apache2 ``` - Brotli 압축 사용 - 최근에는 mod_brotli 모듈을 사용해 Brotli 압축도 설정 가능하며, Apache
2.4.26 이상에서 지원합니다.
- mod_brotli 모듈을 활성화 후 설정파일에 Brotli 압축 관련 지시자를 추가해줍니다.
2. Nginx 웹서버 - 모듈 내장 - Nginx는 기본적으로 gzip 압축 기능이 내장되어 있습니다.
- 설정 방법 - nginx.conf 또는 사이트별 설정파일 내 http 또는 server 블록에 다음과 같이 설정합니다.
```nginx gzip on; gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript image/svg+xml; gzip_min_length 256; 최소 압축 허용 크기, 너무 작으면 의미 없어짐 gzip_vary on; Vary 헤더 추가 gzip_proxied any; 프록시 환경에서 압축 허용 정도 gzip_comp_level 6; 압축 레벨(1~
9), 높을수록 CPU 사용 증가 ``` - 설정 후 Nginx를 재시작하거나 재로드합니다.
```shell sudo systemctl reload nginx ``` - Brotli 압축 사용 - Brotli는 ngx_brotli 모듈을 별도 빌드하거나, 패키지에 따라 제공됩니다.
- 모듈을 설치/빌드 후, 다음과 같이 설정합니다.
```nginx brotli on; brotli_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript image/svg+xml; brotli_comp_level 6; ``` - Brotli가 활성화된 경우, 클라이언트가 지원할 때 우선 Brotli 압축 데이터를 전송합니다.
3. IIS (인터넷 정보 서비스) - IIS 관리자에서 HTTP 응답 압축 설정 가능 - IIS 관리자 실행 → 좌측 서버 이름 클릭 → 가운데 기능 창에서 'HTTP 응답 압축' 선택 - 압축 사용 활성화 (정적, 동적 압축 모두 가능) - 필요에 따라 웹.config 파일에 설정 추가 가능 ```xml
4. 기타 팁 - 압축 대상 파일 형식을 제대로 지정해야 합니다.
보통 텍스트 기반의 HTML, CSS, JS, JSON, XML, SVG 등이 포함됩니다.
- 이미지, 비디오, PDF 같은 대부분의 파일은 이미 압축된 경우가 많아 추가 압축 시 오히려 성능 저하가 발생할 수 있으니 제외하는 것이 좋습니다.
- 압축 수준 설정 시 CPU 사용량과 전송 데이터 크기 간 균형을 맞춰야 합니다.
너무 높은 압축 레벨은 서버 부하를 증가시킬 수 있습니다.
- 꼭 압축 후 콘텐츠가 정상적으로 클라이언트에 표시되는지 테스트해야 합니다.
- HTTP 헤더에 `Content-Encoding: gzip` 또는 `Content-Encoding: br`이 정상적으로 포함되는지 확인해보세요.
정리하면, 웹서버에서 압축을 활성화하려면 사용 중인 서버 소프트웨어에 맞는 모듈을 활성화하고, 적절한 설정문을 추가한 뒤 서버를 재시작·재로드해야 합니다.
이렇게 하면 클라이언트가 지원하는 경우 압축된 콘텐츠가 전송되어 웹사이트 성능 향상에 크게 도움을 줍니다.
작성자:
박채윤 [비회원]
| 작성일자: 1년 전
2025-05-17 10:52:12
조회수: 157 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
조회수: 157 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.