웹서버와 로드밸런서 분야에서 NGINX Plus를 운영 중이거나 도입을 검토 중이시라면, 최근 F5에서 발표한 라이센스 정책 변경사항과 생명주기 관리 방침을 정확히 이해하는 것이 중요합니다. 특히 2024년 11월 NGINX Plus R33 릴리스부터 도입된 JWT 라이센스 정책은 모든 사용자에게 직접적인 영향을 미치고 있습니다. 이번 글에서는 NGINX Plus의 현재 라이센스 체계, EOS/EOL 일정, 그리고 실무진이 알아야 할 핵심 정보들을 상세히 정리해드리겠습니다.
NGINX Plus는 오픈소스 NGINX를 기반으로 한 F5의 상용 웹서버 및 애플리케이션 전달 플랫폼입니다. NGINX Plus R33부터 모든 NGINX Plus 인스턴스에 유효한 JSON Web Token(JWT) 라이센스가 필수가 되었으며, 이는 F5의 자격부여 및 가시성 정책에 맞춰 진행된 중요한 변화입니다.
1. JWT 라이센스 정책의 핵심 변화사항
라이센스 파일 필수 요구사항
NGINX Plus R33부터 모든 NGINX Plus 인스턴스는 유효한 JWT 라이센스 파일이 필요합니다. 이 라이센스는 개별 인스턴스가 아닌 서브스크립션에 연결되며, 다음과 같은 위치에 저장되어야 합니다:
- Linux:
/etc/nginx/license.jwt
- FreeBSD:
/usr/local/etc/nginx/license.jwt
- 사용자 지정 경로:
mgmt
컨텍스트의license_token
지시문으로 설정 가능
사용량 보고 시스템 (Usage Reporting)
NGINX Plus는 F5의 라이센싱 엔드포인트(product.connect.nginx.com)로 매시간 사용량 보고서를 자동 전송합니다. 이 시스템의 주요 특징은 다음과 같습니다:
구분 | 내용 |
---|---|
보고 주기 | 매시간 자동 전송 |
초기 보고 | 설치 또는 업그레이드 후 즉시 필요 |
오프라인 환경 | NGINX Instance Manager 2.18 이상 경유 |
유예 기간 | 180일 (후속 보고 실패 시) |
중요: 초기 사용량 보고가 실패하면 NGINX Plus가 즉시 트래픽 처리를 중단하므로, 네트워크 연결성과 방화벽 설정을 미리 확인해야 합니다.
2. 라이센스 모델 및 가격 정책
인스턴스별 라이센싱 (Per-Instance Licensing)
NGINX 제품은 ‘인스턴스별’로 라이센싱되며, 각 서브스크립션은 서브스크립션 기간 동안 소프트웨어의 단일 인스턴스 실행을 허용합니다.
가격 구조
NGINX Plus는 3가지 가격 에디션을 제공하며, 가격대는 $849에서 $2,099까지 다양합니다. 또한 무료 체험판도 제공됩니다.
라이센스 유형 | 특징 | 용도 |
---|---|---|
Standard | 기본 로드밸런싱 및 프록시 기능 | 중소규모 배포 |
Professional | 고급 모니터링 및 API 관리 | 엔터프라이즈 환경 |
Enterprise | 전체 기능 + 우선 지원 | 미션 크리티컬 시스템 |
3. NGINX Plus 릴리스 및 지원 생명주기
최신 릴리스 현황 (2025년 기준)
릴리스 | 출시일 | 기반 NGINX 버전 | 24개월 지원 종료일 | 주요 변경사항 |
---|---|---|---|---|
R35 | 2024년 11월 | 1.29.0 | 2026년 11월 | OIDC RP-Initiated Logout, QuickJS ES2023 지원 |
R34 | 2024년 4월 | 1.27.4 | 2026년 4월 | OIDC 네이티브 모듈, 프록시를 통한 사용량 보고 |
R33 | 2024년 11월 19일 | 1.27.2 | 2026년 11월 | JWT 라이센스 필수 도입, 사용량 보고 |
R32 | 2023년 12월 19일 | 1.25.3 | 2025년 12월 | SSL 인증서 캐싱, Stream Pass 모듈 |
R31 | 2023년 10월 | 1.25.2 | 2025년 10월 | 네이티브 NGINX 사용량 보고 |
R30 | 2023년 7월 | 1.25.1 | 2025년 7월 | 네이티브 QUIC+HTTP/3 지원, 워커별 연결 텔레메트리 |
주요 과거 릴리스 및 EOL 현황
릴리스 | 출시일 | 기반 NGINX 버전 | 24개월 지원 종료일 | EOL 상태 | 주요 변경사항 |
---|---|---|---|---|---|
R29 | 2023년 3월 | 1.23.4 | 2025년 3월 | ⚠️ 곧 EOL | MQTT 프로토콜, SAML 인증, OpenTelemetry 지원 |
R28 | 2022년 8월 | 1.23.2 | 2024년 8월 | ❌ EOL 완료 | TLS 메트릭 추가, PROXY 프로토콜 v2 지원 |
R27 | 2022년 2월 15일 | 1.21.5 | 2024년 2월 | ❌ EOL 완료 | ALPN 지원 개선, JWT 인증 오류 코드 커스터마이징 |
R26 | 2021년 9월 28일 | 1.21.3 | 2023년 9월 | ❌ EOL 완료 | Nested JWT 지원, API v7 업데이트 |
R25 | 2021년 6월 | 1.20.2 | 2023년 6월 | ❌ EOL 완료 | JWT 커스텀 체크, HTTP 헬스체크 개선 |
R24 | 2021년 3월 | 1.19.8 | 2023년 3월 | ❌ EOL 완료 | 암호화된 JWT (JWE) 지원, F5 Device ID+ 통합 |
R23 | 2020년 12월 | 1.19.4 | 2022년 12월 | ❌ EOL 완료 | gRPC 헬스체크, 쿠키 플래그 네이티브 지원 |
역사적 주요 릴리스 (참고용)
릴리스 | 출시년도 | 주요 이정표 | EOL 상태 |
---|---|---|---|
R18 | 2019 | OpenTracing 모듈 도입 (R34에서 deprecated) | ❌ EOL 완료 |
R17 | 2018 | TLS 1.3 지원, 2단계 속도 제한 | ❌ EOL 완료 |
R15 | 2018 | gRPC 프록시, HTTP/2 서버 푸시, OpenID Connect | ❌ EOL 완료 |
R14 | 2017 | 개선된 JWT 인증, 중첩 클레임 지원 | ❌ EOL 완료 |
R12 | 2017 | 설정 공유, 프로덕션 레디 nginScript | ❌ EOL 완료 |
R10 | 2016 | JWT 지원 초기 버전 | ❌ EOL 완료 |
R5 | 2015 | TCP 로드밸런싱 도입 | ❌ EOL 완료 |
기술 지원 정책
F5는 각 NGINX Plus 릴리스에 대해 24개월간 기술 지원을 제공하며, 지원 기간은 각 버전의 최초 출시일부터 시작됩니다.
지원 단계별 정책
단계 | 기간 | 제공 서비스 |
---|---|---|
Active Support | 릴리스 후 24개월 | 전체 기술 지원, 버그 수정 |
Security Support | 최근 2개 릴리스만 | 중요 버그 패치 및 보안 업데이트만 적용 |
End of Support | 24개월 후 | 지원 종료 |
4. EOS (End of Software Development) 정책
소프트웨어 개발 종료 일정
각 NGINX Plus 릴리스는 다음 버전 출시일에 EoSD(End of Software Development)에 도달합니다. EoSD 이후에는 해당 버전에 추가 기능이나 일반 버그 수정이 적용되지 않습니다.
현재 지원 상태 (2025년 8월 기준)
릴리스 | EOS 상태 | 보안 지원 | 24개월 지원 남은 기간 | 권장사항 |
---|---|---|---|---|
R35 | Active | ✅ 지원 중 | 15개월 | 프로덕션 권장 |
R34 | Active | ✅ 지원 중 | 8개월 | 안전 |
R33 | EoSD | ⚠️ 보안만 | 15개월 | 업그레이드 검토 |
R32 | EoSD | ⚠️ 보안만 | 4개월 | 업그레이드 계획 필요 |
R31 | EoSD | ❌ 지원 종료 임박 | 2개월 | 즉시 업그레이드 필요 |
R30 | EoSD | ❌ 지원 종료 임박 | -1개월 (만료됨) | 즉시 업그레이드 필요 |
R29 이하 | EOL | ❌ 지원 종료 | – | 즉시 업그레이드 필수 |
중요 모듈별 EOL 일정
1. ModSecurity WAF 모듈
- EOL 날짜: 2024년 3월 31일 완료
- 영향: ModSecurity 패키지가 NGINX Plus 저장소에서 완전히 제거됨
- 대안: NGINX App Protect WAF로 마이그레이션 필요
2. OpenTracing 모듈
- 도입: NGINX Plus R18 (2019년)
- Deprecated: NGINX Plus R32 (2023년 12월)
- 완전 제거 예정: NGINX Plus R34에서 완전 제거
- 대안: OpenTelemetry Distributed Tracing 모듈 사용 권장 (R29에서 도입)
3. Cookie-Flag 모듈 (서드파티)
- Deprecated: NGINX Plus R23 (2020년 12월)
- 완전 제거: NGINX Plus R26 (2021년 9월)
- 대안:
proxy_cookie_flags
지시문 사용
4. SSL 지시문 (구버전)
- Deprecated: NGINX 1.15.0
- 완전 제거: NGINX Plus R30 (2023년 7월)
- 대안:
listen
지시문의ssl
매개변수 사용
5. HTTP/2 Server Push 지원
- 도입: NGINX Plus R15 (2018년)
- 완전 제거: NGINX Plus R30 (2023년 7월)
- 사유: IETF 102 기준으로 0.04%의 세션에서만 사용, Chrome 106부터 비활성화
플랫폼별 지원 종료 일정
운영체제 지원 종료 현황
운영체제 | 지원 종료 릴리스 | 종료 일자 | 상태 |
---|---|---|---|
CentOS 8.1+ | R27 | 2021년 12월 31일 | ❌ 지원 종료 |
Power 8 (ppc64le) | R28 | 2022년 8월 | ❌ 지원 종료 |
Ubuntu 14.04 | R19 | 2019년 | ❌ 지원 종료 |
FreeBSD 10.4, 11.1 | R17 | 2018년 | ❌ 지원 종료 |
Debian 7 (Wheezy) | R14 | 2017년 | ❌ 지원 종료 |
새로운 플랫폼 지원 추가
운영체제 | 지원 시작 릴리스 | 특이사항 |
---|---|---|
Ubuntu 22.04 LTS | R28 | 장기 지원 |
Amazon Linux 2 | R24 | OpenSSL 1.1 의존성 |
Ubuntu 17.10 | R14 | – |
API 버전별 지원 현황
NGINX Plus API 발전사
API 버전 | 도입 릴리스 | 주요 변경사항 | 지원 상태 |
---|---|---|---|
API v9 | R30 | 워커별 연결 메트릭 | ✅ 현재 |
API v8 | R28 | TLS 핸드셰이크 오류 메트릭 | ✅ 지원 중 |
API v7 | R26 | HTTP 상태 코드별 통계 | ✅ 지원 중 |
API v6 | R24 | gRPC 헬스체크 | ✅ 지원 중 |
Status/Upstream Conf API | ~R15 | 2018년 완전 제거 | ❌ 지원 종료 |
패키징 및 저장소 변경사항
저장소 변경 히스토리
저장소 | 사용 기간 | 현재 상태 | 마이그레이션 |
---|---|---|---|
plus-pkgs.nginx.com | ~R25 | R29에서 완전 폐쇄 | pkgs.nginx.com 사용 필수 |
pkgs.nginx.com | R24~ | ✅ 현재 사용 | – |
PGP 키 업데이트
변경사항 | 일정 | 영향 |
---|---|---|
기존 키 만료 | 2024년 6월 16일 | 서명 검증 실패 |
키 만료 연장 | R32에서 처리 | 기존 패키지 검증 가능 |
새 키 생성 | 향후 릴리스 | 새 패키지용 |
5. 라이센스 만료 및 갱신 정책
서브스크립션 만료 시 영향
지원 계약이 만료된 후에는 더 이상 NGINX Plus를 사용하거나 NGINX로부터 지원을 받을 권한이 없으며, NGINX Plus 업데이트에 액세스할 수 없고 NGINX Plus 인스턴스를 중지하고 삭제해야 합니다.
갱신 프로세스
- 사전 알림: F5는 모든 구독자에게 업데이트 가능 시점을 사전 통지
- 갱신 절차: MyF5 포털을 통한 서브스크립션 갱신
- 새 JWT 다운로드: 갱신 시 새로운 JWT 라이센스 파일 발급
- 배포: Config Sync Group 또는 Instance Group을 통한 일괄 배포 권장
6. 버전별 마이그레이션 가이드 및 체크리스트
R33 이상으로 업그레이드 시 필수 작업
사전 준비 체크리스트
항목 | 설명 | 완료 |
---|---|---|
JWT 라이센스 준비 | MyF5 포털에서 JWT 파일 다운로드 | ☐ |
네트워크 연결성 확인 | product.connect.nginx.com:443 접근 가능 여부 확인 |
☐ |
방화벽 정책 업데이트 | 아웃바운드 HTTPS 연결 허용 | ☐ |
오프라인 환경 대비 | NGINX Instance Manager 2.18+ 설치 | ☐ |
백업 및 롤백 계획 | 기존 설정 파일 및 데이터 백업 | ☐ |
단계별 업그레이드 절차
- JWT 라이센스 배치
# 라이센스 파일 위치 확인 sudo mkdir -p /etc/nginx sudo cp license.jwt /etc/nginx/license.jwt sudo chown nginx:nginx /etc/nginx/license.jwt sudo chmod 600 /etc/nginx/license.jwt
- 설정 파일 업데이트
# nginx.conf 추가 설정 mgmt { usage_report endpoint=product.connect.nginx.com:443; enforce_initial_report on; }
- 오프라인 환경 설정 (필요시)
mgmt { usage_report endpoint=internal-nim.company.com:443; enforce_initial_report on; license_token /custom/path/license.jwt; }
주요 릴리스별 업그레이드 주의사항
R35로 업그레이드 시
- OIDC RP-Initiated Logout 기능 활용 가능
- QuickJS ES2023 완전 지원으로 njs 스크립트 현대화
- CVE-2025-53859 보안 패치 적용
R34로 업그레이드 시
- 프록시를 통한 사용량 보고 지원으로 네트워크 제약 해결
- OIDC 네이티브 모듈 도입으로 인증 간소화
- SNI 관련 보안 이슈 (CVE-2025-23419) 패치
R33로 업그레이드 시 (필수)
- JWT 라이센스 시스템 완전 전환
- 사용량 보고 필수 활성화
- 180일 유예 기간 설정 옵션
레거시 모듈 마이그레이션 가이드
1. ModSecurity → NGINX App Protect 마이그레이션
# 기존 ModSecurity 설정 (더 이상 지원되지 않음)
# load_module modules/ngx_http_modsecurity_module.so;
# modsecurity on;
# modsecurity_rules_file /etc/nginx/modsec/main.conf;
# NGINX App Protect 대안
load_module modules/ngx_http_app_protect_module.so;
app_protect_enable on;
app_protect_policy_file "/etc/app_protect/conf/NginxDefaultPolicy.json";
app_protect_security_log_enable on;
app_protect_security_log "/etc/app_protect/conf/log_default.json" syslog:server=127.0.0.1:514;
2. OpenTracing → OpenTelemetry 마이그레이션
# 기존 OpenTracing 설정 (R34에서 제거 예정)
# load_module modules/ngx_http_opentracing_module.so;
# opentracing_load_tracer /usr/local/lib/libjaegertracing_plugin.so /etc/jaeger-config.json;
# opentracing on;
# OpenTelemetry 대안
load_module modules/ngx_http_otel_module.so;
otel_exporter {
endpoint http://jaeger:14268/api/traces;
}
otel_trace on;
3. 구버전 SSL 지시문 마이그레이션
# 기존 방식 (R30에서 제거됨)
# server {
# listen 443;
# ssl on;
# }
# 권장 방식
server {
listen 443 ssl;
listen [::]:443 ssl;
}
오프라인 환경 특별 고려사항
NGINX Instance Manager 설정
# /etc/nginx/nginx.conf
mgmt {
usage_report endpoint=nim.internal.company:443 interval=1h;
enforce_initial_report on;
license_token /etc/nginx/license.jwt;
}
# NIM에서 F5로의 포워딩 설정 (NIM 2.18+ 필요)
방화벽 규칙 예시
# 아웃바운드 HTTPS 허용
sudo iptables -A OUTPUT -p tcp --dport 443 -d product.connect.nginx.com -j ACCEPT
# 내부 NIM으로의 연결 허용
sudo iptables -A OUTPUT -p tcp --dport 443 -d nim.internal.company -j ACCEPT
모니터링 및 검증 방법
라이센스 상태 확인
# 라이센스 파일 확인
sudo nginx -t
sudo ls -la /etc/nginx/license.jwt
# 로그에서 사용량 보고 확인
sudo tail -f /var/log/nginx/error.log | grep -E "(usage|report|license)"
# API를 통한 라이센스 상태 확인
curl http://localhost:8080/api/9/nginx
업그레이드 후 검증 체크리스트
검증 항목 | 명령어/방법 | 예상 결과 |
---|---|---|
설정 문법 검증 | nginx -t |
syntax is ok |
라이센스 로드 | 로그 확인 | 라이센스 관련 ERROR 없음 |
사용량 보고 | 로그 모니터링 | 매시간 보고 성공 |
서비스 정상성 | systemctl status nginx |
active (running) |
API 응답 | curl localhost:8080/api |
JSON 응답 |
긴급 상황 대응 가이드
라이센스 보고 실패 시 대응
- 즉시 대응 (180일 유예 기간 내)
# 네트워크 연결 확인 telnet product.connect.nginx.com 443 # DNS 해결 확인 nslookup product.connect.nginx.com # 프록시 설정 확인 echo $https_proxy
- 임시 유예 기간 활성화
mgmt { usage_report endpoint=product.connect.nginx.com:443; enforce_initial_report off; # 임시로 비활성화 }
롤백 절차
# 1. 서비스 중지
sudo systemctl stop nginx
# 2. 이전 버전 복원
sudo yum downgrade nginx-plus
# 3. 설정 파일 복원
sudo cp /etc/nginx/nginx.conf.backup /etc/nginx/nginx.conf
# 4. 서비스 재시작
sudo systemctl start nginx
NGINX Plus를 안정적으로 운영하기 위해서는 라이센스 정책과 지원 생명주기를 정확히 이해하고, 정기적인 업데이트 계획을 수립하는 것이 중요합니다. 특히 JWT 라이센스 도입으로 인한 변화에 대응하여 네트워크 설정과 라이센스 관리 프로세스를 점검해보시기 바랍니다.