Node.js는 효율적이고 가벼운 웹 애플리케이션 개발을 가능하게 하는 오픈 소스 크로스 플랫폼 JavaScript 런타임 환경입니다. 네트워크 애플리케이션을 개발하는 과정에서 역방향 프록시, 로드 밸런싱 등 전달이 필요한 상황에 자주 직면하게 됩니다. 이 기사에서는 Node.js에서 전달을 구성하는 방법을 소개합니다.
1. 역방향 프록시
역방향 프록시는 일반적인 서버 측 애플리케이션 시나리오로 요청을 다른 서버로 전달하여 처리하는 기술입니다. 예를 들어, 로드 밸런싱을 달성하기 위해 역방향 프록시를 통해 클라이언트 요청을 다른 서버로 전달할 수 있습니다. Node.js에서는 http-proxy 모듈을 사용하여 역방향 프록시를 구현할 수 있습니다.
http-proxy 모듈을 사용하기 전에 먼저 설치해야 합니다. npm 명령을 사용하여 설치할 수 있습니다:
npm install http-proxy --save
다음으로 역방향 프록시 코드 작성을 시작할 수 있습니다. 다음은 클라이언트 요청을 로컬 localhost:3000 서버로 전달하는 간단한 역방향 프록시 예입니다.
const httpProxy = require('http-proxy'); const proxy = httpProxy.createProxyServer({}); require('http').createServer((req, res) => { proxy.web(req, res, { target: 'http://localhost:3000' }); }).listen(80);
위 코드에서는 먼저 http-proxy 인스턴스를 만든 다음 Node.js를 사용합니다. 내장된 http 모듈은 서버이며 포트 80에서 수신 대기합니다. 클라이언트 요청이 도착하면 이를 Proxy.web() 메서드를 통해 로컬 localhost:3000 서버로 전달합니다.
역방향 프록시 코드를 작성한 후 다음 명령을 통해 실행할 수 있습니다.
node app.js
모든 것이 정상이면 브라우저를 통해 http://localhost에 액세스하여 역방향에 액세스할 수 있습니다. 프록시 코드를 프록시 서버로 보냅니다.
2. 로드 밸런싱
로드 밸런싱은 일반적인 서버 애플리케이션 시나리오로, 서버 로드 밸런싱을 위해 클라이언트 요청을 다른 서버로 분산시키는 기술입니다. Node.js는 haproxy 및 Nginx와 같은 타사 도구 사용을 포함하여 로드 밸런싱을 달성하는 다양한 방법을 제공하거나 이를 달성하기 위해 자체 코드를 작성할 수 있습니다.
라운드 로빈 로드 밸런싱 전략은 요청을 여러 서버에 균등하게 분배하는 간단한 로드 밸런싱 전략입니다. Node.js에서는 라운드 로빈 로드 밸런싱 전략과 결합된 클러스터 모듈을 사용하여 로드 밸런싱을 달성할 수 있습니다.
다음은 간단한 로드 밸런싱 샘플 코드입니다.
const cluster = require('cluster'); const http = require('http'); const numCPUs = require('os').cpus().length; if (cluster.isMaster) { console.log(`主进程 ${process.pid} 正在运行`); // Fork workers. for (let i = 0; i < numCPUs; i++) { cluster.fork(); } cluster.on('exit', (worker, code, signal) => { console.log(`工作进程 ${worker.process.pid} 已退出`); }); } else { http.createServer((req, res) => { res.writeHead(200); res.end(`工作进程 ${process.pid} 返回 Hello World!`); }).listen(8000); console.log(`工作进程 ${process.pid} 已启动`); }
위 코드에서는 먼저 클러스터 모듈을 사용하여 현재 프로세스가 메인 프로세스인지 확인합니다. 메인 프로세스인 경우, Cluster.fork() 메소드를 사용하여 여러 작업자 프로세스를 생성합니다. 각 작업자 프로세스는 포트 8000에서 수신 대기하고 "Hello World!" 문자열을 반환합니다. 요청이 도착하면 기본 프로세스는 요청을 다른 작업자 프로세스에 배포합니다.
로드 밸런싱 코드를 작성한 후 다음 명령을 통해 실행할 수 있습니다.
node app.js
모든 것이 정상이면 http://localhost에 액세스하여 브라우저를 통해 로드에 액세스할 수 있습니다. :8000 서버 균형을 맞춥니다.
요약
이 글에서는 역방향 프록시 및 로드 밸런싱을 포함하여 Node.js에서 전달을 구성하는 방법을 소개합니다. 역방향 프록시는 클라이언트 요청을 다른 서버로 전달할 수 있으며, 로드 균형 조정은 클라이언트 요청을 다른 작업 프로세스에 할당하여 서버 성능을 최적화할 수 있습니다. Node.js는 이러한 기능을 구현하기 위한 많은 모듈과 도구를 제공하며 개발자는 자신의 필요에 따라 적합한 솔루션을 선택할 수 있습니다.
위 내용은 nodejs 구성 전달의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!