Node.js 리버스 프록시 구축

JavaScriptBeginner
지금 연습하기

소개

이 프로젝트에서는 Node.js 를 사용하여 리버스 프록시를 만드는 방법을 배우게 됩니다. 리버스 프록시는 클라이언트와 백엔드 서버 사이에 위치하여 클라이언트의 요청을 백엔드 서버로 전달하고, 응답을 다시 클라이언트로 반환하는 서버입니다.

👀 미리보기

Reverse proxy server preview

🎯 과제

이 프로젝트에서는 다음을 배우게 됩니다:

  • Node.js 를 사용하여 HTTP 서버를 만드는 방법
  • Stream pipe를 사용하여 GitHub 응답 데이터를 클라이언트에 직접 전달하는 방법
  • 리버스 프록시 서버를 시작하고 테스트하는 방법

🏆 성과

이 프로젝트를 완료하면 다음을 수행할 수 있습니다:

  • 리버스 프록시의 개념과 작동 방식을 이해합니다.
  • Node.js 를 사용하여 GitHub 웹사이트로 요청을 프록시하는 리버스 프록시를 만듭니다.
  • Stream pipe를 사용하여 리버스 프록시 기능을 구현합니다.
  • 리버스 프록시 서버를 시작하고 테스트합니다.

리버스 프록시 구현

시작하려면 편집기를 엽니다. 편집기에서 "proxy.js" 파일을 볼 수 있습니다.

이 단계에서는 Stream pipe를 사용하여 GitHub 응답 데이터를 클라이언트에 직접 전달하는 방법을 배우게 됩니다. 이 단계를 완료하려면 아래 단계를 따르세요:

  1. proxy.js 파일에서 http.createServer 함수 내의 // TODO 주석을 찾습니다.
  2. // TODO 주석을 다음 코드로 바꿉니다:
https.get(uri, function (response) {
  response.pipe(res);
});

이 코드는 Stream pipe를 사용하여 GitHub 응답 데이터를 클라이언트에 직접 전달합니다.

  1. proxy.js 파일을 저장합니다.
✨ 솔루션 확인 및 연습

리버스 프록시 서버 시작

이 단계에서는 리버스 프록시 서버를 시작하고 테스트하는 방법을 배우게 됩니다.

  1. 터미널을 열고 프로젝트 디렉토리로 이동합니다.
  2. 다음 명령을 실행하여 리버스 프록시 서버를 시작합니다:
node proxy.js

다음과 같은 출력을 볼 수 있습니다:

Server running at http://localhost:8080/
  1. 다른 터미널을 열고 다음 명령을 실행하여 리버스 프록시를 테스트합니다:
curl --connect-timeout 2 -m 5 localhost:8080/pricing | grep GitHub

이 명령은 리버스 프록시 서버로 요청을 보내고, 리버스 프록시 서버는 GitHub 웹사이트에서 콘텐츠를 가져와 클라이언트에 반환합니다.

  1. 터미널에 GitHub 가격 정보가 표시되어야 합니다.
Image Description

축하합니다! Node.js 를 사용하여 리버스 프록시를 성공적으로 만들었습니다. 이제 코드를 수정하고 다양한 시나리오를 테스트하여 리버스 프록시를 실험해 볼 수 있습니다.

✨ 솔루션 확인 및 연습

요약

축하합니다! 이 프로젝트를 완료했습니다. LabEx 에서 더 많은 랩을 연습하여 기술을 향상시킬 수 있습니다.