TypeScript:node-http-proxy에서 요청에 따라 서버의 역방향 프록시를 할당하는 방법
8011 단어 Node.jsTypeScript
node-http-proxy의 기본적인 사용 방법은 TypeScript:node-http-proxy 재작성 요청/응답을 위한 역방향 프록시를 만드는 방법에서 설명되었으니 함께 참조하십시오.
본문의 목표
HTTP 요청 경로에 따라 TypeScript를 사용하여 HTTP 요청을 서버 1 및 서버 2에 할당하는 리버스 프록시를 작성할 수 있습니다.
할당 요청을 위한 역방향 에이전트 구현
여기에는 HTTP 요청의 경로에 따라 HTTP 요청을 서버 1과 서버 2에 할당하는 역방향 프록시 설치 예가 나와 있습니다.import http, {IncomingMessage, ServerResponse} from 'http'
import httpProxy from 'http-proxy'
// HTTPサーバ1
http.createServer((req: IncomingMessage, res: ServerResponse): void => {
res.write('HTTP Server 1')
res.end()
}).listen(9001)
// HTTPサーバ2
http.createServer((req: IncomingMessage, res: ServerResponse): void => {
res.write('HTTP Server 2')
res.end()
}).listen(9002)
// プロキシサーバ
const proxy = httpProxy.createProxyServer()
http.createServer((req: IncomingMessage, res: ServerResponse): void => {
// パスに応じて送信先を変える処理
const target = req.url && req.url.startsWith('/server1')
? 'http://127.0.0.1:9001'
: 'http://127.0.0.1:9002'
proxy.web(req, res, {target})
}).listen(8000)
이곳의 요점은 쓰기와 요청에 상응하는 논리를 바탕으로 다음과 같은 이념을 가지고 있다는 것이다.const proxy = httpProxy.createProxyServer()
http.createServer((req: IncomingMessage, res: ServerResponse): void => {
//
// リクエストに応じたロジックを書く場所
//
proxy.web(req, res, options)
}).listen(proxyPortNumber)
처음에 보여준 실시례의 프록시 서버를 가동해 보십시오.
다음 요청을 보내면GET /server1/foo/bar HTTP/1.1
Host: localhost:8000
요청이 서버 1에 할당되고 다음 응답으로 돌아갑니다.HTTP/1.1 200 OK
connection: close
date: Tue, 24 Sep 2019 08:51:38 GMT
transfer-encoding: chunked
HTTP Server 1
이번에는 서버 2에 할당된 요청을 던져 보십시오.GET /foo/bar HTTP/1.1
Host: localhost:8000
예상한 대로 서버 2에서 응답을 반환합니다.HTTP/1.1 200 OK
connection: close
date: Tue, 24 Sep 2019 09:07:24 GMT
transfer-encoding: chunked
HTTP Server 2
참고 문헌
여기에는 HTTP 요청의 경로에 따라 HTTP 요청을 서버 1과 서버 2에 할당하는 역방향 프록시 설치 예가 나와 있습니다.
import http, {IncomingMessage, ServerResponse} from 'http'
import httpProxy from 'http-proxy'
// HTTPサーバ1
http.createServer((req: IncomingMessage, res: ServerResponse): void => {
res.write('HTTP Server 1')
res.end()
}).listen(9001)
// HTTPサーバ2
http.createServer((req: IncomingMessage, res: ServerResponse): void => {
res.write('HTTP Server 2')
res.end()
}).listen(9002)
// プロキシサーバ
const proxy = httpProxy.createProxyServer()
http.createServer((req: IncomingMessage, res: ServerResponse): void => {
// パスに応じて送信先を変える処理
const target = req.url && req.url.startsWith('/server1')
? 'http://127.0.0.1:9001'
: 'http://127.0.0.1:9002'
proxy.web(req, res, {target})
}).listen(8000)
이곳의 요점은 쓰기와 요청에 상응하는 논리를 바탕으로 다음과 같은 이념을 가지고 있다는 것이다.const proxy = httpProxy.createProxyServer()
http.createServer((req: IncomingMessage, res: ServerResponse): void => {
//
// リクエストに応じたロジックを書く場所
//
proxy.web(req, res, options)
}).listen(proxyPortNumber)
처음에 보여준 실시례의 프록시 서버를 가동해 보십시오.다음 요청을 보내면
GET /server1/foo/bar HTTP/1.1
Host: localhost:8000
요청이 서버 1에 할당되고 다음 응답으로 돌아갑니다.HTTP/1.1 200 OK
connection: close
date: Tue, 24 Sep 2019 08:51:38 GMT
transfer-encoding: chunked
HTTP Server 1
이번에는 서버 2에 할당된 요청을 던져 보십시오.GET /foo/bar HTTP/1.1
Host: localhost:8000
예상한 대로 서버 2에서 응답을 반환합니다.HTTP/1.1 200 OK
connection: close
date: Tue, 24 Sep 2019 09:07:24 GMT
transfer-encoding: chunked
HTTP Server 2
참고 문헌
Reference
이 문제에 관하여(TypeScript:node-http-proxy에서 요청에 따라 서버의 역방향 프록시를 할당하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/suin/items/b6c7db2d31d7e9cb5c5c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)