웹서버에서 압축 전송 활성화 방법은?

_____
질문: 웹서버에서 압축 전송(HTTP 압축)을 활성화하려면 어떻게 해야 하나요?

답변:
웹서버에서 압축 전송을 활성화하면 클라이언트와 서버 간 데이터 전송 시 데이터 크기를 줄여 전송 속도와 대역폭 효율을 높일 수 있습니다. 주요 웹서버별 압축 활성화 방법은 다음과 같습니다.

---

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
- 기본 모듈: Nginx는 기본적으로 `gzip` 모듈을 내장하고 있습니다.
- 설정 방법:
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 압축 대상 MIME 타입 정의 AddOutputFilterByType DEFLATE text/html text/plain text/css application/javascript application/json application/xml application/xhtml+xml application/rss+xml image/svg+xml 압축 미적용 제외(예: 특정 유저 에이전트, 파일 크기 제한 등) 설정 가능 BrowserMatch ^Mozilla/4 gzip-only-text/html BrowserMatch ^Mozilla/4\.0[678] no-gzip BrowserMatch \bMSIE !no-gzip !gzip-only-text/html ``` - 설정 후 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 ``` - IIS 재시작으로 적용 가능 - IIS 10부터 Brotli 공식 지원되기 시작하지만, 기본적으로 gzip이 널리 사용됨

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
내용이 부정확하다면 싫어요를 클릭해주세요.