Nginx IP 해시 기록
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 가 아 닙 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.