[Web Sever]Apach와 Nginx의 역할

민서·2023년 2월 15일
0

Apach & Nginx?

일반적으로 웹서버의 역할을 한다.

  • 웹서버란?
    • 사용자 Client와 동적요청을 처리하는 WAS사이에 위치
    • 일반적으로 소프트웨어와 하드웨어로 구분
    • 하드웨어
      Web 서버 소프트웨어가 설치된 컴퓨터
    • 소프트웨어
      웹 브라우저 클라이언트로부터 HTTP 요청을 받아 정적인 컨텐츠(.html .jpeg .css 등)를 제공하는 컴퓨터 프로그램
  • 웹서버의 역할?
    • load balancer로서
      사용할 WAS서버 앞단에 두어 서버들의 부하를 분산시킴
    • Proxy sever로서
      클라이언트와 서버 사이에 위치하여 데이터의 중계자 역할을 하여 클라이언트에게 뒷단 서버들의 IP주소를 유출시키지 않음(Reverse Proxy), 공격자로부터 보호
    • Cache로서
      동일한 request가 왔을때 WAS로 요청하지 않고 캐쉬에 기록된 response를 건내줌

WAS가 웹서버의 역할을 대신할 수도 있지만, 상단의 이유로 웹서버를 별도로 운영

Aphach?

웹 초창기 개발된 웹서버(1995)
아파치는 request가 들어오면 커넥션을 형성하기 위해 프로세스를 생성, 새로운 request마다 새로운 커넥션, 프로세서을 필요
성능향상을 위해 prefork방식으로 요청 이전 미리 프로세스를 만들어놓는 방식이였음.
예전에는 문제가 없었으나 시대가 바뀌며 인터넷 트래픽이 증가, 커넥션이 증가함. Apach는 구조상 1만개 이상의 커넥션을 연결불가(C10K problem)
그 점을 보완하여 나온 프로그램이 Nginx

Nginx

Nginx의 커넥션은 정해진 keepalive시간이 있기때문에 한개의 worker프로세스에 번갈아가며 여러개의 커넥션 처리 가능
master프로세스가 설정에 따라 worker프로세스를 생성, worker프로세스가 동기방식으로 커넥션을 처리하기때문에 효율적으로 자원사용가능
추가적으로 동시커넥션이 많아도 메모리사용량이 일정하고, 응답속도가 빠름

profile
실패보다 사람을 더 미치게 하는게 후회더라구요 // 공부는 티스토리에, 생각은 벨로그에, 일상은 네이버에 기록합니다

0개의 댓글