为什么我的负载均衡器后面的两台服务器都响应每个 HTTP 请求?
Why are both servers behind my load balancer responding to every HTTP request?
我有一个 Digital Ocean 负载均衡器。负载均衡器后面是两台服务器。两台服务器都使用 nginx 反向代理将流量转发到节点脚本。
一切正常,但我发现有些奇怪。
假设发送了 POST。负载平衡器将 POST 发送到服务器 1。 Server1 确认 (POST) 并回复。但是 server2 确认(选项)。
我不明白服务器 2 是如何知道对服务器 1 的 POST 请求的。
为什么每次服务器 1 回复 POST 请求时服务器 2 都会回复 OPTIONS?
server2 应该不知道 server1 在做什么?
感谢您的回复。
这就是 CORS 预检请求的工作方式,看看您的浏览器,您应该会看到两个请求,一个 OPTIONS 和一个 POST。
第一个 OPTIONS 请求在这里检查是否允许您的客户端访问您的 API,第二个 POST 是您的 API 调用。
负载平衡器似乎正在运行。它将请求拆分为 POST 和 OPTIONS 是两个单独的请求。由于浏览器安全和 CORS,发送了 OPTIONS 请求。不要将 OPTIONS + POST 请求视为同一个请求。它们是分开的,服务器需要对它们中的每一个做出响应,因此 server2 不知道 POST 请求,只知道 OPTIONS,因此负载平衡器正在正确地完成其工作。
我有一个 Digital Ocean 负载均衡器。负载均衡器后面是两台服务器。两台服务器都使用 nginx 反向代理将流量转发到节点脚本。
一切正常,但我发现有些奇怪。
假设发送了 POST。负载平衡器将 POST 发送到服务器 1。 Server1 确认 (POST) 并回复。但是 server2 确认(选项)。
我不明白服务器 2 是如何知道对服务器 1 的 POST 请求的。
为什么每次服务器 1 回复 POST 请求时服务器 2 都会回复 OPTIONS?
server2 应该不知道 server1 在做什么?
感谢您的回复。
这就是 CORS 预检请求的工作方式,看看您的浏览器,您应该会看到两个请求,一个 OPTIONS 和一个 POST。
第一个 OPTIONS 请求在这里检查是否允许您的客户端访问您的 API,第二个 POST 是您的 API 调用。
负载平衡器似乎正在运行。它将请求拆分为 POST 和 OPTIONS 是两个单独的请求。由于浏览器安全和 CORS,发送了 OPTIONS 请求。不要将 OPTIONS + POST 请求视为同一个请求。它们是分开的,服务器需要对它们中的每一个做出响应,因此 server2 不知道 POST 请求,只知道 OPTIONS,因此负载平衡器正在正确地完成其工作。