일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- Elasticsearch
- 정보처리기사실기 기출문제
- tucker의 go 언어 프로그래밍
- golang
- Linux
- AI
- Kubernetes
- docker
- kotlin coroutine
- mysql 튜닝
- CloudWatch
- 공부
- Spring
- CKA
- APM
- AWS EKS
- 티스토리챌린지
- kotlin querydsl
- go
- 기록으로 실력을 쌓자
- aws
- 정보처리기사 실기 기출문제
- kotlin
- Pinpoint
- PETERICA
- CKA 기출문제
- minikube
- Java
- 오블완
- 코틀린 코루틴의 정석
- Today
- Total
피터의 개발이야기
[Nginx] Nginx의 기본 이해와 주요 기능 본문

ㅁ 들어가며
Nginx를 블루그린 배포, 인증서 설치 등 일부 기능에 대해서만 사용하였다. 최근 Nginx 보안 검수와 캐싱기능을 이용한 서버 부하 감소 방법을 진행하면서 Nginx에 대해서 좀 더 자세히 배울 수 있었다. 부분적으로 알고 있던 지식을 정리하고자 한다. 이 글에서는 Nginx의 기본 이해와 주요 기능을 정리하였다.
ㅁ Nginx란 무엇인가?
Nginx는 고성능의 오픈 소스 웹 서버 소프트웨어로, 정적 콘텐츠 제공 및 리버스 프록시, 로드 밸런싱 등 다양한 역할을 수행한다. 2004년 이고르 시쇼브(Igor Sysoev)에 의해 개발되었으며, 비동기 이벤트 기반 아키텍처를 통해 높은 처리량과 낮은 리소스 사용을 자랑한다.
Apache와 달리 스레드 기반이 아닌 비동기 방식으로 동작하여 대규모 트래픽(C10K 문제)을 효과적으로 처리할 수 있다. Nginx는 Event-Driven 구조로 동작하기 때문에 한 개 또는 고정된 프로세스만 생성하여 사용하고, 비동기 방식으로 요청들을 Concurrency 하게 처리할 수 있다.
ㅁ Nginx의 구조
- Master Process: 설정 파일을 읽고 유효성을 검사하며, Worker Process를 관리
- Worker Process: 클라이언트 요청을 처리하는 역할을 담당하며, CPU 코어 수에 맞게 병렬로 실행
- 비동기 이벤트 기반 모델: 요청을 효율적으로 분배하고 처리하여 동시 접속 성능을 극대화함.
ㅁ Nginx의 주요 기능
리버스 프록시 (Reverse Proxy)
- 클라이언트 요청을 받아 내부 서버로 전달하고 응답을 반환하는 역할.
- 보안 강화(방화벽 역할)
- SSL Termination(SSL 암호화/복호화 작업 부담 감소) 지원
로드 밸런싱 (Load Balancing)
- 여러 서버에 트래픽을 분산하여 부하를 줄이고 성능과 가용성을 향상
- 장애 발생 시 요청을 다른 서버로 리디렉션하는 장애 복구 기능 제공
정적 콘텐츠 제공
- 이미지, CSS, HTML 등 정적 파일을 빠르게 처리하여 웹 사이트 성능 최적화
- 관련 글: Docker로 Nginx 웹서버 구동해보기 | Docker 파일복사(로컬 - 컨테이너) | Docker 컨테이너 unzip 설치하기
가상 호스팅 (Virtual Hosting)
- 하나의 서버에서 여러 도메인을 호스팅 가능
- 도메인별로 별도 설정 적용 가능
- [Nginx] Nginx 가상 호스팅 설정
SSL/TLS 암호화
- HTTPS를 통해 보안을 강화하며, 인증서 관리 및 암호화 설정 지원
- NGINX 웹 서버에 TLS 암호화 추가
캐싱
- 자주 요청되는 콘텐츠를 캐싱하여 응답 속도 개선 및 백엔드 부하 감소
- 관련 글: [Nginx] NGINX에서 정적 파일 캐시 설정하는 방법
Keep Alive
- 연결 상태를 유지하여 자원 효율성을 높이고 응답 성능 개선
ㅁ Nginx의 장점
- 뛰어난 성능과 확장성.
- 낮은 리소스 사용으로 대규모 트래픽 처리 가능.
- 직관적인 설정 파일 구조로 간편한 관리.
- 다양한 모듈과 플러그인 지원으로 유연한 확장성 제공
ㅁ NGINX 설정 파일의 구조와 사용법
ㅇ [Nginx] NGINX 설정 파일의 구조와 사용법
ㅁ 마무리
Nginx를 단편적으로 알고 있었는데, 이 글을 정리하면서 실무에서 Nginx를 효과적으로 활용하는 방법을 배울 수 있었다. Nginx를 사용하여 웹 서비스를 안정적이고 보안성 있는 방식으로 구축할 수 있다. Nginx는 다양한 현대적인 웹 애플리케이션 환경에서 꼭 필요한 도구이며, 높은 성능과 안정성을 바탕으로 다양하게 활용할 수 있다.
ㅁ 함께 보면 좋은 사이트
ㅇ AI가 알려주는 Nginx - 서버 관리자를 위한 필수 가이드
이 책은 Nginx에 대한 다양한 주제를 다루는 실무 지향적인 책이다. 이 책은 Nginx 소개와 주요 특징, 장점을 설명하며, Nginx의 설치와 설정 방법, 가상 호스팅 설정, 보안 설정, 로드 밸런싱, 성능 최적화, 로깅 및 모니터링, 그리고 고급 주제에 대해 다룬다.
'DevOps > nginx' 카테고리의 다른 글
[Nginx] Nginx 가상 호스팅 설정 (0) | 2025.03.20 |
---|---|
[Nginx] Nginx 설정을 외부 파일로 관리하는 효율적인 방법 (0) | 2025.03.19 |
[Nginx] NGINX으로 HLS(HTTP Live Streaming) 스트리밍 캐싱설정 (0) | 2025.03.14 |
[Nginx] NGINX에서 정적 파일 캐시 설정하는 방법 (0) | 2025.03.11 |
[Nginx] NGINX 설정 파일의 구조와 사용법 (0) | 2025.03.10 |