웹서버
- 서버 역할을 하는 소프트웨어도 서버라고 할 수 있다.
- 웹사이트에 정보를 제공해주는 것을 웹 서버
톰캣
- WAS: 동적 web을 전문적으로 다루는 서버
- war 파일을 넣고 명령어를 실행하면 톰캣이 관리를 해준다.
- SpringBoot에서는 JAR안에 톰캣이 있다.
- spring 프레임워크에서 서버의 역할을 함
아파치
- Web Server
- 톰캣이 가져온 것을 클라이언트에게 제공해주는 역할
- 톰캣도 web server의 역할을 해줄 수 있다.
- 톰캣을 쓰지 않는 이유는 성능 때문은 아니다.
- 최근에는 성능이 많이 좋아졌기 때문
- reverse proxy
- 클라이언트에게 서버를 숨기는 것
- 웹의 구조를 감출 수 있다.
- 더 다양한 보안 기능을 제공해준다.
- load balancing
- 클라이언트가 몰리면 분산해서 task를 배치
- 서비스를 끊김 없이 제공할 수 있게 한다.
- 성능 측면에서 더 나은 결과를 보여줄 수 있다.
- caching
- 서버에서 자주 제공해야하는 것을 cache로 담아 놓음
Apache VS NginX
- Apache는 다중 프로세스
- MPM: 멀티 프로세스 모듈
- 프로세스와 스레드를 새로 만들어서 작동
- 자원을 많이 소모함
- NginX는 이벤트
- 이벤트를 처리하면 대기열로 보내는 형식으로 작동
- 성능적으로는 더 좋음