碰到的问题
今天做了一个feature的admin的接口api/xxv/abc/feature,便于ops在admin上直接管理配置信息。但是我们的域名是 ttt.company.com,所以admin应该访问
http://ttt.company.com/api/xxv/abc/feature
但是admin的域名是admin(-test).company.com,而且admin后台是需要登录的。这样就导致了前端跨域传cookie会有问题。
解决的方案
nginx 做请求转发
目前的做法是在服务端之前做一个反向代理,admin请求同域名的
http://admin-test.company.com/api/abc/feature
然后在nginx层将请求转发到
http://ttt.company.com/api/xxv/abc/feature
对于staging和online不同的环境,将请求转发到不同的server即可。
请求转发
http://admin-test.company.com/api/abc/feature
->
http://ttt.company.com/api/xxv/abc/feature
ngin配置
1 | server { |
1 | server { |
服务端处理跨域请求
在返回的response header中加入允许跨域访问的属性。例如:
Access-Control-Allow-Origin: {允许的域名}