nginx의 쿼리 매개변수를 기반으로 하는 프록시 패스

nginx의 쿼리 매개변수를 기반으로 하는 프록시 패스

쿼리 매개변수를 기반으로 프록시 패스를 수행하는 방법이 있나요? 루트 URL 요청을 서버 A에 프록시 전달해야 합니다. 그러나 루트 URL에 특정 쿼리 매개변수가 있는 경우 서버 B에 프록시 전달이 필요합니다. 어떻게 이를 달성할 수 있습니까? 다음은 현재 구성입니다.

    location / {
        proxy_pass  http://xxxxxx;
        proxy_redirect     off;
        proxy_set_header   Host             $host:$server_port;
        proxy_set_header   X-Real-IP        $remote_addr;
        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
        client_max_body_size 10m;
    }

답변1

명령문 내부에 있을 수 없으므로 if명령문과 중간 변수를 사용할 수 있습니다 .proxy_passif

location / {
    set $pp_d example.net;
    if ($arg_tld = com) {
        set $pp_d example.com;
    }
    proxy_pass http://$pp_d;
    proxy_redirect off;
    ...
}

관련 정보