nginx的proxy_pass如何使用变量参数 20C

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/

qq_35331140
是星星呀 我也遇到了这个问题,不知道怎么解决。。。
一年多之前 回复

4个回答

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

cn111
cn111 可是应该 set $d2 "m.abc.com"; 但是如果域名是 *.m.c.com,就要把 域名赋给变量 if ( $host ~ ^([^.]+).([^.]+).([^.]+).([^.]+)$ ) { set $subdomain $1; set $mD2 $2.$3.$4; } 最后 proxy_pass $mD2
大约 2 年之前 回复

更正 server_name *.m.abc.com;

cn111
cn111 您好! 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错误 请明示 ,谢谢!
大约 2 年之前 回复

您好!

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错误

请明示 ,谢谢!

ccgx11
甜瓜欣 你好,请问最后是怎么解决的呢?
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐