使用Nginx作为代理来避免CORS

时间:2015-02-18 23:23:18

标签: angularjs rest nginx cors

我有这个:

enter image description here

现在我想使用我在那里的nginx服务器来提供我所有的静态文件,并将所有请求代理到api.stuff.com。这可能吗? nginx是最好的工具吗?配置是什么?

谢谢!

1 个答案:

答案 0 :(得分:3)

一种方法是告诉nginx实际代理对api的调用,例如,如果你想调用api.domain.com/users,你可以调用example.com/users,而nginx将代理/users 1}}调用api,因为它不在本地存在,当然这种方法难以维护,因为你需要自己进行映射。

server {
  server_name example.com;
  root /path/to/root;
  location / {
    try_files $uri @proxy_to_api;
  }
  location @proxy_to_api {
    # add whatever proxy settings you want
    proxy_pass http://api.domain.com;
  }
}

另一种方式是告诉nginx告诉你的客户可以调用api服务器,这样你的客户端可以自己访问api.domain.com而无需nginx的帮助

add_header 'Access-Control-Allow-Origin' "api.domain.com";