NGINX Plus 릴리스 32(R32) 출시 소식을 알려드리게 되어 기쁩니다. NGINX 오픈 소스를 기반으로 하는 NGINX Plus는 유일한 올인원 소프트웨어 웹 서버, 로드 밸런서, 역방향 프록시, 콘텐츠 캐시 및 API 게이트웨이입니다.
NGINX Plus R32의 새롭고 향상된 기능은 다음과 같습니다.
이번 릴리스의 핵심은 NGINX 오픈 소스에서 물려받은 새로운 기능과 버그 수정, 그리고 NGINX JavaScript 모듈에 대한 업데이트입니다.
메모: NGINX Plus R31이 아닌 다른 릴리스에서 업그레이드하는 경우, 현재 버전과 이 버전 사이의 모든 릴리스에 대한 이전 발표 블로그 의 중요한 동작 변경 사항 섹션을 확인하세요.
NGINX Plus R18에서 도입된 OpenTracing 모듈은 더 이상 지원되지 않으며 NGINX Plus R34에서 제거될 예정입니다. 그때까지 모든 NGINX Plus 릴리스에서는 관련 패키지가 제공될 예정입니다. NGINX Plus R29 에서 도입된 OpenTelemetry 모듈 로 OpenTracing 모듈 사용을 대체할 것을 적극 권장합니다.
ModSecurity 모듈은 2024년 3월 31일에 지원이 종료되었습니다. 결과적으로, modsec 패키지는 NGINX Plus 저장소에서 제거되었으며 앞으로 NGINX Plus 저장소에서 더 이상 사용할 수 없게 됩니다.
NGINX 오픈 소스 및 NGINX Plus 패키지는 PGP 키를 사용하여 서명됩니다. 이 키는 2024년 6월 16일에 만료됩니다. 기존 패키지가 2024년 6월 16일 이후에도 계속 검증될 수 있도록 키의 만료 날짜를 업데이트했습니다. 우리는 다가올 릴리스에 대한 패키지에 서명하기 위해 새로운 키 쌍을 생성할 것입니다.
모든 NGINX 사용자는 다음 단계에 따라 업데이트된 PGP 키를 다운로드하여 설치해야 합니다.
Ubuntu/Debian의 경우:
wget -qO - https://nginx.org/keys/nginx_signing.key | gpg --친애하는 | sudo 티 /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
RHEL/CentOS에서:
sudo rpm -e gpg-pubkey-7bd9bf62-5762b5f8
sudo rpm --import https://nginx.org/keys/nginx_signing.key
2024년 6월 16일 이후에는 키를 업데이트하지 않는 한 소프트웨어 서명을 확인할 수 없습니다.
향후 NGINX Plus 릴리스에서는 패키징 및 릴리스 정책을 간소화할 예정입니다. NGINX Plus는 지원되는 운영 체제 배포판의 최신 버전에서만 빌드되고 테스트됩니다. 이전 배포판에 NGINX Plus를 설치하는 경우, 패키지 관리자가 종속 라이브러리 및 패키지를 업데이트하라고 제안할 수 있습니다.
이 릴리스에서는 지원되는 플랫폼에 다음과 같은 변경 사항이 적용되었습니다.
지원되는 새로운 운영 체제:
제거된 이전 운영 체제:
NGINX Plus R33에서 더 이상 지원되지 않고 제거될 예정인 이전 운영 체제:
이전에는 NGINX가 NGINX 구성에서 참조될 때마다 인증서, 키 또는 인증서 해지 목록을 로드했습니다. 즉, 같은 객체에 대한 여러 참조가 있으면 해당 객체가 다시 로드되는 횟수도 같아집니다. 이러한 지연은 신뢰할 수 있는 인증서 목록과 같은 지침을 상속하는 경우 더욱 심화됩니다. 특정 조건에서 이러한 동작은 NGINX 시작 시간에 상당한 영향을 미치고 구성을 저장하기 위해 많은 양의 메모리가 필요할 수 있습니다.
새로운 동작에 따라 SSL 지시문은 이제 캐시된 인증서 파일과 관련 개체를 참조합니다. 그 결과, 동일한 인증서 객체를 반복적으로 참조하는 구성에 대한 메모리 사용량과 로드 시간이 크게 줄어듭니다. 이러한 이점은 신뢰할 수 있는 인증서의 소수가 많은 수의 위치 블록에 참조되는 대규모 NGINX 구성에서 가장 분명하게 드러납니다.
NGINX가 약 5400개의 위치 블록(최상위 및 중첩)과 878개의 인증서로 구성되어 로드 시간이 개선된 모습을 시각화한 것입니다.
그래프의 오른쪽으로 갈수록 로드 시간이 크게 줄어드는 점에 주목하세요. 평균 로드 시간이 변경 전에는 약 40초였지만, 새로운 동작에서는 약 6초로 줄었습니다.
NGINX Plus R32는 NGINX 오픈 소스 1.25.5 의 기능을 상속받아 NGINX에 새로운 구성 계층을 추가합니다. 구체적으로, NGINX 스트림 모듈은 이제 라우터로 작동하여 스트림 컨텍스트에서 http, 메일 또는 스트림 컨텍스트 자체 내의 별도 가상 서버와 같은 다른 컨텍스트로 연결을 전달하는 기능을 갖춘 프록시 역할을 할 수 있습니다.
이 기능은 이번 릴리스에서 도입된 ngx_stream_pass_module 모듈 의 일부로 사용할 수 있습니다. 모듈에는 클라이언트 연결을 전달할 주소를 지정하는 데 사용할 수 있는 단일 지시어 "pass"가 있습니다. 주소는 IP 주소와 포트 조합, 소켓 경로로 지정하거나 NGINX 변수로 참조할 수 있습니다.
이 기능을 사용하면 모든 트래픽을 단일 L4 엔드포인트를 통해 실행하려는 고객은 이제 L4 스트림 컨텍스트에서 SSL 연결을 종료하고 이를 스트림 컨텍스트 내의 다른 모듈(http, 메일)이나 다른 가상 서버로 전달할 수 있습니다. 또한 SSL 연결은 서버 이름이나 프로토콜에 따라 조건부로 종료될 수 있으며, 나머지 트래픽은 다른 곳으로 프록시될 수 있습니다. 이를 통해 단일 엔드포인트에서 트래픽을 관리하기 위한 새로운 구성 동작 세트가 가능해졌습니다.
다음 구성 스니펫은 스트림 모듈에서 SSL 연결을 종료하고 요청된 서버 이름을 기반으로 스트림 컨텍스트 내의 http 컨텍스트나 다른 가상 서버에 조건부로 전달합니다.
http {
서버 {
8000을 수신;
위치 / {
200을 반환합니다 foo;
}
}
}
스트림 {
맵 $ssl_server_name $pass_port {
foo.example.com 8000;
기본 9001;
}
서버 {
9000을 수신;
ssl_certificate 도메인.crt;
ssl_certificate_key 도메인.key;
패스 127.0.0.1:$pass_port;
}
서버{
9001을 수신;
리턴 bar\n;
}
}
이 예에서 모든 SSL 연결은 스트림 서버 블록에서 종료됩니다. 수신 요청에 포함된 서버 이름에 따라 연결은 포트 8000에서 수신하는 http 서버로 전달되거나 포트 9001에서 수신하는 스트림 가상 서버로 전달됩니다.
모듈의 또 다른 응용 분야는 타사 모듈이 SSL 종료를 지원하지 않는 사용 사례를 처리합니다. 이러한 시나리오에서 stream_pass 모듈은 타사 모듈에 전달하기 전에 TLS 암호화 연결을 종료할 수 있습니다.
이 예제는 기본적으로 SSL을 지원하지 않는 RTMP 모듈 이 stream_pass 모듈을 사용하여 TLS 암호화 트래픽을 허용하는 방법을 보여줍니다.
rtmp {
서버 {
듣기 1935;#rtmp
애플리케이션 foo{
라이브 온;
}
}
}
스트림 {
서버 {
듣기 1936 ssl; #rtmps
ssl_certificate 도메인.crt;
ssl_certificate_key 도메인.key;
패스 127.0.0.1:1935;
}
}
이 구성 스니펫에서는 SSL 연결이 스트림 서버 블록에서 종료되고 rtmp로 전달됩니다. SSL 연결을 지원하기 위한 추가적인 사용자 정의나 처리 오버헤드가 필요 없기 때문에 RTMP 모듈에 연결이 암호화되지 않은 것으로 나타납니다.
NGINX Plus R32에는 NGINX Plus의 특권 실행과 특권 없는 실행을 위한 NGINX Plus 컨테이너 이미지가 공식적으로 제공됩니다. 두 가지 컨테이너 유형 모두 NGINX 에이전트를 선택적으로 설치하여 NGINX 지원 관리 평면에 쉽게 연결할 수 있습니다. 이미지는 private-registry.nginx.com에서 제공되는 NGINX 레지스트리에서 다운로드할 수 있습니다. NGINX Plus 인증서와 키 또는 JSON 웹 토큰(JWT)을 사용하여 이미지에 액세스하려면 다음 지침을 따르세요.
다음과 같은 잠재적인 보안 문제가 실험적 HTTP3/QUIC 구현에서 확인되어 수정되었습니다.
NGINX Plus R32는 NGINX Open Source 1.25.5를 기반으로 하며 NGINX Plus R31이 출시된 이후(NGINX 1.25.4 및 1.25.5) 기능 변경, 특징 및 버그 수정을 계승했습니다.
최근 릴리스에서 상속받은 새로운 변경 사항, 기능, 버그 수정 및 해결 방법의 전체 목록을 보려면 NGINX 변경 파일을 참조하세요.
NGINX Plus R32는 NGINX JavaScript(njs) 모듈 버전 0.8.4의 변경 사항을 통합합니다. 다음은 0.8.2(NGINX Plus R31과 함께 제공된 버전) 이후 njs에서 변경된 주요 내용 목록입니다.
모든 기능, 변경 사항 및 버그 수정의 포괄적인 목록은 njs 변경 로그를 참조하세요.
NGINX Plus를 실행 중이라면 가능한 한 빨리 NGINX Plus R32로 업그레이드하는 것을 적극 권장합니다. 모든 훌륭한 새로운 기능 외에도 여러 가지 추가 수정 사항과 개선 사항을 얻을 수 있으므로 지원 티켓을 제출해야 하는 경우 NGINX에서 도움을 더 쉽게 받을 수 있습니다.
NGINX Plus 사용자가 아니라면, 한번 사용해보시기 바랍니다. 보안, 부하 분산 및 API 게이트웨이 사용 사례에 사용하거나 향상된 모니터링 및 관리 API를 갖춘 완벽히 지원되는 웹 서버로 사용할 수 있습니다. 오늘 무료 30일 체험판을 시작해 보세요.
"이 블로그 게시물에는 더 이상 사용할 수 없거나 더 이상 지원되지 않는 제품이 참조될 수 있습니다. 사용 가능한 F5 NGINX 제품과 솔루션에 대한 최신 정보를 보려면 NGINX 제품군을 살펴보세요. NGINX는 이제 F5의 일부가 되었습니다. 이전의 모든 NGINX.com 링크는 F5.com의 유사한 NGINX 콘텐츠로 리디렉션됩니다."