티스토리 뷰
SSL 인증서를 사용해 웹사이트를 HTTPS로 열 수 있도록 EC2에 Nginx를 설치해보았지만
막상 Nginx의 역할은 뭐지? 하고 생각해보니 proxy pass 기능 밖에 떠오르지 않았습니다 ..😅💦
Nginx가 무엇인지. 아파치와는 무슨 차이가 있는지. 또 무슨 역할을 하는지 정리해보고자 합니다✏️
Nginx란?
경량 웹 서버로, HTTP 요청을 처리하고 다른서버로의 요청을 전달합니다.
아파치에 비해 기능은 적지만 경량화 되어있어 EC2 프리티어에서 사용하기 좋습니다. (적용해봤는데 잘 돌아갑니다👍)
Apache vs Nginx
이 둘은 요청 처리 방식에서 차이가 있습니다.
1. Apache
요청마다 새로운 쓰레드를 생성하여 처리
- 프로세스 생성 시간이 오래 걸리므로 요청이 들어오기 전에 프로세스를 미리 생성하는 PREFORK 방식을 사용
만들어 놓은 프로세스가 모두 할당되면 추가로 프로세스를 만듭니다. - 요청 많을 수록 자원 소모 多
2. Nginx
이벤트 기반 처리 구조방식
- 마스터 프로세스는 설정 파일을 바탕으로 워커 프로세스를 생성하고, 워커 프로세스는 생성될 때 각자 지정된 listen 소켓을 배정받습니다.
- 소켓에 새로운 클라이언트 요청이 들어오면 커넥션을 형성하고 처리한다. 커넥션은 정해진 Keep Alive 시간만큼 유지되며, 아무런 요청이 없으면 새로운 커넥션을 형성하거나 새로운 요청을 처리합니다.
- 이벤트들은 OS 커널이 큐 형식으로 워커 프로세스에게 전달해줍니다.
- 큐에 담긴 요청중 하나가 시간이 오래 걸리면 스레드 풀에 이벤트를 위임하고 다른 이벤트를 처리한다.
- 워크 프로세스는 보통 CPU 코어 수만큼 생성하게 됩니다.
Nginx 역할 정리
- 웹 서버:
- 정적 파일(HTML, 이미지, CSS, JavaScript 등)을 제공하는 고성능 웹 서버로 사용됩니다.
- 리버스 프록시 서버:
- Nginx는 클라이언트 요청을 백엔드 서버로 전달하는 리버스 프록시 서버로 많이 사용됩니다.
- 로드 밸런서:
- Nginx는 여러 서버에 트래픽을 분산시키는 로드 밸런서 역할을 합니다.
- 캐시 서버:
- Nginx는 정적 콘텐츠와 동적 콘텐츠를 캐싱하여 서버의 성능을 향상시킬 수 있습니다. 이를 통해 응답 시간을 줄이고 서버 부하를 감소시킵니다.
- SSL 설정
- SSL 인증서를 사용하여 데이터를 암호화하고, 이를 웹 브라우저에 전달합니다.
'백엔드' 카테고리의 다른 글
다양한 HTTP 통신 방법(크롤링과 Open API)📻 (0) | 2024.05.09 |
---|---|
S3와 이미지 생성 Util 클래스(+CORS 에러) (0) | 2024.03.19 |
ec2 ip 주소에 도메인 입혀보자! nginx를 이용한 https 설정까지!! (0) | 2024.03.05 |
서버 구성과 깃헙 액션을 이용한 CI/CD 적용기 (0) | 2024.02.18 |
객체지향이란? 절차지향과의 차이점! (0) | 2023.07.02 |