NGINX Plus 릴리스 5(R5)를 출시하게 되어 매우 기쁩니다. 이번 릴리스에는 최근 NGINX Open Source 배포판에 추가된 기능과 NGINX Plus에서만 사용할 수 있는 여러 기능이 함께 포함되어 있습니다.
주요 신규 기능은 일반 TCP 기반 프로토콜을 위한 부하 분산입니다. 여기에는 데이터베이스, RPC, 채팅 프로토콜 등이 포함됩니다. 관련 NGINX Plus R5의 TCP 부하 분산 블로그 게시물에서 자세한 내용을 확인할 수 있습니다.
NGINX Plus R5에는 로드 밸런싱 및 캐싱과 관련된 여러 개선 사항도 포함되어 있습니다.
웹 가속, 부하 분산 또는 애플리케이션 전송 솔루션이나 추가적인 NGINX Plus API를 제공하며 완전한 지원을 받을 수 있는 웹 서버를 찾고 있다면 모니터링 및 관리을 고려해 보세요.
TCP 부하 분산
NGINX Plus R5에는 stream 모듈로 구현된 TCP 연결용 부하 분산 기능이 도입되었습니다. MySQL 및 SSL/TLS(복호화 없이)와 같은 다양한 비HTTP 연결의 부하를 분산할 수 있습니다. 기존 mail 프록시 모듈과 새로운 stream 모듈을 결합하면 메일 프로토콜(SMTP, POP3, IMAP)의 부하를 분산하고 관리할 수도 있습니다.

이번 릴리스에서는 다양한 부하 분산 방식(라운드 로빈, 최소 연결, 해시, IP 해시), 연결 매개변수 제어, 인라인 상태 확인을 통한 고가용성, 복구된 서버의 느린 시작, 그리고 서버를 활성, 백업 또는 중지 상태로 수동 지정하는 기능을 제공합니다.
자세한 내용은 블로그의 NGINX Plus R5의 TCP 부하 분산 게시물과 NGINX Plus 관리 가이드의 TCP 부하 분산 항목을 참조하세요. 이 기능은 NGINX Plus에서만 제공됩니다.
부하 분산된 사용자 세션을 더욱 효과적으로 제어
유지 관리 또는 업그레이드를 위해 업스트림 노드를 중단해야 하는 경우가 있습니다. 릴리스 5의 새로운 세션 드레이닝 기능을 사용하면 NGINX Plus가 해당 노드로 새 연결을 보내지 않도록 하면서도 이미 설정된 세션은 완료될 때까지 해당 노드에서 유지하도록 할 수 있습니다.

You can use 실시간 활동 모니터링을 사용하여 드레이닝된 노드의 트래픽을 모니터링하고, 사용자 세션이 완료되었다고 확신할 때까지 기다린 후 노드를 오프라인으로 전환할 수 있습니다:
# Return the Unix epoch time in seconds (rounded to milliseconds) when # Server 1 in upstream group 'backends' was last used
$ curl http://localhost:8080/status/upstreams/backends/1/selected
# Calculate how long the server has been idle (in milliseconds)
$ expr `date +%s000` - `curl -s http://localhost:8080/status/upstreams/backends/1/selected`[편집자 주 – 앞의 명령은 status 지시문으로 활성화되는 NGINX Plus 상태 모듈을 사용합니다. 이 모듈은 NGINX Plus API로 대체되었으며 NGINX Plus Release 13(R13) 이상에서 더 이상 사용되지 않고, NGINX Plus R15 이후에는 사용할 수 없습니다.]
사용자 세션을 추적하는 고정 쿠키 메커니즘이 업데이트되어 만료 시간이 세션의 첫 번째 요청이 아닌 가장 최근 요청을 기준으로 적용됩니다. 따라서 세션을 더욱 정확하게 추적할 수 있습니다.
세션 드레이닝 및 스티키 쿠키 기능은 NGINX Plus에서만 사용할 수 있습니다.
노드 장애 발생 시 트래픽 제어 개선
업스트림 그룹의 서버가 요청에 응답하지 않으면 NGINX Plus는 그룹 내 다른 서버에 해당 요청을 자동으로 재시도합니다. 새로운 proxy_next_upstream_tries 및 proxy_next_upstream_timeout 지시어를 사용하면 각각 재시도 횟수와 NGINX가 재시도를 계속할 수 있는 시간을 제한하여 이 동작을 더욱 세밀하게 제어할 수 있습니다.
이 기능은 NGINX 1.7.5에서 출시되었으며 HTTP, FastCGI, uWSGI, SCGI 및 memcached 트래픽의 프록시에 적용됩니다.
HTTP Vary 헤더를 캐시된 콘텐츠에 사용할 수 있습니다
일부 웹 서버는 리소스를 요청하는 클라이언트 유형에 따라 서로 다른 버전을 제공합니다. 예를 들어 브라우저가 웹사이트의 홈페이지를 요청하면 서버는 고해상도 이미지가 포함된 버전을 제공하지만, 클라이언트가 모바일 기기인 경우에는 이미지가 없는 버전을 제공합니다. 이러한 서버는 응답에 Vary 헤더를 설정하여, 전송할 버전을 결정할 때 클라이언트 요청의 어떤 헤더를 사용하는지 캐싱 프록시에 알릴 수 있습니다. 이는 곧 프록시가 캐시된 리소스 중 어떤 버전을 전송할지 결정할 때 어떤 헤더를 사용해야 하는지를 알려 주는 것이기도 합니다.
일반적인 사용 사례는 동일한 리소스의 압축된 버전과 압축되지 않은 버전을 구분하는 것입니다. 이 경우 서버 응답의 Vary: Accept-Encoding 헤더는 클라이언트 요청의 Accept-Encoding 헤더 값을 사용하여 어떤 버전을 제공할지 결정하도록 캐시에 지시합니다.
이제 NGINX Plus는 동일한 리소스의 여러 변형을 올바르게 캐시할 수 있도록 Vary 헤더를 완벽하게 지원합니다. 이 기능은 NGINX 1.7.7에서 도입되었습니다.
캐시에서 바이트 범위 제공 지원 개선
클라이언트는 요청에 적절한 바이트 범위를 지정하여 파일의 특정 부분(예: 다운로드 중인 동영상의 한 구간이나 PDF 문서의 한 페이지)을 가져올 수 있습니다. 콘텐츠의 원본 서버가 바이트 범위를 지원하지 않더라도 NGINX Plus는 이러한 요청을 처리하여 캐시된 자산의 바이트 범위를 클라이언트에 제공할 수 있습니다.
NGINX Plus는 파일(전체 파일 또는 바이트 범위)에 대한 요청을 처음 받으면 원본 서버에 전체 파일을 요청하여 캐시합니다. 이후 NGINX Plus는 캐시에서 바이트 범위 요청을 처리합니다. 이를 통해 업스트림(원본) 서버의 부하를 줄일 수 있습니다.
이 기능은 NGINX 1.7.7에서 도입되었으며, proxy_force_ranges 지시어를 사용하여 활성화할 수 있습니다.
업스트림 대역폭을 더욱 세밀하게 제어
새로운 proxy_limit_rate 지시문은 NGINX Plus가 업스트림 서버에서 데이터를 읽는 속도를 제한합니다. 이를 통해 하나의 대용량 요청이 NGINX와 오리진 서버 간의 대역폭을 모두 소모하는 것을 방지합니다. 캐싱이 활성화된 경우에는 콘텐츠가 디스크 캐시에 기록되는 속도를 효과적으로 제어하므로, 디스크의 쓰기 지연 시간이 길 때 유용합니다.
이 지시어는 NGINX 1.7.7에서 도입되었습니다.
NGINX Plus R5의 기타 변경 사항
타사 RTMP 모듈이 NGINX Plus Extras 패키지에 추가되었습니다.
이제 Ubuntu 14.10, Ubuntu 14.04 기반 ARMv8(aarch64), SUSE Linux Enterprise Server 12에서 NGINX Plus를 사용할 수 있습니다.
NGINX Plus 업그레이드 또는 체험
NGINX Plus 고객 여러분께서는 가능한 한 빨리 릴리스 5로 업데이트하시기를 강력히 권장합니다. 여러 수정 사항과 개선 사항이 적용되며, 지원 티켓을 제출해야 할 경우 저희가 더 원활하게 도움을 드릴 수 있습니다. 설치 및 업그레이드 지침은 고객 포털에서 확인할 수 있습니다.
아직 NGINX Plus를 사용해 보지 않으셨다면, 지금 30일 무료 평가판을 시작하여 NGINX Plus가 애플리케이션을 확장하고 제공하는 데 어떻게 도움이 되는지 알아보세요.
작성자 소개

관련 블로그 게시물
시청하기: KubeCon North America 2023에서의 NGINX Gateway Fabric
이 영상에서는 KubeCon의 NGINX 부스를 찾아가, 저희가 공개한 Kubernetes Gateway API 구현을 살펴봅니다.
F5 NGINX로 대규모 WAF 플릿을 확인하고 관리하는 2가지 방법
앱 보안을 강화하는 두 가지 방법을 소개합니다. NGINX Management Suite를 통해 WAF 운영에 대한 가시성을 높이고, NGINX App Protect WAF를 활용해 코드형 보안을 구현하는 것입니다.
Ingress 컨트롤러 선택 가이드, 4부: NGINX Ingress Controller 옵션
개발 주체, 개발 철학, 프로덕션 환경 준비도, 보안 및 지원을 기준으로 어떤 NGINX Ingress 컨트롤러가 가장 적합한지 알아보세요.
진화하는 공격 환경에 NGINX App Protect Denial of Service가 적응하는 방법
NGINX App Protect Denial of Service(DoS)가 계층 7 DoS 공격을 방어하기 위해 완화 방법을 실시간으로 조정하는 방식을 설명합니다. 정상적인 사용자 행동과 서버 상태에 대한 모델을 생성하여 공격을 나타내는 이상 징후를 감지하고 맞춤형 완화 시그니처를 적용할 수 있습니다.
NGINX Instance Manager를 활용한 대규모 구성 업데이트 및 인증서 관리
NGINX Instance Manager 버전 1.0에는 두 가지 새로운 기능이 도입되었습니다. NGINX 인스턴스에 태그와 사용자 역할을 지정하면 전체 그룹에 구성을 한 번에 적용할 수 있습니다. 인증서 검사는 만료 예정인 인증서를 감지하여 서비스 중단을 방지할 수 있도록 인증서를 교체할 수 있게 해줍니다.
Netflix가 자사 CDN의 핵심으로 NGINX를 선택한 이유
Netflix가 글로벌 콘텐츠 전송 네트워크인 Open Connect의 스트리밍 미디어 기술로 NGINX를 선택한 이유를 NGINX 개발자 Gleb Smirnoff에게서 알아보세요.