내가 담당하는 프로젝트는 보통 AWS에서 서버 세팅을 마친 소스 코드만 올리는 형태의 업무가 많다보니
프로젝트 설정, 배포 관련해서는 연차에 비해 부족한 점이 많다.
서버에 배포할 시기가 되면 꼭 엔진엑스, ssl 인증서 등 다양한 서버 관련된 이야기가 오가는데
무슨 말을 하는지 잘 모르겠고 대화에 끼기 어려웠다.
부족한 점을 채울 겸, 블로그에 글도 쓸 겸 공부한 내용을 공유해보려고 한다.
Nginx 는 웹 서버 중 하나라고 하는데 웹 서버가 무엇인지부터 알아보자.
Web Server
클라이언트의 요청에 따라 정적 파일을 응답하여 제공하는 소프트웨어
그럼 WAS 는 뭐지 ? 싶으면 아래의 글을 참고하길 바람.
요약 : 웹 애플리케이션 서버(Web Application Server, 약자 WAS)는 웹 애플리케이션과 서버 환경을 만들어 동작시키는 기능을 제공하는 소프트웨어 프레임워크
https://yuni-spring.tistory.com/40
- 웹 서버는 정적 리소스 제공과 HTTP 요청 처리를 주로 담당
- WAS는 동적 콘텐츠와 비즈니스 로직 처리를 담당
- 웹 서버와 WAS는 협력하여 더 나은 성능과 확장성을 제공
아하 ! 배포를 할 때 spring boot로 만든 jar 파일은 Nginx 를 통해 웹 서버로 통신하고,
내장 톰캣 WAS 로 DB와 통신하는구나 !
사용자 → Nginx (웹 서버) → 내장 톰캣 (Spring Boot WAS) → 데이터베이스(DB)
↑ ↓
(정적 파일 처리) ←--------- 동적 요청 처리 응답 반환
그렇다면 Nginx 가 꼭 필요한걸까 ?
정적 파일 관리를 몽땅 WAS에게 맡기면 서버 부하가 일어나기 쉽고, 로딩도 느려질 것이다.
보안 관련해서도 그대로 WAS 가 노출될 것이다.
하지만 배포 자체는 안되는건 아닌 것 같다.
그러면 왜 현업에서 Nginx가 계속해서 사용되는거지?
내가 추측한 바로는 Nginx 는 서버 PC 한대에 여러 WAS 와 연결시킬 수 있기 때문인 것 같다.
빌드된 프로젝트마다 포트 번호를 지정해주고 라우팅 설정을 해준다면
낮은 가격으로 여러 홈페이지를 관리할 수 있게 된다.
물론 서버 PC에 부하가 올 수도 있겠지만, 테스트 서버를 관리하거나
무중단 배포 형식의 프로젝트 관리도 가능하니... 엔진엑스 정말 짱인데 ?
'Server' 카테고리의 다른 글
[Server] HTTP, HTTPS, SSL 인증서로 가오 잡는 법 (0) | 2024.11.20 |
---|---|
apache vs apache tomcat (0) | 2022.08.16 |
AWS를 이용한 스프링 배포 [5] #도메인 설정 (0) | 2022.07.19 |
AWS를 이용한 스프링 배포 [4] #server.xml 설정 #외부 경로 설정 #tomcat9 (0) | 2022.07.19 |
AWS를 이용한 스프링 배포 [3] #war #파일질라 (0) | 2022.06.29 |