웹서버 종류
- 아파치 : Apach
- Nginx : (엔진X)라 읽음
- IIS : 윈도우 서버
페이지 구분
- 정적페이지 : 고정된 웹사이트
- 동적페이지 : 게시판, DB로 인해 바뀌는 사이트
아파치, NginX의 모듈로 할 수 있다.
옛날에 많이 쓰던 조합인 Apach - PHP - MySQL 조합을 APM 이라 했다.
Tomcat : API 애플리케이션 웹과 서버를 연결시켜주는 것, WAS라고 함
WAS : Tomcat, Jetty, Undertow
Spring으로 코딩한 웹앱을 war 파일로 빌드하면 그 안에 .class 파일, jsp, 이미지, css, js 등 파일이 압축되어 있는 형태
tomcat: 특정 폴더에 war을 넣고 명령어를 실행하면 스프링 서비스가
요즘은 반대로 spring을 tomcat이 embeded 된 jar 파일로 빌드해서 배포
Tomcat (+war) : Spring
Spring(+embeded Tomcat) : jar파일로 배포
WAS 를 Java외 진영에서는 다르게 쓰기도 한다.
Node.js처럼 한꺼번에 얘기되기도 한다.
한국에서는 Java를 많이 해서
Tomcat 정적 리소스 빨라짐
WAS는 정적 리소스들을 뒷단, Apache나 NginX 등 WebServer 를 앞단에 두는 의미는
- Reverse Proxy: 클라이언트들에게 프록시로 서버의 정보를 감춤 ex. port번호 등을 감춤
- Forward Proxy : IP를 대신한다, 사용자 관점에서 프록시 서버에서 저장되었다가 제공
아파치 보안 설정(reverse proxy)
8. http 접속 시 https 리다이렉트(RewriteEngine)
(출처 : 아파치 보안 설정 https://blog.limelee.xyz/entry/%EC%95%84%ED%8C%8C%EC%B9%98%EB%B3%B4%EC%95%88%EC%84%A4%EC%A0%95)
보안쪽은 나중에 실습을 통해, 또는 보안담당자가 보여주는 것을 위주로 봐야할듯??
로드밸런싱
로드밸런싱 : 톰캣(WAS)등의 인스턴스 분산해주는 것
- 지속성
- 성능이 나음
캐싱
캐싱 : reverse proxy의 캐시
서버 관점에서의 storage? 서버에 자주찾는 리소스들을 저장했다가 클라이언트에게 주기
웹서버 : 수많은 모듈 제공, health check를 한다.
Apache vs NginX
Apache : 다중프로세스 처리 , MPM : 멀티 프로세스 모듈 방식
클라이언트가 접속할때마다 생성하는 방법과 한 프로세스 안에서 스레드를 새로 생성하는 방식 2가지가 있다.
- mpm_prefork : 클라이언트마다 프로세스를 두는 방식
- mpm_worker : 한 프로세스에서 클라이언트마다 스레드를 생성한다는 것
-> context switching (컨텍스트 스위칭) " 메모리", 자원을 많이 소모
다양한 검증된 기능, 오랜기간 안정성, 이벤트 처리 추가됨
NginX : 이벤트 처리
- event driven : 성능이 좀더 나음, 가벼움을 추구하는 서비스
REFERENCE
https://www.youtube.com/watch?v=Zimhvf2B7Es
안하면 까먹고 안하면 까먹고... 쥬륵
'Computer Science > 서버' 카테고리의 다른 글
[대규모 트래픽 간접경험 / 정리]AWS Game DAY 주운글: 나중에 정리 (0) | 2022.08.22 |
---|