![](https://velog.velcdn.com/images/choisooyoung-dev/post/2afd21fa-aaba-4d91-b1cf-844434e79c06/image.png)
웹서버
- 웹사이트를 제공하는 서버로 만들어 주는 서비스
- 웹사이트에 필요한 파일들(HTML, CSS 등)을 외부에서 접근 가능하도록 개방해서 서버에 지정된 췝사이트 주소로 접속하면 이것들을 받아가도록 하는 것
- ex) 아파치, NginX, IIS
아파치 vs NginX
아파치
- MPM 방식
1) mpm_prefork
- 요청이 들어올때마다 새로 process 생성
2) mpm_worker
- 요청이 들어올때마다 한 프로세스에서 새 쓰레드 생성
- 컴퓨터 자원 소모량이 증가한다.
- 다양하고 검증된 기능이 필요한 곳에 쓰인다.
NginX
- 이벤트 방식
- 요청을 1열로 쭉 나열 하고 하나씩 처리하는 방식
- 성능면에서 우수하다.
- 성능과 가벼움을 추구하는 서비스에서 쓰인다.
웹서버를 왜 쓰는지?
- 프론트와 백끼리 바로 연결되는 것 보다는 중간에 아파치나 NginX를 두는 이유는 무엇일까?
1) reverse proxy의 보안적인 이유와 캐싱 기능
- 아파치와 NginX 같은 웹서버는 reverse proxy이다.
- 자주 쓰이는 것들을 모아놨다 바로 보내줄 수 있다.
reverse proxy - 클라이언트에게서 서버의 정보를 감추는 것(내부 구조 등)
forward proxy - 우리의 서버에 방문하는 클라이언트의 정보를 감추는 것
2) 로드밸런싱
- 클라이언트의 요청이 증가할 때 여러개를 두어 분산해서 요청을 처리해주면 된다.