2016-08-23 2 views
9

로드 밸런서 역할을하도록 nginx를 구성 할 수 있다는 것을 알고 있지만 프록시간에로드 균형을 조정할 수 있는지 궁금합니다. 로컬 호스트에서 여러 개의 프록시가 실행 중이며 nginx를 사용하여 프록시간에 순환 할 수 있도록 단일 연결 지점을 제공하고자한다고 가정 해 보겠습니다. 나는 게시물 here, nginx 대신 HAProxy를 사용하여 비슷한 것을 달성하기 위해 노력하고 있습니다. 나는이 같은 컬 요청을 보낼 때, 그러나프록시 용로드 밸런서 역할을하도록 nginx를 구성하는 방법은 무엇입니까?

events { } 

http { 
    upstream proxies { 
     server localhost:9998; 
     server localhost:9999; 
     server localhost:10000; 
    } 
    server { 
     listen 8080; 

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

: 나는 nginx.conf 다음이

curl http://icanhazip.com -x localhost:8080 

그것은 URL을 무시하고 내가 가진 경우 내가 기대하는 것과 유사한 응답을 얻을 UPS를 치료하기 nginx를 말할 수있는 몇 가지 옵션이 있어야하기 때문에 내가 정말이 일을 기대하지 않았다 물론

curl localhost:9999 

: 직접과 같이 프록시 서버 중 하나에 요청을 전송 tream 서버를 프록시로 사용합니다. 그러나 온라인 검색 후이를 수행하는 방법을 찾지 못했습니다.

+0

나는 당신의 문제가 무엇인지, 그리고 당신은 프록시라고 부르는 지 모르겠다. 여기 nginx로드 밸런스는 역방향 프록시이기도하다. 문제가 호스트 헤더가 없다는 사실입니까? the_proxy_pass 명령 다음에'proxy_set_header Host $ host;'를 추가하십시오. – regilero

+0

내가 설정 한 여러 프록시 사이를 돌리기 위해 nginx를 사용하려고합니다. 즉, 프록시로 nginx 호스트 및 포트 (예 : localhost : 8080)에 연결할 수있게하려면 프록시가 설정되어 프록시 사이를 순환합니다. –

+0

확인을 시도 했습니까? 호스트 물건? 역방향 프록시는 거의 투명하므로 nobody는 프록시 된 백엔드가 최종 서버인지 또는 일부 프록시인지는 알고 있지만 프록시에 실제로 전달하는 도메인을 알아야합니다. – regilero

답변

1

당신은 앞으로 프록시로 haproxy 포스트 haproxy AKT에서 볼 수

옵션 HTTP_PROXY이 옵션은 수동 https://cbonte.github.io/haproxy-dconv/1.6/configuration.html#4-option%20http_proxy

에 설명되어 무엇을 의미

가끔 발생합니다. 사람들은 순수한 HTTP 프록시가 필요합니다. 은 캐싱없이 기본 프록시 요청을 인식하지 않으며 어떠한 고급 기능도 제공하지 않습니다. 기능. 이 경우 "옵션 http_proxy"가 설정된 HAProxy 인스턴스 을 설정하는 것이 좋습니다. 이 모드에서는 서버가 선언되지 않고 이고 "http : //"스키마 뒤의 URL 인 에있는 IP 주소와 포트로 연결이 전달됩니다.

호스트 주소 확인이 수행되지 않으므로 순수 IP 주소가 전달 된 경우에만 작동합니다. 이 옵션의 사용 범위는 이 아니기 때문에 정확히 이 필요하다는 것을 알고있는 전문가 만 사용해야합니다. 이것은 HTTP 터널 모드와 호환되지 않습니다.

지금까지 nginx에는이 기능이 없습니다.

비슷한 질문입니다. https://superuser.com/questions/604352/nginx-as-forward-proxy-for-https

링크 게시물에 설명 된대로 왜 haproxy를 사용할 수 없습니까?

+0

HaProxy에서는 파일을 구성에 포함 할 수 없습니다. 가져온 proxies.list 파일을 관리하고 싶습니다. Nginx에 포함되어 있지만 http 프록시에 요청을 전달할 수 없습니다. – chovy

0

를 사용하여 서버간에 분산되어 당신은 가중 또는

다른 하나 프록시에 대한로드 밸런싱 규칙을 구성해야

max_fails = 1 같은 fail_timeout = 10s;

 Can you put max_fails =1 and fail_timeout=10s; after the proxies 

    server localhost:9998 max_fails =1 and fail_timeout=10s; 
    server localhost:9999 max_fails =1 and fail_timeout=10s; 
    server localhost:10000 max_fails =1 and fail_timeout=10s; 


    change location /{ 
     to location @proxy{ 
+0

여기서 전체 예제를 제공 할 수 있습니까? – chovy

관련 문제