Nginx 代理到 Apache - 解析 HTTP ORIGIN

Nginx 代理到 Apache - 解析 HTTP ORIGIN

我有一个服务器设置,使用 nginx 提供静态内容,并将所有 PHP/动态请求代理到 127.0.0.1 上的 apache

我正在为我的数据库构建 API,我需要根据客户端的来源(域名)而不是 IP 来允许客户端。基于 CORS 规则。

因此,当我从 API 服务器发送 HTTP 标头时header("Access-Control-Allow-Origin: www.client-requesting.myapi.com");,我必须告诉它我允许哪个来源,否则由于同源策略,客户端请求将无法对我的 API 起作用。

问题是我如何知道哪个域名(如果有)调用了我的 API?

应该如何配置 nginx 和 apache 来传递 origin 参数?我尝试使用 google 搜索,但只找到了一些使用 mod_rpaf 的可能解决方案,但我想确定一下。

谢谢!

答案1

据我所知,Same-Origin-Policy 和 CORS 是基于服务器的,而不是基于客户端的,除非你在 上部署了 API-Access-Scripts www.client-requesting.myapi.com

因此,您使用 CORS 允许的不是允许来自何处的 API 请求,而是允许外部脚本从哪个源访问您的 API,例如

  • API 位于 api.my.com (同源)
  • JS 位于 scripts.my.com (Access-Control-Allow-Origin:scripts.my.com)

相关内容