nginx的proxy_pass如何使用变量参数

server {
listen 80;
server_name .m.abc.com;
if ( $host ~
^([^.]+).([^.]+).([^.]+).([^.]+)$ ) {
set $subdomain $1;
set $mD2 $2.$3.$4;
#set $d2 $2;
#set $d3 $3;
#set $d4 $4;
#set $mD2 http://$2.$3.$4/;
}
location / {
rewrite ^/$ /index.jsp?cdm=$subdomain last;
proxy_pass http://m.abc.com/; #可以正常访问
#proxy_pass http://$mD2/; # 502 bad gateway
#proxy_pass http://$d2.abc.com/;# 502 bad gateway
#proxy_pass http://${d2}.${d3}.${d4}/;# 502 bad gateway
#proxy_pass $mD2/;# 502 bad gateway
}
}
请问如何用 变量“$d2 $d3 $d4” 代替 http://m.abc.com/

更正 server_name *.m.abc.com;

您好!

location ~* /wap/(\d+)/(.+)
{
proxy_pass http://mx$1.test.com:6601/$2?$args;
}

注意上面最后的?$args,表明把原始url最后的get参数也给代理到后台
如果在proxy_pass中使用了变量(不管是主机名变量$1或后面的$2变量),则必须得加这段代码

proxy_pass http://$mD2/?$args; 或 proxy_pass http://$d2.$d3.$d4/?$args;

但是没有用 还是 502错误

请明示 ,谢谢!

使用自定义变量:
set $2 "*.m.abc.com"

参考:http://www.jb51.net/article/78746.htm