Nginx如何配置根据cookie或header自定义字段进行跳转

在做这个之前是我遇到的一个问题

,百度搜索了大量文章都是断断续续,没有完整的思路或者是讲解,以下是我如何解决的:

一、根据cookie中的值来判断跳转

 $http_cookie这个关键词是读取cookie的全部信息,那么我们是需要判断cookie中包含的某个字段的值,比如我设置openid=5,我该如何获取那么,我们可以通过$cookie_openid,其中openid是你设置的,这里需要加前缀cookie就可以获取了。

在location中设置,注意此跳转支持post传输。

location / {
#设置一个变量来接收跳转的地址
set $lodurl "http://xxx.xx.xx/xx"; #这里设置了默认地址
#注意if和(之间要又一个空格,否则无法执行,会出错
if ($cookie_openid = "5") 
{
    set $lodurl "http://www.www.com/xx";#需要跳转的地址
}
proxy_pass $lodurl;
#还有其他常用参数,可以根据自己的需要进行设置,这里就不一一说了
}

二、其实header和cookie设置是一样,只是获取字段的值不一样而已

 如何获取hreader里字段的值,可以这样获取:$http_xx其中xx是你自定义的header的字段。那么如何在location中设置,可以参考一种得设置。

作者qq:403648571

你可能感兴趣的:(shell,nginx,linux)