私は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 ;
}
}