nginx配置根据url的参数值进行转发
Posted EchoBao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx配置根据url的参数值进行转发相关的知识,希望对你有一定的参考价值。
server { listen 8081; location / { set $tag ""; set $cs "/index/test/test"; proxy_set_header Host $http_host; proxy_set_header X-Forwarded-Host $http_host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; client_max_body_size 5m;
//获取code的值,赋值给tag if ($query_string ~ "code=(d+)"){ set $tag "$1"; }
//判断tag的值 # if ($tag ~ "200")
if ($tag ~ "200"){
proxy_pass http://xxx:1234$cs;
}
proxy_pass http://xxxx; } }
访问的话类似:http://xxx:1234/?code=200&name=test,判断code的值是200的话,转发到http://xxx:1234$cs地址,proxy_pass后面只能跟ip+port,所以定义了一个cs变量放置模块,controller和方法的字符串.
还有个bug, $tag ~ "200"这样写的话,code传入2000000照样转发,所以应该在后面加一个$.
暂时只会这么多了...谢谢
以上是关于nginx配置根据url的参数值进行转发的主要内容,如果未能解决你的问题,请参考以下文章