소개:
이 서버 오류 질문을 읽어보십시오.백엔드에서 301의 nginx 로드 밸런싱 문제. 내 문제와 다소 비슷하지만 대답이 작동하지 않습니다. Nginx가 내 업스트림의 "이름"으로 리디렉션 중입니다. 요점은 이것이 OpenShift 관련 질문이 아니라는 것입니다.
구성:
OPENSHIFT_DIY_IP 127.8.143.129를 사용하여 하나의 DIY 비스케일 기어에 nginx 1.4.4를 올바르게 설정했습니다(소스에서 빌드, 제대로 작동하는지 확인[1]). A라고 부르겠습니다. 해당 장비에 하나의 Tornado 서버를 설치하고 다른 비스케일 장비에 또 다른 Tornado 서버를 설치했습니다. (기어 = NAT 뒤의 동일한 LAN에 있는 red hat linux box, 단순화) 둘 다 다음을 기반으로 하는 간단한 hello-world 앱입니다.openshift-hellotornado 저장소. 이것을 B라고 부르겠습니다. B의 DNS 주소는 pam-picaxe.rhcloud.com입니다. A의 DNS 주소는 main-picaxe.rhcloud.com입니다.
main-picaxe.rhcloud.com을 탐색할 때마다 브라우저는 302 Found with와 함께 리디렉션됩니다.
Location: https://frontends/app.
여기서 "frontends"는 nginx 구성의 업스트림 이름입니다. 기이한.
[1]: nginx가 기어 A에서만 작동한다는 증거: 구성 파일에서 20행을 주석 처리하고 21행의 주석 처리를 제거하면(게시물 끝 부분에 있는 페이스트빈 링크) 모든 것이 잘 작동하고 "Hello world!"가 표시됩니다. 하지만 라인 20과 같은 경우가 있을 때마다(기어 B가 아닌 기어 A의 DNS 주소인 경우에도).
해결책을 시도했습니다.
나는 이것을 구성하는 데 지쳐서 반나절을 보냈습니다. 내 위치 블록을 다음으로 대체하여 앞서 언급한 serverfault 게시물에 제공된 솔루션을 시도했습니다.
위치 / { Proxy_pass http://frontends; Proxy_set_header 호스트 $host; Proxy_redirect http://frontends http://$host:$server_port/; 프록시 리디렉션 http://frontends:8080/ http://$host:$server_port/; }
이로 인해 리디렉션 루프가 발생합니다. /에 대한 첫 번째 요청부터 시작하는 샘플 로그 출력:
AAA.BBB.CCC.DDD - - [22/Dec/2013:14:53:53 -0500] "GET / HTTP/1.1" 302 331 "-" "Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.31 ( Gecko와 같은 KHTML) Chrome/26.0.1410.63 Safari/537.31" "WWW.XXX.YYY.ZZZ" AAA.BBB.CCC.DDD - - [22/Dec/2013:14:53:55 -0500] "GET /app HTTP/1.1" 302 331 "-" "Mozilla/5.0(X11; Linux i686) AppleWebKit/537.31 (Gecko와 같은 KHTML) Chrome/26.0.1410.63 Safari/537.31" "WWW.XXX.YYY.ZZZ" AAA.BBB.CCC.DDD - - [22/Dec/2013:14:53:55 -0500] "GET /app HTTP/1.1" 302 331 "-" "Mozilla/5.0(X11; Linux i686) AppleWebKit/537.31 (Gecko와 같은 KHTML) Chrome/26.0.1410.63 Safari/537.31" "WWW.XXX.YYY.ZZZ" AAA.BBB.CCC.DDD - - [22/Dec/2013:14:53:55 -0500] "GET /app HTTP/1.1" 302 331 "-" "Mozilla/5.0(X11; Linux i686) AppleWebKit/537.31 (Gecko와 같은 KHTML) Chrome/26.0.1410.63 Safari/537.31" "WWW.XXX.YYY.ZZZ" AAA.BBB.CCC.DDD - - [22/Dec/2013:14:53:56 -0500] "GET /app HTTP/1.1" 302 331 "-" "Mozilla/5.0(X11; Linux i686) AppleWebKit/537.31 (Gecko와 같은 KHTML) Chrome/26.0.1410.63 Safari/537.31" "WWW.XXX.YYY.ZZZ"
nginx를 사용하여 정상적인 로드 밸런싱 생활을 할 수 있는 방법에 대한 아이디어가 있습니까?
nginx.conf 링크:http://pastebin.com/91CMftSc