블로그 | NGINX

NGINX Plus R8 발표

NGINX-F5-수평-검정-유형-RGB의 일부
오웬 개렛 썸네일
오웬 개렛
2016년 1월 19일 게시

당사의 애플리케이션 전송 플랫폼의 최신 릴리스인 NGINX Plus Release 8(R8)이 출시되었다는 소식을 전해드리게 되어 기쁘게 생각합니다. 이 릴리스에는 완벽한 프로덕션 준비가 완료되고 강화된 HTTP/2 구현, 지속적인 동적 재구성 API, 대용량 비디오 파일의 확장 가능한 캐싱을 위한 새로운 Slice 모듈 등 완벽한 애플리케이션 제공을 보장하는 많은 기능이 포함되어 있습니다.

편집자 – NGINX Plus R8은 또한 OAuth 기술 미리보기를 소개했습니다. 자세한 내용은 아래를 참조하세요.

NGINX Plus R8의 주요 새로운 기능에 대한 자세한 내용은 다음 관련 리소스를 참조하세요.

 

NGINX Plus R8 의 주요 새로운 기능은 다음과 같습니다.

  • 완전한 프로덕션 준비 완료 HTTP/2 구현NGINX Plus R7 에서 프로토콜이 비준된 지 7개월도 채 안 되어 HTTP/2에 대한 지원을 도입했습니다. NGINX는 현재 HTTP/2를 위한 1위 웹 서버 입니다. 저희의 개발 노력은 해당 출시로 끝나지 않았으며, 저희는 구현을 개선하기 위해 계속해서 열심히 노력해 왔습니다. NGINX Plus R8을 통해 완벽하게 지원되고, 프로덕션에 적합하며, 강화된 HTTP/2 표준 구현을 제공하게 되어 자랑스럽습니다.

    HTTP/2는 웹사이트 성능을 최대 30%까지 향상시킵니다. NGINX Plus R8을 사용하면 애플리케이션을 변경하지 않고도 새 사이트와 기존 사이트에 HTTP/2 지원을 계속 추가할 수 있습니다.

  • 지속적인 동적 재구성 API – NGINX Plus의 동적 재구성 API를 사용하면 NGINX Plus를 다시 시작하거나 구성 파일을 수동으로 수정하여 다시 로드하지 않고도 업스트림 서버를 추가하거나 제거할 수 있습니다. 이 기능은 자동 확장 및 서비스 검색에 매우 유용하며, 필요에 따라 로드 밸런싱 풀을 수정할 수 있습니다. NGINX Plus R8 부터 API로 변경한 내용은 재시작이나 구성 재로드 후에도 유지됩니다.

    이 API 업데이트를 사용하면 NGINX Plus 부하 분산 구성을 영구적으로 변경하고 서버를 추가하거나 제거하고 부하 분산 우선 순위를 변경할 수 있습니다. 이렇게 보안이 간편한 API를 사용하면 필요에 따라 자주 변경할 수 있습니다.

  • 대용량 비디오 파일을 위한 확장 가능한 캐싱NGINX Plus R8 을 통해 HTML5 비디오와 같은 대용량 비디오 파일을 보다 효과적으로 처리할 수 있도록 확장 가능한 콘텐츠 캐시가 개선되었습니다. NGINX Plus는 전체 비디오 파일을 단일 캐시 항목으로 저장하는 대신, 이를 더 작은 조각으로 나누어 해당 조각을 캐시합니다. 이런 방식으로 캐시를 구조화하면 사용자가 인터넷에서 비디오를 소비하는 방식(빨리 감기, 일찍 종료 등)에 더 잘 부합하고, 사용자 지연 시간은 물론 원본 서버와의 네트워크 트래픽도 줄어듭니다.

NGINX Plus R8 기능 세부 정보

이 섹션에서는 NGINX Plus R8 의 모든 새로운 기능과 기능에 대한 자세한 개요를 제공합니다.

OAuth 기술 미리보기

편집자 - NGINX Plus R8에서 OAuth 2.0 표준을 사용한 인증 구현인 OAuth 기술 미리보기를 소개했으며, 자세한 내용은 원래 여기에 나와 있습니다. NGINX Plus R10에서는 OAuth 기술 미리 보기를 JSON 웹 토큰(JWT) 표준에 대한 기본 지원 으로 대체했습니다.

프로덕션 준비 HTTP/2 구현

HTTP/2는 HTTP 프로토콜의 최신 버전입니다. 이는 원래 버전의 HTTP 프로토콜에서 발생하던 많은 문제를 해결하여 전반적인 성능을 개선하고 리소스 활용의 효율성을 높였습니다.

HTTP/2는 2015년 2월에 표준이 비준된 이후 꾸준히 사용량이 증가해 왔습니다. 이 글을 쓰는 시점에서 모든 웹사이트의 6%가 HTTP/2를 사용하고 있으며 , 인터넷 사용자의 69%가 HTTP/2를 지원하는 브라우저를 사용하고 있습니다.

NGINX Plus R8을 사용하면 오늘날 사용 가능한 HTTP/2 중 가장 실전에서 테스트되고 안정적이며 신뢰할 수 있는 구현을 얻을 수 있습니다. HTTP/2 지원 웹사이트의 71%는 NGINX와 NGINX Plus를 기반으로 하며, 우리는 초기 채택자들의 피드백을 제품에 반영했습니다. 당사의 HTTP/2 구현은 프로덕션 사용을 위해 완벽하게 지원되며 가장 어려운 작업 부하도 처리할 수 있도록 확장 가능합니다.

NGINX Plus는 HTTP/2 게이트웨이 역할을 합니다.

NGINX Plus는 새로운 프로토콜로의 전환을 용이하게 해주는 "HTTP/2 게이트웨이" 역할을 합니다. 프런트엔드에서 NGINX Plus는 이를 지원하는 클라이언트 웹 브라우저와 HTTP/2를 통신합니다. 백엔드에서 NGINX Plus는 이전과 마찬가지로 HTTP/1.x(또는 FastCGI, SCGI, uwsgi 등)를 사용합니다. 그 사이에서 NGINX Plus는 HTTP/2와 HTTP/1.x(또는 FastCGI 등) 사이를 변환합니다. 즉, NGINX Plus에서 프록시하는 서버와 애플리케이션은 HTTP/2로의 전환에 영향을 받지 않으며 클라이언트가 HTTP/2를 사용하는지 알 필요가 없습니다. HTTP/2 클라이언트에 서비스를 제공하는 웹사이트와 애플리케이션은 HTTP/2를 지원하는 모든 웹 브라우저에서 요구하는 대로 TLS/SSL을 사용해야 합니다.

NGINX Plus 또는 NGINX 구성에서 변경해야 하는 유일한 사항은 listen 지시문에 http2 매개변수를 추가하는 것입니다.

듣기 443 ssl http2 default_server;

NGINX Plus 및 NGINX에서 HTTP/2에 대한 자세한 내용은 백서주문형 웨비나를 참조하세요.

지속적인 동적 재구성

NGINX Plus는 구성을 다시 로드하지 않고도 백엔드 서버를 동적으로 추가, 제거, 수정할 수 있는 HTTP 기반 API를 제공합니다. 이 기능은 서비스 검색, 자동 확장 및 수요에 따라 서버를 추가하거나 제거해야 하는 기타 애플리케이션에 매우 유용합니다.

NGINX Plus R8을 사용하면 이 API를 사용하여 변경한 내용이 NGINX Plus를 다시 시작하고 구성을 다시 로드해도 지속됩니다. NGINX Plus가 업스트림 그룹의 서버에 대한 상태 정보를 저장하는 파일의 이름을 지정하기 위해 업스트림 블록에 새로운 상태 지침을 추가합니다. 동적 재구성 API로 변경한 내용은 파일에 기록됩니다. NGINX Plus는 시작 시 파일을 읽으며, 이를 통해 재시작 후에도 변경 사항이 유지됩니다.

업스트림 백엔드 { 존 백엔드 64k; 상태 /var/lib/nginx/state/backend.state; }

state 지시어는 NGINX Plus가 업스트림 그룹의 서버에 대한 상태 정보를 저장하는 파일의 이름을 지정합니다. 구성에 포함되는 경우 server 지시문을 사용하여 서버를 정적으로 정의할 수 없습니다.

사용자 nginx는 /var/lib/nginx/state/ 디렉토리에 대한 쓰기 권한이 있어야 합니다. 해당 디렉토리가 아직 존재하지 않으면 다음 명령을 실행할 수 있습니다.

$ sudo mkdir -p /var/lib/nginx/state $ sudo chown nginx:nginx /var/lib/nginx/state

대용량 비디오 파일을 위한 확장 가능한 캐싱

캐싱은 웹 콘텐츠 전달을 가속화하는 가장 빠른 방법 중 하나입니다. 캐싱은 콘텐츠를 최종 사용자에게 더 가깝게 배치하여 지연 시간을 줄일 뿐만 아니라, 상위 원본 서버에 대한 요청 수도 줄여 대역폭 사용량을 낮추고 효과적으로 용량을 늘립니다. 비디오, 특히 HTML5 비디오는 캐싱의 주요 대상입니다. 그 이유는 콘텐츠가 정적이고 처음 게시될 때 요청이 많은 경향이 있기 때문입니다.

HTML5 비디오를 사용하면 브라우저가 HTTP 바이트 범위 요청을 통해 콘텐츠를 가상 스트리밍합니다. 예를 들어, 첫 번째 1분 분량의 비디오를 요청하고 그다음에는 두 번째 1분 분량을 요청하는 식으로 진행합니다. 이런 방식으로 스트리밍하면 브라우저가 필요 없는 비디오 섹션을 건너뛸 수 있고, 대신 사용자가 빨리 감기나 되감기를 한 지점에서 요청한 바이트 범위를 시작할 수 있으므로 빨리 감기와 되감기 기능을 쉽게 구현할 수 있습니다.

NGINX Plus R8 에는 캐시된 비디오 파일에 대한 이러한 스타일의 브라우저-서버 상호 작용을 보다 잘 지원하기 위해 새로운 Slice 모듈이 포함되어 있습니다. 이 모듈은 파일을 더 작은 조각으로 나누고 그 조각을 캐시합니다. 이런 방식으로 캐시를 구조화하는 것은 HTML5 비디오에서 사용하는 것과 같은 최신 비디오 스트리밍 기술과 더 잘 부합합니다.

캐시 슬라이싱을 활성화하려면 슬라이스 지시문을 포함하세요.

proxy_cache_path /tmp/mycache 키_존=mycache:10m; 위치 / { proxy_cache mycache; proxy_pass http://localhost:8000; 슬라이스 1m ; proxy_cache_key $uri$is_args$args $slice_range ; proxy_set_header 범위 $slice_range ; proxy_http_버전 1.1; proxy_cache_valid 200 206 1h; }

이 샘플 구성에서는 NGINX Plus가 비디오 파일을 1MB 조각으로 나눕니다. 다음 지침도 포함해야 합니다.

  • 정의된 키의 새로운 $slice_range 변수와 proxy_cache_key – 원본 파일의 조각을 구별하기 위한 캐시 키를 설정합니다.
  • proxy_set_header – HTTP 요청의 Range 헤더를 $slice_range 로 덮어씁니다. 클라이언트가 요청한 바이트 범위가 NGINX Plus에서 생성된 조각 사이의 경계와 일치하지 않을 경우, NGINX Plus는 클라이언트의 바이트 범위 요청에 있는 모든 데이터를 가져오기 위해 여러 개의 하위 요청을 해야 합니다.
  • proxy_http_version – HTTP/1.0은 바이트 범위 요청을 지원하지 않으므로 요청을 HTTP/1.1로 업그레이드합니다.

이 새로운 기능에 대한 자세한 내용은 관련 블로그 게시물을 참조하세요.

추가 기능

NGINX Plus R8은 또한 완벽한 애플리케이션 제공을 지원하는 여러 가지 추가 개선 사항을 도입했습니다. 여기에는 다음이 포함됩니다.

  • 복잡한 애플리케이션에 대한 보다 유연한 상태 점검. 기본적으로 NGINX Plus는 업스트림 블록의 서버 지시문에서 지정한 포트로 상태 점검 메시지를 보냅니다. NGINX Plus R8을 사용하면 이제 각 위치 블록에서 대체 포트를 지정할 수 있습니다. 이는 동일한 호스트에서 여러 서비스의 상태를 모니터링할 때 특히 유용합니다.

    health_check 지시문에 새 포트 매개변수를 포함합니다.

    위치 / { proxy_pass http://backend; health_check 포트= 8080; }
    
  • 기본적으로 NGINX Plus는 이제 HTTP HEAD 요청을 캐싱합니다(캐싱하기 전에 GET 요청으로 변환합니다). 이러한 유형의 캐싱을 비활성화하려면 proxy_cache_convert_head off 지시문을 포함하세요.

    HEAD 요청은 표준 GET 요청과 동일하지만 응답 본문이 반환되지 않습니다. HEAD 요청은 링크의 유효성, 접근성 및 최근 수정 사항을 테스트하는 데 유용합니다.

  • 새로운 변수인 $realip_remote_addrReal IP 모듈을 사용할 때 원래 클라이언트 IP 주소를 캡처합니다.
  • access_logerror_log 지시문에 대한 새로운 nohostname 매개변수는 호스트 이름 필드가 syslog 에 로깅되는 것을 비활성화합니다. 로컬 syslog 서버에 로깅하는 경우 호스트 이름은 필요하지 않습니다.

NGINX Plus Extras 패키지의 다음 모듈이 업데이트되었습니다.

다음 패키지는 더 이상 제공되지 않습니다.

  • nginx-plus-http2 – HTTP/2 지원이 이제 nginx-plusnginx-plus-extras 패키지에 포함되었습니다. NGINX Plus는 더 이상 SPDY를 지원하지 않습니다.
  • nginx-plus-lua – Lua 지원을 위해서는 nginx-plus-extras 패키지를 사용하세요.

업그레이드 또는 NGINX Plus를 사용해 보세요

NGINX Plus를 사용하고 계시다면 가능한 한 빨리 릴리스 8로 업그레이드하시기 바랍니다. 여러분은 많은 수정 사항과 개선 사항을 접하게 될 것이고, 여러분이 지원 티켓을 제출해야 할 경우 우리가 여러분을 도울 수 있을 것입니다. 설치 및 업그레이드 지침은 고객 포털 에서 확인할 수 있습니다.

NGINX Plus를 사용해보지 않으셨다면 웹 가속, 부하 분산, 애플리케이션 전송을 위해 사용해보세요. 아니면 향상된 모니터링관리 API를 갖춘 완벽히 지원되는 웹 서버로 사용해보는 것도 좋습니다. 오늘부터 30일 평가판을 통해 무료로 시작하여 NGINX Plus가 애플리케이션을 제공하고 확장하는 데 어떻게 도움이 될 수 있는지 직접 확인하세요.


"이 블로그 게시물에는 더 이상 사용할 수 없거나 더 이상 지원되지 않는 제품이 참조될 수 있습니다. 사용 가능한 F5 NGINX 제품과 솔루션에 대한 최신 정보를 보려면 NGINX 제품군을 살펴보세요. NGINX는 이제 F5의 일부가 되었습니다. 이전의 모든 NGINX.com 링크는 F5.com의 유사한 NGINX 콘텐츠로 리디렉션됩니다."