layout: post title: NodeJS로 Reverse Proxy 구현하기 categories: [dev] tags:


왜 직접 구현하지?

API Gateway를 NodeJS로 구현하려고 한다. NodeJS에서 찾아보니 express-gateway란 라이브러리가 가장 완성도 있었다. 그러나 Document에 정보가 부족하고 업데이트가 안된지 오래된 것으로 확인됬다. ~Oh.. sit!~ 그래서 직접만들기로 맘을 먹었다. 그리고 일단 Reverse Proxy 기능이 필요하기에 찾아보기로 한다.

사용되는 라이브러리

웹 서버를 위한 express와 프록시를 위한 http-proxy-middleware를 이용하기로 했다. 두 라이브러리 전부 사용자가 많고 최근에도 계속 업데이트 중이다. 이제 기본적인 기능은 갖춰진 상태로 바로 코드를 작성할 수 있다.

API

createProxyMiddleware([context,] config)

const { createProxyMiddleware } = require("http-proxy-middleware");

const apiProxy = createProxyMiddleware("/api", {
  target: "<http://www.example.org>",
});

createProxyMiddleware(uri [, config])

// shorthand syntax for the example above:
const apiProxy = createProxyMiddleware("<http://www.example.org/api>");

위 함수로 Middleware를 만들고 Router에 등록만 시키면 된다.

프록시 구현

localhost에서 네이버 뉴스 페이지를 띄우려 한다. 네이버 뉴스 기본 사이트의 링크는 https://news.naver.com/ 이다.