Nginx小技巧之零代码实现种cookie后302跳转

4710阅读 0评论2015-11-16 scq2099yt
分类:架构设计与优化

        工作中会有这样的小需求,比如:在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

        }

        就这么简单,其它参考资料可以看这里,还有这里

       
上一篇:Shell之常用命令集锦--持续更新
下一篇:打造3百万次请求/秒的高性能服务器集群