NGINX는 세계적으로 가장 많이 사용되는 오픈소스 웹 서버 및 리버스 프록시 소프트웨어입니다. Ubuntu에서 무료로 제공되는 **NGINX OSS(Open Source Software)**와, F5에서 판매하는 **NGINX Plus(유료 상용판)**이 존재합니다. 본 문서는 OSS와 Plus의 차이, 소스코드 기반 빌드 방법, 성능 최적화 전략, 그리고 클라우드 배포 옵션을 종합적으로 정리합니다.
2. NGINX OSS와 Plus의 차이
항목
NGINX OSS (무료)
NGINX Plus (유료)
라이선스
BSD 계열 오픈소스
상용 구독 라이선스 (연 $2,500+)
소스 공개 여부
✅ (GitHub)
❌ 비공개
로드 밸런싱
기본 라운드로빈, ip_hash
동적 서버 추가/삭제, 세션 지속성, 가중치 기반
헬스체크
Passive only
Active Health Check 지원
상태 모니터링
/stub_status (텍스트)
/api (JSON API), 대시보드 포함
인증/보안
기본 TLS
JWT 인증, OpenID Connect 지원
캐싱
기본 캐시
고급 캐시 정책, 캐시 상태 API
설정 변경
전체 reload 필요
Zero-downtime dynamic reconfiguration
기술 지원
커뮤니티
공식 SLA, 엔지니어 지원
3. 성능 최적화 전략 (OSS 기준)
🔧 주요 설정 튜닝
worker_processes auto; : CPU 코어에 맞게 워커 자동 할당
worker_connections 10240; : 동시 연결 수 증가
sendfile on; tcp_nopush on; tcp_nodelay on; : 커널 수준 버퍼링으로 파일 전송 최적화
keepalive_timeout 65; : 연결 유지 시간 조정
gzip on; : 응답 압축으로 전송량 절감
proxy_cache : 리버스 프록시 캐싱 활성화
📈 모니터링/부하 테스트 도구
wrk, ab, siege → 부하 테스트
ngxtop, Prometheus Exporter → 실시간 상태 모니터링
4. GitHub 기반 NGINX 소스 빌드
설치 절차
sudo apt remove nginx nginx-common -y
sudo apt install build-essential libpcre3 libpcre3-dev zlib1g-dev libssl-dev git -y
# GitHub 소스 다운로드
cd /usr/local/src
git clone https://github.com/nginx/nginx.git
cd nginx
# 빌드 및 설치
auto/configure --prefix=/opt/nginx --with-http_ssl_module --with-http_v2_module
make -j$(nproc)
sudo make install
실행
/opt/nginx/sbin/nginx # 시작
/opt/nginx/sbin/nginx -s stop # 정지
/opt/nginx/sbin/nginx -s reload# 설정 다시 로드
답글 남기기