工作中会有这样的小需求,比如:在xxx.com域下种cookie,然后302跳转到xxx.com域下的某个服务。
本文介绍如何利用Nginx不写一行代码实现上面需求。
可以在conf文件中的location中用
add_header Set-Cookie为response head中增加cookie,让浏览器帮忙种植cookie。
用rewrite指令实现重写url并302跳转,rewrite指令只是简单地重写原url的地址,原url后面的query args会原封不动保留,如果你不需要带上这堆参数可以直接在目标地址串后加上?来去掉这些讨厌的家伙,当然如果你需要原url后的某些参数,也可以利用内置变量$arg_xxx来保留参数。
来个具体实例:假设种植cookie的域为xxx.com,原始url为%3A%2F%2F,希望种植的cookie为tc=a|b|c,302跳转的地址为target,则可以如下:
location =/cookie {
add_header Set-Cookie 'tc=$arg_a|$arg_b|$arg_b; Domain=xxx.com';
rewrite ^ $arg_target? redirect;
access_log off;#关闭access log
}
就这么简单,其它参考资料可以看这里,还有这里。
阅读(4493) | 评论(0) | 转发(0) |