Nginx 에서 KeepAlive 관련된 설정은 다음과 같이 세가지이다. keepalive_disable keepalive_timeout keepalive_requests 먼저, Keepalive 는 HTTP 와 TCP 상에서 구현되어 있다. HTTP 의 경우에는 1.0 버전과 1.1 버전이 존재하는데, 1.0 버전에서는 KeepAlive 는 존재하지 않으며 1.1 에서는 연결시에 기본으로 KeepAlive 가 활성화 된다. HTTP 는 “Connetionless” 방법을 취한다. 웹 컨텐츠를 전송 받기 위해서 서버에 연결을 한 후에 데이터를 전송받는다. 그리고는 연결을 바로 끊게 된다. 하지만 웹이라는게 HTML, Javascript, CSS, Image 파일등으로 수백개로 이루어진 상태에서 수백의 컨텐츠를 전송하기위해서 연결을 수백번을 한다면 비 […]
HowTo, Linux
Nginx Gzip Compression 설정
HTTP 에서도 압축전송을 지원 합니다. 이는 Header 에 압축에 대한 정보가 다음과 같이 담깁니다. Nginx Gzip Compression 설정 은 다음과같이 하시면 됩니다.
1 |
Content-Encoding: gzip |
압축전송을 하게되면 트래픽을 줄일 수 있어, 서버 호스팅을 이용하는 분들에게는 큰 도움이 됩니다. 사용법은 다음과 같습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
# gzip compression 켜기 gzip on; # 파일을 압축하기 위한 최소 파일 크기 gzip_min_length 1100; # gzip 버퍼 크기, 4 32k 면 대부분 상황에서 적당한 크기 입니다. gzip_buffers 4 32k; # 압축을 적용할 파일타입. 파일타입은 MIME 타입을 말함. gzip_types text/plain application/x-javascript text/xml text/css; # 헤더 응답에 "Vary: Accept-Encoding" 리턴. gzip_vary on; # 압축률 지정. 1 ~ 9 사이이며 9가 최고등급의 압축. gzip_comp_level 9; # 압축을 사용하기 위해서 클라이언트에게 HTTP 1.1 사용하도록 요구함. gzip_http_version 1.1; |
잘 동작하는지 다음과 같이 테스트를 할 수 있습니다.
1 2 3 4 5 6 7 8 9 10 11 |
curl --header "Accept-Encoding: gzip,deflate,sdch" -I http://linux.systemv.pe.kr HTTP/1.1 200 OK Server: nginx/1.6.1 Date: Mon, 03 Nov 2014 14:22:28 GMT Content-Type: text/html; charset=UTF-8 Connection: keep-alive Keep-Alive: timeout=5 Vary: Accept-Encoding X-Powered-By: PHP/5.3.3 X-Pingback: http://linux.systemv.pe.kr/xmlrpc.php Content-Encoding: gzip |
“Content-Encoding: gzip” 이 보이면 정상으로 설정이 된 것 입니다.