NGINX
- 가벼움과 높은 성능을 목표로 하는, 오픈소스 웹 서버 프로그램
- 비동기 이벤트 기반의 구조로 동작한다.
- 웹 서버, 리버스 프록시 및 메일 프록시 기능을 가진다.
NGINX 구조
Nginx는 요청에 응답하기 위해 비동기 이벤트 기반 구조를 가진다. 이것은 아파치 HTTP 서버의 스레드/프로세스 기반 구조를 가지는 것과는 대조적이다. 이러한 구조는 서버에 많은 부하가 생길 경우의 성능을 예측하기 쉽게 해준다.
장점
NGINX는 프로젝트에 사용될 수 있는 많은 장점을 가지고 있다. 주요 장점은 다음과 같다.
- 고성능 웹 서버: NGINX는 비동기 이벤트 기반 아키텍처로 설계되어 있어, 높은 동시 접속 처리 능력과 낮은 리소스 사용량을 가지고 있다. 이는 웹 서버 성능을 향상시키고 많은 트래픽을 처리할 수 있는 장점을 제공한다.
- 로드 밸런싱: NGINX는 로드 밸런싱 기능을 제공하여 여러 대의 서버에 들어오는 트래픽을 균등하게 분산시킬 수 있다. 이를 통해 웹 서버의 가용성을 향상시키고 부하를 분산하여 안정적인 서비스를 제공할 수 있다.
- Reverse Proxy: NGINX는 Reverse Proxy로 동작할 수 있어 클라이언트와 웹 서버 사이에서 요청을 중계하고 보안을 강화할 수 있다. Reverse Proxy는 외부에 직접적인 접근을 허용하지 않고, 보안 및 암호화를 적용하여 웹 서버를 보호하는 역할을 수행할 수 있다.
- 정적 콘텐츠 제공: NGINX는 정적 파일 서비스에 특화되어 있어 정적 콘텐츠 (HTML, CSS, JavaScript, 이미지 등)를 빠르게 제공할 수 있다. 정적 파일 제공을 위해 따로 웹 애플리케이션 서버를 도입하지 않고도 NGINX만으로 처리할 수 있다.
- SSL/TLS 지원: NGINX는 SSL/TLS 프로토콜을 지원하여 웹 서버와 클라이언트 간의 통신을 암호화할 수 있다. 이를 통해 보안 강화와 개인정보 보호를 할 수 있다.
- 확장성: NGINX는 확장성이 뛰어나며, 다양한 모듈과 플러그인을 제공하여 기능을 확장할 수 있다. 이를 통해 프로젝트의 요구에 맞춰 커스터마이징이 가능하고, 다양한 기능을 추가할 수 있다.
NGINX는 이러한 장점을 통해 웹 서버의 성능, 안정성, 보안성을 향상시키고, 트래픽 관리와 로드 밸런싱을 용이하게 해주는 등 다양한 이점을 제공한다.
NGINX를 쓰는 이유
나만무 프로젝트에 NGINX를 사용하려고 마음먹은 이유는 다음과 같다. 낮은 리소스 사용량을 유지하며 서버 부담을 줄여준다. 또한, 로드밸런싱 기능으로 여러 대의 서버에 들어오는 트래픽을 균등하게 분산시켜준다. 결국 웹 서버의 부함를 분산하여 안정적인 서비스를 제공할 수 있게 도와준다는 것이다. 나만무 프로젝트 구현이 어느 정도 끝났을 때부터는 많은 양의 동시 접근에 대한 부하 테스트를 진행하며 성능 개선을 할 계획인데, 초기 설계부터 잘 짜면 성능적인 부분에서 문제가 덜 생길 것이라 생각했다. 그리고 멘토님도 NGINX에 대해 도입하는 것을 적극 권장하셨고, 쓰지 않을 이유가 없다고 생각했다.
출처
'프로젝트 > 나만무' 카테고리의 다른 글
[나만무] 현재 프로젝트 아키텍처 구조v5.0 (0) | 2023.07.10 |
---|---|
[나만무] ChatGPT 과금 요소 (0) | 2023.07.10 |
[나만무] 기술 스택 선정 (0) | 2023.07.08 |
[나만무] 새로 배운 개념 (0) | 2023.07.07 |
[FE] React.js & Next.js 초기 트러블슈팅 (0) | 2023.07.06 |