Proxypassを使用したnginx位置正規表現

Proxypassを使用したnginx位置正規表現

私はnginxに初めて接する初心者なので、明らかな内容を尋ねる場合は予めご了承ください。

私が望むのは、次の形式で私のnginxサーバーに到着する別のサーバーに要求をプロキシすることです。

http://mysite/locationA/results?-variablerandomtexthere-test=true

これを試す方法は次のとおりです。

  location ~* ^/locationA/results\?(.*)test=true$ {
allow 127.0.0.1;
deny all ;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_pass   http://myserver.org/ ;
proxy_redirect off;
}

上記の例はうまくいかず、インターネット検索ではProxy_passで正規表現を使用できないことがわかりました。

これを達成する他の方法はありますか?

ベストアンサー1

私は以下を実行してこれを達成する方法を見つけました。

 location / {

 if ($arg_test ~ "true") {
    set $gotoserver 1;
    }
if ($uri ~* "(queries|results)") {
   set $gotoserver  "${gotoserver}1" ;
    }
if ($gotoserver = 11) {
proxy_pass http://myserver.org ;
    }
}

おすすめ記事