본문 바로가기

Server

[Server] 왜 우리 회사는 Nginx 를 자주 쓸까 ?

반응형

내가 담당하는 프로젝트는 보통 AWS에서 서버 세팅을 마친 소스 코드만 올리는 형태의 업무가 많다보니

프로젝트 설정, 배포 관련해서는 연차에 비해 부족한 점이 많다.

 

서버에 배포할 시기가 되면 꼭 엔진엑스, ssl 인증서 등 다양한 서버 관련된 이야기가 오가는데

무슨 말을 하는지 잘 모르겠고 대화에 끼기 어려웠다.

 

부족한 점을 채울 겸, 블로그에 글도 쓸 겸 공부한 내용을 공유해보려고 한다.

 

Nginx 는 웹 서버 중 하나라고 하는데 웹 서버가 무엇인지부터 알아보자.

 

Web Server

클라이언트의 요청에 따라 정적 파일을 응답하여 제공하는 소프트웨어

 

그럼 WAS 는 뭐지 ? 싶으면 아래의 글을 참고하길 바람.

 

요약 : 웹 애플리케이션 서버(Web Application Server, 약자 WAS)는 웹 애플리케이션과 서버 환경을 만들어 동작시키는 기능을 제공하는 소프트웨어 프레임워크

 

https://yuni-spring.tistory.com/40

 

[Spring Boot -2]스프링 부트 톰캣은 어디서 실행될까?

이전 글인 스프링 부트 장점과 그 이유에 대해 간략히 설명하고 더 자세한 내용을 하나씩 풀어보려고 한다. https://yuni-spring.tistory.com/39 스프링 부트 장점과 그 이유 과거 2년간 개발했던 기억을

yuni-spring.tistory.com

 

 

  • 웹 서버는 정적 리소스 제공과 HTTP 요청 처리를 주로 담당
  • WAS는 동적 콘텐츠와 비즈니스 로직 처리를 담당
  • 웹 서버와 WAS는 협력하여 더 나은 성능과 확장성을 제공 

 

 

아하 ! 배포를 할 때 spring boot로 만든 jar 파일은 Nginx 를 통해 웹 서버로 통신하고,

내장 톰캣 WAS 로 DB와 통신하는구나 !

 

사용자 → Nginx (웹 서버) → 내장 톰캣 (Spring Boot WAS) → 데이터베이스(DB)
                           ↑                                                        ↓ 
                  (정적 파일 처리) ←--------- 동적 요청 처리 응답 반환

                 

 

그렇다면 Nginx 가 꼭 필요한걸까 ?

 

 

 

정적 파일 관리를 몽땅 WAS에게 맡기면 서버 부하가 일어나기 쉽고, 로딩도 느려질 것이다.

보안 관련해서도 그대로 WAS 가 노출될 것이다. 

 

하지만 배포 자체는 안되는건 아닌 것 같다.

 

그러면 왜 현업에서 Nginx가 계속해서 사용되는거지?

 

내가 추측한 바로는 Nginx 는 서버 PC 한대에 여러 WAS 와 연결시킬 수 있기 때문인 것 같다.

 

빌드된 프로젝트마다 포트 번호를 지정해주고 라우팅 설정을 해준다면

낮은 가격으로 여러 홈페이지를 관리할 수 있게 된다.

 

물론 서버 PC에 부하가 올 수도 있겠지만, 테스트 서버를 관리하거나

무중단 배포 형식의 프로젝트 관리도 가능하니... 엔진엑스 정말 짱인데 ?

 

 

 

 

반응형