Nginx란?

김진회·2022년 11월 22일
2

CI/CD

목록 보기
3/7

Nginx란?

  • 비동기 이벤트 기반 구조의 경량 웹 서버로 Http Web Server나 로드 밸런서로 사용된다.

1. Nginx의 개발 이유

  • 초기에는 아파치 서버의 단점을 보완하기 위해 개발되었다.
    • 아파치 서버는 요청이 들어오면 커넥션을 형성하기 위해 매번 프로세스를 생성한다. 인터넷이 발달되고 서버 트래픽량이 높아지면서 서버에 동시 연결된 커넥션이 많아졌을 때 더 이상 커넥션을 형성하지 못하는 C10K 문제가 발생한다.
      • 커넥션마다 프로세스를 할당하기에 메모리 부족으로 이어짐
      • 확장성이라는 장점이 프로세스의 리소스 양을 늘려서 무거운 프로그램이 됨
      • 많은 커넥션에서 요청이 들어오면 CPU 부하가 높아짐
    • Nginx가 정적 파일에 관해 커넥션을 유지하고 스스로 처리한다. 그리고 동적 파일에 관한 요청만 아파치와 커넥션을 생성해서 아파치의 부하를 줄인다.

2. 마스터 프로세스, 워커 프로세스

  • Nginx는 설정파일을 읽고 워커 프로세스를 생성하는 역할을 하는 마스터 프로세스와, 실제로 유저 요청을 처리하는 워커 프로세스로 구성된다. 엔진엑스가 구동되면 마스터 프로세스는 정해진 숫자만큼의 워커 프로세스를 생성하고, 리슨 소켓(워커 프로세스와 통신할 수 있는 소켓 디스크립터)을 배정한다.

3. 이벤트 드리븐 (Event Driven)

  • TCP/UDP 커넥션 연결, 클라이언트의 Http Request 처리, 커넥션 종료 등의 절차를 이벤트 개념으로 취급하고 처리한다.
  • 처리해야할 작업이 순차적으로 담긴 working queue를 워커 프로세스가 처리하게 한다. 워커 프로세스는 쉬지않고 끊임없이 이벤트를 처리하게 된다.
  • 만약 오래 걸리는 작업이 들어오면 que의 작업들은 전부 대기해야하지만, 쓰레드 풀(Thread Pool)을 만들어 그런 작업들을 처리하도록 함. 때문에 다른 작업들을 처리할 수 있음
    • Thread Pool은 생성 비용이 비싼 스레드를 필요할 때 편하게 늘리기 위해 스레드를 미리 만들어놓고 필요한 작업에게 할당해주는 개념

4. 장단점

  • 장점
    • 프로세스를 적게 만들어서 가볍다
    • 트래픽 분산하여 부하를 줄임
    • 콘텐츠를 캐싱해서 결과를 더 빠르게 응답해서 성능을 높임
    • 서비스에서 실제 서버의 IP 주소를 필요로 하지 않기 때문에 보안이 좋음
    • 동적 설정 변경 가능
  • 단점
    • 개발자가 직접 모듈을 만들기가 까다로움
profile
SSAFY 7기. HMG. 협업, 소통, 사용자중심

1개의 댓글

comment-user-thumbnail
2024년 8월 13일

Gian Piero Gasperini as Atalanta coach stated that his team will seriously pursue the 2024 UEFA Super Cup trophy. According to him, being able to appear in the season opener is a rare opportunity that is a shame to miss.
https://ru.nobartv.co.id/indeks-topik , https://es.nobartv.co.id/indeks-topik , https://th.nobartv.co.id/indeks-topik , https://fr.nobartv.co.id/indeks-topik
"It would be incredible for Atalanta and for me. Playing for such an important trophy, it was hard to imagine until now. It would be a great pride, and there is a desire to make a good impression against the strongest team ever (Real Madrid)," said Gasperini, quoted from Sosfanta .
https://www.nobartv.co.id/indeks-topik , https://en.nobartv.co.id/indeks-topik , https://ko.nobartv.co.id/indeks-topik , https://ja.nobartv.co.id/indeks-topik , https://ar.nobartv.co.id/indeks-topik , https://hi.nobartv.co.id/indeks-topik
Real Madrid has the potential to play the best squad. Vinicius Jr. who has been involved in the pre-season match, can be relied on again. On the other hand, Kylian Mbappe, Jude Bellingham, and Federico Valverde, can also be maximized even though they are late to join the team.

Atalanta can count on the hero of the victory in the 2023/2024 UEL final, Ademola Lookman. In addition, Mateo Retegui who was just brought in this season can also be a mainstay up front.

답글 달기