NGINX Plus 릴리스 11(R11)이 출시되었음을 기쁜 마음으로 알려드립니다. 이번 릴리스에서는 제품을 더욱 쉽게 확장하고 맞춤 설정할 수 있도록 하고, 훨씬 더 광범위한 배포 환경을 지원하기 위해 NGINX Plus에 여러 가지 새로운 기능을 제공합니다.
NGINX Plus R11에서는 동적 모듈에 대한 바이너리 호환성을 새롭게 지원합니다. 즉, NGINX Open Source를 기반으로 컴파일된 동적 모듈을 NGINX Plus에 로드할 수 있습니다.
다양한 타사 NGINX 모듈을 활용하여 오픈 소스 및 상용 모듈을 기반으로 NGINX Plus의 기능을 확장하고 추가할 수 있습니다. 개발자는 지원되는 NGINX Plus 코어를 기반으로 사용자 지정 확장 기능, 애드온 및 새로운 제품을 만들 수 있습니다.
NGINX Plus R11에는 다음과 같은 여러 개선 사항도 추가되었습니다:
- 향상된 TCP/UDP 부하 분산 – 새로운 기능으로는 SSL 서버 이름 라우팅, 새로운 로깅 기능, 추가 변수, 향상된 PROXY 프로토콜 지원이 있습니다. 이러한 새로운 기능은 디버깅 기능을 강화하고 더 광범위한 엔터프라이즈 애플리케이션을 지원할 수 있도록 해줍니다.
- IP 주소를 통한 향상된 지리적 위치 확인 – 이제 타사 GeoIP2 모듈이 인증되어 NGINX Plus 고객에게 제공됩니다. 이 새 버전은 기존 GeoIP 모듈보다 현지화된 더욱 상세한 위치 정보를 제공합니다.
- 향상된 NGINX JavaScript 모듈 – NGINX JavaScript는 JavaScript를 기반으로 하는 NGINX Plus용 차세대 구성 언어입니다. 새로운 기능을 통해 Stream(TCP/UDP) 모듈에서 요청 및 응답 데이터를 즉석에서 수정할 수 있습니다.
NGINX Plus R11 상세 정보
동적 모듈의 바이너리 호환성
NGINX 커뮤니티는 다양한 모듈 확장 기능을 NGINX Open Source용으로 개발했습니다. 여기에는 보안 솔루션, 인증 모듈은 물론 Lua와 같은 완전한 애플리케이션 런타임 환경까지 포함됩니다.
당사는 NGINX Plus용 타사 모듈 중 일부를 빌드하고 유지 관리하며, 릴리스할 때마다 업데이트하여 NGINX Plus 리포지토리를 통해 배포합니다. 이러한 빌드는 NGINX Plus에서 올바르게 작동하도록 인증되었으며, 당사 지원 팀은 설치 및 기본 구성에 대한 기술 지원을 제공합니다.
R11 릴리스부터는 호환되는 모든 타사 모듈을 해당 NGINX Open Source 릴리스에 맞게 컴파일한 후 NGINX Plus에 안전하게 로드할 수 있습니다.
NGINX Plus의 각 릴리스는 NGINX Open Source 버전을 기반으로 빌드됩니다. 일치하는 오픈 소스 버전 번호를 확인하려면 nginx -v를 실행하세요. NGINX Plus R11의 경우 NGINX 1.11.5입니다.
$ nginx -vnginx version: nginx/1.11.5 (nginx-plus-r11)동적 모듈을 컴파일하려면 먼저 사용 중인 NGINX Plus 버전의 기반이 되는 NGINX 소스 코드를 가져옵니다(여기서는 NGINX Plus R11의 경우 nginx-1.11.5):
$ wget https://nginx.org/download/nginx-1.11.5.tar.gz$ tar -xzvf nginx-1.11.5.tar.gz그런 다음 새로운 configure 명령을 --with-compat 인수와 함께 실행하여 NGINX Plus와 호환되는 표준 빌드 환경을 만듭니다:
$ cd nginx-1.11.5$ ./configure --with-compat --add-dynamic-module=/path/to/module
$ make modulesNGINX Plus에서 사용할 자체 모듈을 컴파일하는 방법에 대한 자세한 내용은 블로그의 NGINX Plus용 동적 모듈 컴파일<.htmla>을 참조하세요.
향상된 TCP/UDP 부하 분산
NGINX Plus R11은 주요 기능이 향상되어 더 광범위한 애플리케이션을 지원합니다. 향상된 기능은 TCP 및 UDP 로드 밸런싱에 적용됩니다.
SSL 서버 이름 라우팅
이제 NGINX Plus의 TCP/UDP 로드 밸런서를 사용하여 SSL/TLS 연결을 복호화하지 않고도 부하를 분산할 수 있습니다. 이는 보안이 중요하거나 트래픽이 많은 환경에서 SSL/TLS로 암호화된 연결을 원격 서버로 전달하려는 경우에 유용합니다.
새로운 SSL 서버 이름 사전 읽기 기능을 통해 NGINX Plus R11은 들어오는 각 SSL/TLS 연결을 검사하고 연결을 라우팅할 대상 도메인(예: 서버 이름 표시[Server Name Indication, SNI] 값)을 확인할 수 있습니다.
SSL 서버 이름은 새로운 $ssl_preread_server_name 변수로 제공됩니다. 이 변수에는 SSL/TLS 핸드셰이크의 SNI 필드에서 추출한 대상 호스트 이름이 포함됩니다.
이 변수를 proxy_pass 지시문의 인수로 사용하거나 가상 서버 액세스 로그의 필드로 사용할 수 있습니다. 이 기능을 활성화하려면 다음 예와 같이 구성에 ssl_preread 지시문을 포함해야 합니다:
코드 예제를 로드하는 중…
액세스 로깅 지원
새로운 스트림 로그 모듈은 NGINX Plus R11에서 이전 릴리스의 HTTP 연결에 제공되던 것과 동일한 유형의 액세스 로깅을 TCP/UDP 연결에 제공합니다. 이제 스트림 모듈에서 처리하는 각 TCP/UDP 세션을 기록하여 데이터 전송률, 부하 분산 결정, 오류 상태 등을 확인할 수 있습니다. 이는 TCP 또는 UDP 트랜잭션을 디버깅하거나 감사할 때 필수적인 기능입니다.
Stream 모듈은 다양한 변수를 제공하며, 이러한 변수는 모두 로그에 기록할 수 있습니다. 다음과 같이 변수를 사용하여 기본 로그 형식을 사용자 지정할 수 있습니다:
코드 예제를 로드하는 중…
향상된 PROXY 프로토콜 지원
이번 릴리스에서는 NGINX Plus가 PROXY 프로토콜로 보강된 TCP 연결을 수락할 수 있도록 하여 TCP 연결을 위한 PROXY 프로토콜 지원을 더욱 강화했습니다.
이 기능을 사용하면 로깅 또는 인증을 위해 연결의 실제 소스 IP 주소를 확인할 수 있으므로 NGINX Plus에서 TCP 연결을 더욱 효과적으로 관리할 수 있습니다.
추가 확장 상태 메트릭
이제 Status 모듈은 stream 범주에서 처리된 세션 수와 다양한 오류 조건의 발생 횟수를 비롯한 더 많은 메트릭을 보고합니다.
Stream Log 모듈의 새로운 access_log 명령과 더불어, 추가된 메트릭을 통해 TCP 및 UDP 서비스의 동작을 더 쉽게 모니터링하고 오류 발생률이 예상보다 높을 때 이를 감지할 수 있습니다.
[편집자 주 – Status 모듈은 더 이상 사용되지 않으며 NGINX Plus API 모듈로 대체되었습니다. 이 모듈은 NGINX Plus R13에서 도입되었습니다.]
더욱 정확한 위치 정보 확인을 위한 GeoIP2 모듈
서드 파티 GeoIP2 모듈이 이제 인증을 받아 NGINX Plus 사용자가 당사 리포지토리에서 이용할 수 있습니다. GeoIP2 모듈은 현지화된 이름을 제공하고 기존 GeoIP 모듈에서 사용하는 데이터베이스보다 더 상세한 정보를 담고 있는 MaxMind GeoIP2 형식의 데이터베이스를 사용합니다.
새 모듈을 설치하려면 다음 명령을 실행합니다(Debian 및 Ubuntu용):
$ apt-get update$ apt-get install nginx-plus-module-geoip2In the main (top‑level) context in /etc/nginx/nginx.conf의 기본(최상위) 컨텍스트에 새로 설치한 모듈을 위한 load_module 지시어를 추가합니다:
코드 예제를 로드하는 중…
GeoIP2 모듈에 대한 자세한 내용은 공식 GitHub 페이지를 참조하세요.
NGINX JavaScript 모듈 개선 사항
편집자 – 다음 사용 사례는 NGINX JavaScript 모듈의 여러 사용 사례 중 하나에 불과합니다. 전체 사용 사례 목록은 NGINX JavaScript 모듈 사용 사례를 참조하세요.
This post has been updated to use the refactored session (s) object for the Stream module, which was introduced in NGINX JavaScript 0.2.4.
NGINX JavaScript는 NGINX 및 NGINX Plus를 위한 차세대 구성 언어입니다. NGINX JavaScript를 사용하면 익숙한 JavaScript 구문으로 표준 NGINX 구성 언어에서 가능한 것보다 더 복잡한 작업을 수행할 수 있습니다. 이번 릴리스에는 NGINX JavaScript 모듈에 대한 여러 개선 사항이 포함되어 있습니다.
NGINX JavaScript는 아직 개발 중이며, 이번 릴리스의 업데이트는 최종적으로 계획된 기능을 구현하는 방향으로 나아가고 있습니다. 이번 마일스톤에서는 Stream 모듈과의 통합 및 더 폭넓은 JavaScript 언어 지원이라는 두 가지 영역에 중점을 두었습니다.
Stream 모듈에서 NGINX JavaScript는 데이터를 검사하고 수정하기 위해 여러 내부 요청 처리 단계에 액세스할 수 있습니다. 예를 들어, 다음 NGINX JavaScript 코드는 MySQL 프로토콜 스트림의 세 번째 메시지를 검사하고 주요 패턴을 검색하여 SQL 작업을 식별하는 방법을 보여 줍니다:
코드 예제를 로드하는 중…
NGINX JavaScript 코어의 언어 지원이 대폭 확장되어 더 많은 기본 제공 객체와 함수를 지원합니다. 업데이트는 Mercurial 소스 저장소와 NGINX Plus 패키지 저장소를 통해 제공됩니다.
향상된 캐싱 성능
NGINX Plus는 디스크 캐시 정리를 담당하는 별도의 캐시 관리자 프로세스를 실행합니다. 특정 상황에서는 캐시 관리자가 많은 양의 메모리를 회수해야 하는 경우와 같이 다수의 파일을 삭제해야 할 수 있습니다.
새로운 ‘unlink throttling’ 기능을 사용하면 캐시된 파일의 최대 삭제 속도를 지정할 수 있습니다. 삭제 속도를 낮추면 기본 디스크의 부하를 줄여 시스템 성능을 향상할 수 있습니다.
삭제 속도는 manager_files, manager_threshold, manager_sleep 지시문의 새 매개변수와 proxy_cache_path, fastcgi_cache_path, scgi_cache_path, uwsgi_cache_path 지시문을 통해 제어됩니다.
NGINX Plus 업그레이드 또는 체험
NGINX Plus를 사용 중이라면 편리한 시기에 릴리스 11로 업그레이드하시기 바랍니다. 여러 수정 사항과 개선 사항이 적용되며, 지원 티켓을 제출해야 할 경우 더 원활하게 지원해 드릴 수 있습니다. 설치 및 업그레이드 지침은 고객 포털에서 확인할 수 있습니다.
참고: 이전에 공지한 바와 같이, NGINX Plus R11 이상에는 nginx-plus-extras 패키지가 포함되지 않습니다. 해당 패키지를 계속 사용 중이라면 대신 nginx-plus 패키지를 배포하고 NGINX Plus 모듈 저장소에서 필요한 추가 모듈을 동적으로 로드해야 합니다.
아직 NGINX Plus를 사용해 보지 않으셨다면 웹 가속, 부하 분산 및 애플리케이션 전송을 위해 사용해 보시거나, 향상된 모니터링 및 관리 API를 갖춘 완전한 지원이 제공되는 웹 서버로 활용해 보시기 바랍니다. 지금 바로 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에게서 알아보세요.