2012-11-19 6 views
1

Nginx를 리버스 프록시 및로드 밸런서로 사용할 의향이 있습니다.Nginx - 역방향 프록시 - 쿠키

2 가지 버전의 응용 프로그램이있는 서버가 2 대 있습니다. I.E. 컴퓨터에 V1이 있으면 그는 서버 1에 가야합니다. V2에 서버 2가있는 경우

일부 코드를 사용하여이 코드로 사용자를 해당 서버로 리디렉션했습니다 (V1이 아닌 경우, 다음 V2입니다.)

if ($args ~* V=1) { 
    proxy_pass http://server1; 
    break; 
} 
proxy_pass http://server2; 

이것은 잘 작동합니다. 하지만 일부 AMF 요청에 문제가 있습니다 (플래시 필요) : $ _GET 매개 변수 또는 헤더를 설정할 수 없습니다. 그래서 쿠키를 사용하려고했지만 아무 것도 작동하지 않는 것 같습니다.

if ($http_cookie ~ 'V=1') { 
    proxy_pass http://server1; 
    break; 
} 
if ($cookie_VER ~ 'V=1'){ 
    proxy_pass http://server1; 
    break; 
} 

나는 또한 $ _GET 매개 변수를 사용하여 리디렉션을 필요로하기 때문에 내가

내가 원하는 일을 할 수있는 방법이 있나요 ... HttpMapModule을 사용할 수 없습니다, 또는 내가 잘못된 길을 갈거야?

답변

1

실제로 두 번째 예제는 내가 올바르게 당신을 이해하지만 거기에 작은 실수가있을 때 작동합니다. 당신이 응용 프로그램 1 V1라는 쿠키를 설정하고 응용 프로그램 2 V2와 같은 다른 쿠키를 설정할 수 있습니다 경우 다음과 같이 해당 코드를 사용할 수 있습니다

if ($http_cookie ~* 'V1') { 
    proxy_pass http://server1; 
    break; 
} 
if ($http_cookie ~* 'V2'){ 
    proxy_pass http://server2; 
    break; 
} 

virtual.conf 구성에 나의 기사의 바닥을 확인하시기 바랍니다 reverse proxy setup에 대한 지침

관련 문제