블로그 | NGINX

NGINX Plus R11 발표

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

NGINX Plus 릴리스 11(R11) 출시 소식을 전해드리게 되어 기쁩니다. 이번 릴리스에서는 NGINX Plus에 여러 가지 새로운 기능을 제공하여 제품을 더 쉽게 확장하고 사용자 정의할 수 있게 하고, 더 광범위한 배포를 지원할 수 있게 되었습니다.

NGINX Plus R11은 동적 모듈 에 대한 바이너리 호환성을 도입했습니다. 즉, NGINX 오픈 소스에 대해 컴파일된 동적 모듈을 NGINX Plus에 로드할 수 있습니다.

다양한 오픈 소스 및 상업적으로 제작된 모듈을 활용하여 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 커뮤니티는 보안 솔루션, 인증 모듈, Lua 와 같은 완전한 애플리케이션 런타임 환경을 포함한 광범위한 모듈 확장을 NGINX 오픈 소스로 개발했습니다.

우리는 NGINX Plus용 타사 모듈 중 일부를 빌드하고 유지 관리하며, 각 릴리스마다 이를 업데이트하고 NGINX Plus 저장소를 통해 배포합니다. 이러한 빌드는 NGINX Plus에서 올바르게 작동하도록 인증되었으며, 당사 지원팀에서는 설치 및 기본 구성 기술 지원을 제공합니다.

R11 릴리스를 사용하면 이제 모든 호환되는 타사 모듈을 해당 NGINX 오픈 소스 릴리스에 맞춰 컴파일한 다음 이러한 모듈을 NGINX Plus에 안전하게 로드할 수 있습니다.

NGINX Plus의 각 릴리스는 NGINX 오픈 소스 버전을 기반으로 구축 됩니다. nginx -v를 실행하여 일치하는 오픈 소스 버전 번호를 확인합니다. NGINX Plus R11 의 경우 NGINX 1.11.5입니다.

$ nginx -v nginx 버전: 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

그런 다음 새로운 --with-compat 인수와 함께 configure 명령을 실행하여 NGINX Plus와 호환되는 표준 빌드 환경을 만듭니다.

$ cd nginx-1.11.5 $ ./configure --with-compat --add-dynamic-module=/path/to/module $ 모듈 만들기

NGINX Plus에서 작동하도록 자체 모듈을 컴파일하는 방법에 대한 자세한 내용은 블로그의 NGINX Plus<.htmla>를 참조하세요.

사용자가 직접 컴파일한 모듈(커뮤니티 모듈, 타사 파트너가 제공한 모듈, 사용자 지정 모듈)은 NGINX에서 테스트하거나 지원하지 않습니다. 문제에 대한 기술 지원을 요청하는 경우 NGINX 기술 지원팀은 지원되지 않는 모듈을 제거하고 기술 지원 프로세스의 일부로 오류를 재현하도록 요청할 수 있습니다. 이를 통해 오류가 지원되지 않는 모듈로 인해 발생했는지 여부를 확인할 수 있습니다.

개선된 TCP/UDP 부하 분산

NGINX Plus R11은 TCP 및 UDP 부하 분산에 대한 주요 향상 기능을 통해 더 광범위한 애플리케이션을 지원합니다.

SSL 서버 이름 라우팅

이제 NGINX Plus의 TCP/UDP 로드 밸런서를 사용하여 SSL/TLS 연결을 해독하지 않고도 로드 밸런싱할 수 있습니다. 이 기능은 SSL/TLS 암호화 연결을 원격 서버로 전달하려는 보안 또는 트래픽이 많은 환경에서 유용합니다.

새로운 SSL 서버 이름 사전 읽기 기능을 사용하면 NGINX Plus R11은 각 수신 SSL/TLS 연결을 검사하고 연결을 라우팅할 대상 도메인(예: 서버 이름 표시[SNI] 값)을 결정할 수 있습니다.

SSL 서버 이름은 새로운 $ssl_preread_server_name 변수에 제공됩니다. 여기에는 SSL/TLS 핸드셰이크의 SNI 필드에서 추출한 대상 호스트의 이름이 포함되어 있습니다.

해당 변수를 proxy_pass 지시문의 인수로 사용하거나 가상 서버 액세스 로그의 필드로 사용할 수 있습니다. 이 기능을 사용하려면 다음 예에서와 같이 구성에 ssl_preread 지시문을 포함해야 합니다.

액세스 로깅 지원

NGINX Plus R11 의 새로운 Stream Log 모듈은 이전 릴리스에서 HTTP 연결에 대해 제공되었던 것과 동일한 종류의 TCP/UDP 연결 액세스 로깅을 제공합니다. 이제 Stream 모듈에서 처리된 각 TCP/UDP 세션을 기록하여 데이터 속도, 부하 분산 결정, 오류 조건 등을 검사할 수 있습니다. 이 기능은 TCP나 UDP 거래를 디버깅하거나 감사할 때 필수적인 기능입니다.

Stream 모듈은 다양한 변수를 노출하며, 모든 변수를 기록할 수 있습니다. 다음과 같은 방식으로 변수를 사용하여 기본 로그 형식을 사용자 정의할 수 있습니다.

개선된 PROXY 프로토콜 지원

이 릴리스에서는 NGINX Plus가 PROXY 프로토콜을 사용하여 향상된 TCP 연결을 허용할 수 있게 함으로써 TCP 연결을 위한 PROXY 프로토콜 에 대한 지원이 보다 포괄적으로 제공됩니다.

이 기능을 사용하면 로깅 또는 인증 목적으로 연결의 실제 소스 IP 주소를 확인할 수 있으므로 NGINX Plus에서 TCP 연결을 관리하는 기능이 향상됩니다.

추가 확장 상태 메트릭

이제 상태 모듈에서 스트림 카테고리에 대한 더 많은 측정항목을 보고할 수 있습니다. 여기에는 처리된 세션 수와 다양한 오류 조건 수가 포함됩니다.

Stream Log 모듈의 새로운 access_log 명령과 함께 추가된 메트릭을 사용하면 TCP 및 UDP 서비스의 동작을 더 쉽게 모니터링하고 예상치 못한 오류율이 발생하는 경우를 감지할 수 있습니다.

[편집자 - Status 모듈은 더 이상 사용되지 않으며 NGINX Plus R13 에서 도입된 NGINX Plus API 모듈로 대체되었습니다.

더 나은 지리적 위치를 위한 GeoIP2 모듈

타사 GeoIP2 모듈은 이제 인증을 받았으며 저장소에서 NGINX Plus 사용자가 사용할 수 있습니다. GeoIP2 모듈은 MaxMind GeoIP2 형식의 데이터베이스를 사용하는데, 이는 지역화된 이름을 제공하고 원래 GeoIP 모듈에서 사용하는 것보다 세부 정보가 더 풍부합니다.

새로운 모듈을 얻으려면 다음 명령을 실행하세요(Debian 및 Ubuntu에 해당).

$ apt-get 업데이트 $ apt-get 설치 nginx-plus-module-geoip2

/etc/nginx/nginx.conf 의 기본(최상위) 컨텍스트에서 새로 설치된 모듈에 대한 load_module 지시문을 추가합니다.

GeoIP2 모듈에 대한 자세한 내용은 공식 GitHub 페이지를 참조하세요.

NGINX JavaScript 모듈의 향상

편집기 - 다음 사용 사례는 NGINX JavaScript 모듈의 여러 사례 중 하나일 뿐입니다. 모든 사용 사례 목록은 NGINX JavaScript 모듈의 사용 사례를 참조하세요.

이 게시물은 NGINX JavaScript 0.2.4 에 도입된 Stream 모듈의 리팩토링된 세션( ) 객체를 사용하도록 업데이트되었습니다.

NGINX JavaScript는 NGINX 및 NGINX Plus를 위한 차세대 구성 언어입니다. NGINX JavaScript를 사용하면 표준 NGINX 구성 언어로 가능한 것보다 더 복잡한 작업을 수행하기 위해 익숙한 JavaScript 구문을 사용할 수 있습니다. 이 릴리스에는 NGINX JavaScript 모듈에 대한 여러 가지 향상된 기능이 포함되어 있습니다.

NGINX JavaScript는 아직 진행 중이며 릴리스 시점의 업데이트는 최종 계획된 기능을 향해 나아가고 있습니다. 이러한 중요한 이정표에서 우리는 Stream 모듈과의 통합과 보다 광범위한 JavaScript 언어 지원이라는 두 가지 영역에 집중했습니다.

스트림 모듈에서 NGINX JavaScript는 여러 내부 요청 처리 단계에 액세스하여 데이터를 검사하고 수정할 수 있습니다. 예를 들어, 다음 NGINX JavaScript 코드는 MySQL 프로토콜 스트림의 세 번째 메시지를 검사하고 주요 패턴을 검색하여 SQL 작업을 식별하는 방법을 보여줍니다.

NGINX JavaScript 핵심 언어 지원이 상당히 확장되었으며, 추가 내장 객체 및 함수에 대한 지원도 추가되었습니다. 업데이트는 Mercurial 소스 저장소 와 NGINX Plus 패키지 저장소를 통해 공유됩니다.

향상된 캐싱 성능

NGINX Plus는 디스크 캐시를 정리하는 별도의 캐시 관리자 프로세스를 운영합니다. 특정 상황에서는 캐시 관리자가 대량의 파일을 삭제해야 할 수도 있습니다. 예를 들어, 대량의 메모리를 복구해야 할 때입니다.

새로운 '링크 해제 제한' 기능을 사용하면 캐시된 파일에 대한 최대 삭제 속도를 지정할 수 있습니다. 속도가 낮으면 기본 디스크의 부하가 줄어들어 시스템 성능이 향상될 수 있습니다.

삭제 속도는 proxy_cache_path , fastcgi_cache_path , scgi_cache_pathuwsgi_cache_path 지시문에 대한 새로운 manager_files , manager_thresholdmanager_sleep 매개변수로 제어됩니다.

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

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

메모: 이전에 발표 된 대로 NGINX Plus R11 이상에는 nginx-plus-extras 패키지가 포함되지 않습니다. 아직 해당 패키지를 사용하고 있다면 대신 nginx-plus 패키지를 배포하고 NGINX Plus 모듈 저장소에서 필요한 추가 모듈을 동적으로 로드해야 합니다.

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


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