> 웹 프론트엔드 > 프런트엔드 Q&A > nodejs가 https를 프록시하는 방법

nodejs가 https를 프록시하는 방법

PHPz
풀어 주다: 2023-05-28 09:00:37
원래의
1565명이 탐색했습니다.

인터넷의 급속한 발전과 함께 HTTPS 프로토콜의 사용이 점점 더 널리 보급되고 있습니다. HTTPS 프로토콜을 사용해야 하는 일부 프로젝트에서는 Node.js의 프록시 기능이 점점 더 중요해지고 있습니다. 이 기사에서는 Node.js 프록시 HTTPS 프로토콜의 방법을 소개합니다.

먼저 HTTPS 프로토콜과 SSL/TLS가 무엇인지 이해해야 합니다. HTTPS는 TLS/SSL 프로토콜을 기반으로 하는 보안 전송 프로토콜로, 전송 과정에서 보안을 보장하기 위해 SSL/TLS 프로토콜을 사용합니다. 그 중 TLS(Transport Layer Security)는 SSL(Secure Socket Layer)의 업그레이드 버전으로, 데이터 전송의 보안을 효과적으로 보호할 수 있습니다.

Node.js에서는 http-proxy 라이브러리를 사용하여 HTTPS 프로토콜을 프록시할 수 있습니다. http-proxy는 Node.js에서 일반적으로 사용되는 HTTP 프록시 라이브러리로 클라이언트의 요청을 대상 서버로 전달하고 대상 서버의 응답을 클라이언트에 반환할 수 있습니다.

http-proxy 라이브러리 설치:

npm install http-proxy
로그인 후 복사

Proxy HTTP 요청:

const http = require('http');
const httpProxy = require('http-proxy');

const proxy = httpProxy.createProxyServer({});
const server = http.createServer(function (req, res) {
  proxy.web(req, res, {
    target: 'http://localhost:8080'
  });
});

server.listen(8000);
로그인 후 복사

보시다시피 여기에 입력된 URL을 대상 서버(여기서는 localhost:8080)로 전달하기 위해 http 프록시 서버가 생성됩니다.

프록시 HTTPS 요청:

HTTP 요청을 프록시하는 것 외에도 대상 서버에 대한 HTTPS 요청을 프록시해야 하며 프록시 서버를 생성할 때 몇 가지 추가 구성을 추가해야 합니다.

const http = require('http');
const https = require('https');
const httpProxy = require('http-proxy');
const fs = require('fs');

const options = {
  key: fs.readFileSync('server-key.pem'),
  cert: fs.readFileSync('server-cert.pem')
};

const proxy = httpProxy.createProxyServer({});

const server = https.createServer(options, function (req, res) {
  proxy.web(req, res, {
    target: 'https://localhost:8080',
    secure: false
  });
});

server.listen(8000);
로그인 후 복사

여기의 대상 서버는 https://localhost:8080이고 secure를 false로 설정해야 하는데, 이는 SSL 인증서 확인이 수행되지 않음을 의미합니다. 동시에 https.createServer를 사용하여 프록시 서버를 생성하고, 인증서 및 키 매개변수를 추가하고, HTTPS 요청을 프록시할 때 HTTPS 프로토콜을 사용해야 합니다.

요약:

이 글에서는 Node.js가 HTTPS 프로토콜을 프록시하는 방법을 소개합니다. 프록시를 하려면 http-proxy 라이브러리를 사용해야 합니다. 동시에 HTTPS 요청을 프록시할 때 secure를 false로 설정하고, https.createServer를 사용하여 프록시 서버를 생성하고, 인증서 및 키 매개변수를 추가해야 한다는 점에 유의하세요.

실제 애플리케이션에서 Node.js 프록시는 로드 밸런싱, 인터페이스 전달, 데이터 캡처 및 기타 기능을 구현하는 데 도움이 될 수 있습니다. Node.js 프록시를 아직 연습하지 않았다면 자신의 프로젝트에서 사용해 볼 수 있습니다.

위 내용은 nodejs가 https를 프록시하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿