nginx的proxy_pass用字符串,没有问题,一用$变量就出错,是不是不支持变量

已参考了http://www.jb51.net/article/78746.htm 但解决不了,nginx不太熟悉,深层次和基础不了解,只会简单配置
server {
listen 80;
server_name m.a.com m.b.com;
if ( $host ~* ^([^.]+).([^.]+).([^.]+)$ ) {
set $subdomain $1;
set $d2 $2;
set $d3 $3;
set $md2 $1.$2.$3;
}
location / {
root html;
index index.html index.htm;
echo http://$subdomain.$d2.$d3/;#正确取得域名
echo $md2; #正确取的域名
proxy_pass http://$subdomain.$d2.$d3/;#出错
#proxy_pass http://m.a.com/;#可以,但无法满足要求
#proxy_pass http://m.b.com/;#可以,但无法满足要求
}
谢谢
图片说明

直接 用$md2变量应该就行啊
proxy_pass用多个变量容易出问题,用一个变量应该就ok了

 proxy_pass http://$md2/ 

多个变量使用并不存在问题,但是当变量和字符串一起使用时,就要注意了。
例如:

set $para $1
echo($parasaw) //错误用法
echo(${para}saw} //正确用法

你的问题正是这个原因,请修改为类似如下格式:

http://${subdomain}.${d2}.$d3/