Nomad Jay
디지털노마드 Jay
Nomad Jay
전체 방문자
오늘
어제
반응형
  • 어서오세용✋ (21)
    • 삽질후기👨‍🔧(Ko) (0)
    • 온라인수업후기💻(ko) (0)
    • Programming(ko,en) (15)
      • Python (0)
      • Django (0)
      • Flask (0)
      • Javascript (12)
      • Node.js (1)
      • Nest.js🐱 (1)
      • Typescript (0)
      • DataBase🛢 (0)
      • MySQL (0)
      • MongoDB (0)
      • 리눅스 (0)
      • Basic (0)
      • Computer Science💻 (0)
      • NetWork (0)
      • SelfCodeReview (0)
      • 스티브잡생각스⚙ (0)
      • Book Review📙 (1)
      • iOS (0)
      • Andoroid (0)
    • 잡다한인생이야기🕺 (2)
    • 우당탕탕 유럽 살이 (4)
      • 여행기 (4)
      • 일기 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 리셀후기
  • 밀라노
  • 기차유럽
  • 이탈리아
  • JavaScript
  • 인터라켄
  • 노드
  • timecomplexity
  • 비전공자
  • 개발자
  • 유럽에서기차
  • 개발개념
  • 유럽여행후기
  • 꿀팁
  • 유럽렌트카
  • 모던자바스크립트딥다이브
  • 기본기
  • 자바스크립트
  • 스위스
  • 개발기본기
  • 모던딥다이브
  • 백엔드
  • 개발
  • 타입스크립트
  • 프론트엔드
  • 당첨수령
  • 실제유럽후기
  • 유럽여행
  • 아랍항공
  • 꼬모레이크

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Nomad Jay

디지털노마드 Jay

Programming(ko,en)/Node.js

Node.js 와 Apache, nginx 는 왜 같이쓰는가?

2023. 10. 26. 15:27
반응형

나는 당연히 node.js 의 express 만으로도 안정적인 서버를 구축할수있다고 생각하고

 

그렇게 자바스크립트를 배워왔지만 

 

배포를 하다보니 nginx 를 같이이용하는경우가 많았다 

 

클라이언트 사이드가 아닌 서버사이드인데 왜 이용하나 

굳이 사용하면 괜히 속도저하만 생기는게 아닌가 싶어서 찾아봤지만

역시나는 갈길이 한참멀어도 이렇게 멀수가없었다

 

단어의 정의부터 알아보자

 

웹 서버 : 클라이언트가 서버에 request 를 하면 그 reauest 를 받아 정적 컨텐츠를 제공 요청에 대해
가장 앞에서 처리

 

WAS : 주로 동적컨텐츠를 제공하기위해 만들어진 Web Application Server

 

리버스 프록시 : 내부 어플리케이션과 외부 클라이언트 사이에
자리잡아  클라이언트의 요청을 적절한 서버로 보내주는 역할

 

많은 어플리케이션들이 갖지못한 로드 밸런싱, 보안, 가속화기능이 있다

 

아니 그래서 같이 사용해야하냐고??

같이 사용하게되면 보안적으로 우세한건 맞다

 

Proxy 는 프록시서버를 통해 다른 네트워크에 간접적으로 접속할수있게 해준다

 

프록시 서버를 도입하면 익명의 사용자가 서버에 접근할때 다이렉트가 아니고 

한단계를 더 거쳐야 하기에 보안적으로 우세

속도도 우세한것도 맞음

 

사용자의 요청을 cache 의 형태로 가지고 있기 때문에 동일한요청이오면 더욱빠르게 응답가능

불필요한 리소스낭비를 막고

ACL 과 접근자 레포팅 등 다양한 측면에서 장점을 가지고 있다고 한다

 

보안에 강하고 성능과 비용측면에서 이득이라는건데 

프록시 서버중 리버스 프록시는 사용자가 실제서버의 정보를 알지못하는 장점이 존재

 

포워드 프록시는 클라이언트에서 요청을 실제 서버에 요청 데이터를 가져오지만

리버스 프록시는 클라이언트 요청을 리버스 프록시 서버가 받아

배후의 사용자가 알지못하는 서버에서 데이터를 가져옴쓰

 

Node.js express 에서 사용하는 실제 포트를 nginx 80포트 Proxy 서버로 숨겨서 보안을 강화! 

 

가벼운 토이프로젝트에선 node.js 로만 구성해도 좋을거같은데

여러사용자가 접속하여 데이터를 만들어내고 수정하는 웹 이라면 

혹시 모르니깐 만에하나 천에하나 억에하나 보안이슈가 있을수있으니 

리버스프록시를 연동하여 구축해보자 

 

이미 그렇게한건 안비밀 

 

그리고 node.js 의 아버지 라이언 달 선생님 께서도

 

"You just may be hacked when some yet-unknown buffer overflow is discovered. Not that that couldn't happen behind nginx, but somehow having a proxy in front makes me happy"

 

번역하면 

 

아직 알려지지 않은 버퍼 오버플로가 발견되면 해킹 당할 수 있습니다. nginx 뒤에는 불가능한 일이 아닙니다.하지만 프록시를 앞에두면 행복합니다. 

 

쓰면 좋다는 거 아닐까??

사자 문 슨생님이 말씀하신거면 전적으로 따라보자

 

그리고 Nginx 가 비동기 이벤트처리방식이라 Node.js 와 궁합이 찰떡쓰!!!

반응형
저작자표시 (새창열림)
    Nomad Jay
    Nomad Jay
    유럽에 거주중

    티스토리툴바