请求如何同时来自EC2实例和客户端机器?



例如,一个请求的请求头是'User-Agent: Mozilla/5.0…AppleWebKit/……Chrome/……和请求头'Origin: http://xx.xx.xxx.xxx',其中前者是客户端浏览器的用户代理,后者是EC2实例的ip地址。我通过chrome开发工具检索这些信息,当我加载页面时,请求出现。

了解更多上下文,前端服务器是EC2上的守护进程(当站点加载时,向nginx代理发出请求,然后向前端服务器发出请求)。然后在前端代码中对搜索服务器(meilisearch)进行api调用,这也是在EC2上运行的守护进程。

这就是它变得棘手的地方,因为如果请求是从客户端的机器发出的(因为UA标头),为什么ip地址与客户端的机器不相同?如果这个问题听起来很蠢,我很抱歉,但还是要提前感谢你的真知灼见。

您误解了Origin标头的含义。

当包含在HTTP请求中时,Origin报头字段表示"导致"的根源发出请求的用户代理。

因此,它不是"客户端机器"的IP地址,而是提供导致发出请求的页面的主机。你所看到的正是你所期望的。

相关内容