2017-05-23 8 views
0

로드 밸런서 (Nginx 또는 다른 것으로 중요하지 않음)가 있으며 IP 기반의 시스템으로 라우트하려고한다고 가정 해보십시오. 구성시 IP를 알 수 없습니다. 예를 들어, 머신 m1과 m2 앞에로드 밸런서가 있습니다. 요청은 IP10에서오고 m1로 라우팅되고 IP10의 모든 후속 요청도 m1로 라우팅됩니다. 또 다른 요청은 IP11에서 이루어지며 m2로 라우트되며 IP11의 모든 후속 요청도 m2로 라우트됩니다.역방향 프록시 - IP 기반의 동일한 시스템에 대한 경로

가능하면 어떻게 될까요?

답변

1

귀하의 설명에서 모든 후속 요청이 동일한 경로를 따르는 한 특정 IP의 첫 번째 요청이 라우팅되는 특정 요구 사항이 없음을 이해합니다. 그게 당신이 수행 할 작업이 세션 고정 또는 지속적인 세션라는로드 밸런싱 방법 인 경우가 있다면

.

의 nginx에서 다음과 같은 구성으로 그것을 얻을 수 있습니다

다음
http { 
    upstream mybackend { 
     ip_hash; 
     server m1.ltd; 
     server m2.ltd; 
    } 

    server { 
     listen 80; 

     location/{ 
      proxy_pass http://mybackend; 
     } 
    } 
} 

특정 nginx docs에 대한 링크입니다.

+0

감사합니다. 서버 당 클라이언트 수를 제한 할 수 있습니까? 예를 들어 세 개의 서버가 있고로드 밸런서가 16 번째 IP를 볼 때 다섯 개의 클라이언트 IP가 허용되면 IP는 실패합니다. 이것은 또한 시간 초과 후 "만료되는"클라이언트 IP를 필요로합니다. – Johnny

+1

설명하는 기능은 [nginx +] (https://www.nginx.com/resources/admin-guide/load-balancer/#maxconns) (상업용)의 일부입니다. 일반적으로 백엔드가 처리 할 수있는 요청이나 연결 수를 파악하고 실패하지 않도록 적절하게 크기를 조정하여 유사한 기능을 얻을 수 있습니다. 또한 자원이 다른 서버가있는 경우 weight 메소드를 사용할 수 있습니다. – zochamx