2012-08-16 2 views
1

http-proxy module을 확인했습니다. 기본 포트가 동일한 두 개의 서로 다른 호스트 사이의 이동을 기본으로 이해했습니다. 그래서 여기에 같은 호스트를 사용하면서 두 개의 다른 포트 사이를 이동하는 것이 가능하다는 질문이 있습니다 (예를 들어 두 호스트 모두 IP 주소입니다).http-proxy로로드 밸런싱

+0

로드 균형 조정에 대한 하나의 질문이라고 생각하지 않습니까? – rdrey

답변

2

원하는만큼 많은 호스트에서 균형을 유지할 수 있습니다. http-proxy는 스크립트 가능합니다.

var servers = [ 
    {host:'app1.site.com', port:9000}, 
    {host:'app2.site.com', port:9010}, 
    {host:'app3.site.com', port:9020} 
]; 
var i = 0; 

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

httpProxy.createServer(function(req, res, proxy) { 
    proxy.proxyRequest(req, res, servers[i = (i + 1) % 3]); // rotate 
}).listen(80); 

균형 조정과 관련된 논리는 귀하에게 달려 있습니다. 위의 예에서는 라운드 로빈 만 수행합니다.

또한 호스트를 주기적으로 '테스트'하여 호스트가 여전히 사용 가능한지 확인하고 사용하지 않는 경우 사용하지 않도록 설정합니다 (예 : OPTIONS 요청 보내기).