Nginx IP 해시 기록

1180 단어
더 읽 기
     Nginx 의 ip hash 는 ip 주소 의 3 단 만 가 져 와 hash 를 진행 합 니 다.
 
 for (i = 0; i < 3; i++) {
            hash = (hash * 113 + iphp->addr[i]) % 6271;
        }
 
        p = hash % iphp->rrp.peers->number;

 
   그럼 이 세 단락 이 앞의 세 단락 인 걸 어떻게 알았지?
 
   sin = (struct sockaddr_in *) r->connection->sockaddr;
        p = (u_char *) &sin->sin_addr.s_addr;
        iphp->addr[0] = p[0];
        iphp->addr[1] = p[1];
        iphp->addr[2] = p[2];

   네트워크 바이트 순서, 호스트 바이트 순서 라 는 개념 이 있 습 니 다.
   호스트 바이트 순 서 는 cpu 와 os 와 관련 이 있 습 니 다.대단 법 과 소 단 법의 구분 이 있다http://blog.csdn.net/sunboy_2050/article/details/6061528
    네트워크 바이트 순 서 는 대 단 출력 이다.
 
     나 는 nginx 소스 코드 에 세그먼트 log, iphp - > addr [0] 출력 결 과 는 172 이 고 내 가 사용 하 는 ip 은 172. xx. xx. xxx 이다.또 세 명의 동료 가 각각 방문 하 였 는데, 마지막 한 사람 만 다 르 고, 결 과 는 모두 hash 가 한 기계 에 도착 하 였 다.
     그리고 동료 들 이 시험 을 해서 B 류 네트워크 의 마지막 부분 을 1 시험 에서 255 시험 까지 했 고 결국 모두 hash 에서 backend 에 도착 했다.
 
    nginx 의 ip hash 는 일치 성 hash 가 아 닙 니 다.
 

좋은 웹페이지 즐겨찾기