Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4370698
  • 博文数量: 291
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 7924
  • 用 户 组: 普通用户
  • 注册时间: 2016-07-06 14:28
  • 认证徽章:
个人简介

阿里巴巴是个快乐的青年

文章分类

全部博文(291)

文章存档

2018年(21)

2017年(4)

2016年(5)

2015年(17)

2014年(68)

2013年(174)

2012年(2)

分类: 架构设计与优化

2015-11-16 16:19:39

        工作中会有这样的小需求,比如:在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为http://test.xxx.com/cookie?a=1&b=2&c=3&target=http%3A%2F%2Fwww.taobao.com,希望种植的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

        }

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

       
阅读(2867) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
评论热议
请登录后评论。

登录 注册