웹서버에서 Gzip 압축을 설정하는 방법은?

_____
Q1: Gzip 압축이란 무엇인가요?
A1: Gzip 압축은 웹서버가 클라이언트에 전송하는 응답 데이터를 압축하여 전송하는 기술로, 데이터 전송량을 줄이고 페이지 로딩 속도를 개선합니다.

Q2: Gzip 압축 설정이 왜 중요한가요?
A2: Gzip 압축을 사용하면 네트워크 대역폭이 절약되고, 웹 페이지의 로딩 시간이 단축되어 사용자 경험이 향상되며, SEO에도 긍정적인 영향을 미칩니다.

Q3: Apache 웹서버에서 Gzip 압축을 설정하는 방법은?
A3:
1. `mod_deflate` 모듈이 활성화되어 있는지 확인합니다.
```bash
a2enmod deflate
sudo systemctl restart apache2
```
2. Apache 설정파일 또는 `.htaccess` 파일에 다음을 추가합니다:
```apache

AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript application/json application/xml application/xhtml+xml application/rss+xml
압축 제외 파일 예시
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png|zip|gz|tar|mp3|mp4|avi)$ no-gzip dont-vary
Header append Vary Accept-Encoding

```
3. Apache 서버를 재시작합니다.

Q4: Nginx 웹서버에서 Gzip 압축을 설정하는 방법은?
A4:
1. Nginx 설정파일(`/etc/nginx/nginx.conf` 또는 사이트별 설정파일)을 엽니다.
2. `http` 블록 내 또는 `server` 블록 내에 다음 내용을 추가 또는 수정합니다:
```nginx
gzip on;
gzip_disable "msie6";
gzip_vary on;
gzip_proxied any;
gzip_comp_level 5;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
```
3. 설정을 저장하고 Nginx를 재시작합니다:
```bash
sudo systemctl restart nginx
```

Q5: IIS 서버에서 Gzip 압축을 활성화하려면 어떻게 하나요?
A5:
1. IIS 관리자 실행
2. 사이트 선택 후 "HTTP 응답 헤더" 또는 "Compression" 기능으로 이동
3. 정적 콘텐츠 압축(Static Compression) 및 동적 콘텐츠 압축(Dynamic Compression) 활성화
4. 필요시 `web.config` 파일에 압축 설정 추가 가능
5. IIS 재시작

Q6: Gzip 압축이 정상적으로 작동하는지 어떻게 확인하나요?
A6:
- 브라우저 개발자 도구의 네트워크 탭에서 응답 헤더에 `Content-Encoding: gzip`이 포함되어 있는지 확인
- 온라인 테스트 도구(예: [gzipwtf.com](https://www.giftofspeed.com/gzip-test/)) 이용
- `curl` 명령어 사용 예:
```bash
curl -H "Accept-Encoding: gzip" -I https://yourdomain.com
```

Q7: Gzip 압축을 적용할 때 주의할 점은 무엇인가요?
A7:
- 이미지, 영상, PDF 등 이미 압축된 파일 형식은 압축에서 제외하는 것이 효율적입니다.
- 서버 부하가 증가할 수 있으므로 적절한 압축 레벨을 설정하세요.
- 클라이언트가 압축을 지원하지 않을 수 있으므로 `Vary: Accept-Encoding` 헤더를 반드시 포함하세요.

Q8: Gzip 압축과 Brotli 압축 중 어떤 것을 사용해야 하나요?
A8: Brotli는 Gzip보다 더 효율적인 압축률을 제공하지만, 모든 브라우저에서 지원하지 않을 수 있습니다. 대부분의 경우 Brotli와 함께 Gzip을 병행하여 설정하는 것이 최적입니다.

---

위 방법들을 참고하여 사용하는 웹서버에 맞게 Gzip 압축을 설정하면 웹 성능을 효과적으로 개선할 수 있습니다.
웹서버에서 Gzip 압축을 설정하는 방법은 사용하는 웹서버 종류에 따라 다르지만, 대표적으로 아파치(Apache), Nginx, IIS 서버에서 Gzip 압축을 활성화하는 방법에 대해 설명하겠습니다.

Gzip 압축은 서버가 클라이언트에게 전송하는 텍스트 기반 리소스(HTML, CSS, JavaScript, JSON 등)를 압축하여 네트워크 전송량을 줄이고, 페이지 로딩 속도를 개선하는 데 도움을 줍니다.

1. 아파치(Apache) 웹서버에서 Gzip 압축 설정하기 아파치에서는 `mod_deflate` 모듈을 사용해 Gzip 압축을 활성화합니다.

보통 기본 설치 시 포함되어 있지만, 활성화가 되어 있는지 확인하세요.

- mod_deflate 활성화 여부 확인 및 활성화 ```bash Ubuntu/Debian 계열 sudo a2enmod deflate sudo systemctl restart apache2 ``` - 압축 설정 추가 아파치 설정 파일(`httpd.conf` 또는 해당 사이트의 `.htaccess` 파일) 내에 아래 내용을 추가합니다.

```apache 압축할 MIME 타입 지정 AddOutputFilterByType DEFLATE text/plain AddOutputFilterByType DEFLATE text/html AddOutputFilterByType DEFLATE text/css AddOutputFilterByType DEFLATE application/javascript AddOutputFilterByType DEFLATE application/json AddOutputFilterByType DEFLATE application/xml AddOutputFilterByType DEFLATE text/xml AddOutputFilterByType DEFLATE text/javascript AddOutputFilterByType DEFLATE application/xhtml+xml 특정 브라우저의 호환성 문제 대응 (예: IE6 버그 방지) BrowserMatch ^Mozilla/4 gzip-only-text/html BrowserMatch ^Mozilla/4\.0[678] no-gzip BrowserMatch \bMSIE !no-gzip !gzip-only-text/html HTTP 헤더에 압축 정보 추가 DeflateCompressionLevel 6 ``` - 설정 후 아파치를 재시작하여 적용합니다.

```bash sudo systemctl restart apache2 ``` ---

2. Nginx 웹서버에서 Gzip 압축 설정하기 Nginx는 기본적으로 Gzip 모듈이 내장되어 있으므로 설정 파일 안에서 Gzip을 활성화하고, 압축 대상 MIME 타입 등을 지정해주면 됩니다.

- 설정 파일 위치 보통 `/etc/nginx/nginx.conf` 또는 사이트별 설정 파일(`/etc/nginx/sites-available/` 내)입니다.

- Gzip 설정 예시 ```nginx http { gzip on; Gzip 활성화 gzip_vary on; Vary 헤더 추가 (캐시 정책에 도움) gzip_proxied any; 프록시된 요청에 대해 압축 수행 gzip_comp_level 5; 압축 수준 (1~

9) gzip_buffers 16 8k; 압축 버퍼 크기 및 갯수 gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript; gzip_min_length 256; 이 길이 이상인 응답에 대해서만 압축 수행 gzip_disable "msie6"; IE6 이하 브라우저에서는 압축 비활성화 } ``` - 설정을 변경한 후 Nginx를 재시작합니다.

```bash sudo systemctl reload nginx ``` ---

3. IIS(Internet Information Services)에서 Gzip 압축 설정하기 IIS는 윈도우 서버 기반이며, GUI나 명령행으로 압축 설정을 할 수 있습니다.

- 동적 및 정적 콘텐츠 압축 활성화 1. IIS 관리자를 실행한다.



2. 서버 또는 사이트 레벨에서 ‘Compression’ 기능을 선택한다.



3. “Enable dynamic content compression” 및 “Enable static content compression” 체크박스를 활성화한다.



4. 설정 후 IIS를 재시작한다.

- 명령행으로 설정할 경우 (PowerShell 또는 명령 프롬프트) ```powershell 정적 압축 활성화 appcmd set config /section:urlCompression /doStaticCompression:true 동적 압축 활성화 appcmd set config /section:urlCompression /doDynamicCompression:true IIS 재시작 iisreset ``` - web.config 파일에 직접 설정하기 아래와 같이 `` 섹션 안에 추가할 수도 있습니다.

```xml ``` --- 참고사항 - 브라우저 호환성 체크: 과거 특정 브라우저에서는 Gzip 압축에 문제가 있을 수 있으므로, 가능하면 호환성 설정을 포함하는 것이 안전합니다.

- 압축 대상 설정: 이미지(JPEG, PNG 등)와 같이 이미 압축된 파일은 Gzip 압축하지 않는 것이 좋으며, 위 예제들은 텍스트 기반 리소스에 대해서만 압축을 수행하도록 설정합니다.

- 압축 수준 설정: 압축률이 높을수록 CPU 부하가 커지며, 너무 낮으면 압축 효과가 떨어집니다.

보통 수준 5~6 정도로 설정하는 경우가 많습니다.

--- 마무리 웹서버에서 Gzip 압축을 설정하면 페이지 로딩 속도가 개선되고, 서버와 클라이언트 간의 데이터 전송량이 줄어 사용자의 체감 성능이 향상됩니다.

위 아파치, Nginx, IIS별 방법에 따라 환경에 맞게 설정을 적용하고 테스트해보는 것을 추천드립니다.

설정 후에는 반드시 실제 브라우저 또는 `curl -H "Accept-Encoding: gzip" -I http://example.com` 같은 명령어로 응답 헤더(`Content-Encoding: gzip`)가 제대로 반환되는지 확인하십시오.
작성자: 이민호 [비회원] | 작성일자: 1년 전 2025-05-17 10:52:24
조회수: 268 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.