×

nginx截取字符串

2021-06-22 16:17:34 Falcon

测试nginx代理转发时,遇到这样一个问题:

请求url:http://1.1.1.1:8080/testimp/abcd/123?a=1&b=2&ip_port=2.2.2.2:1234

要求nginx,使用参数ip_port重新转发,转发的url如下:http://2.2.2.2:1234/abcd/123?a=1&b=2&ip_port=2.2.2.2:1234

如下nginx配置可实现:

location ~^/testimp/(.*)$ {

    proxy_pass $scheme://$arg_ip_port/$1?$query_string;

}

location ~^/testimp/(.*) {

    proxy_pass $scheme://$arg_ip_port/$1?$query_string;

}

配置中使用 .* 表示0个或多个任意字段,用 () 括起来,可以在location中用$1、$2等获取。

本文收录于