mirror

NGINX 中的 `mirror` 指令用于为指定的上游服务器创建重复请求,实际效果是将传入请求镜像到后端,而不影响原始响应。 — NGINX HTTP Core

mirror
httpserverlocation
语法mirror ;
默认值none
上下文http, server, location
模块NGINX HTTP Core
参数1

说明

`mirror` 指令允许服务器向后端服务器发送原始请求的重复请求。这对于日志记录、性能监控或测试等用途很有用,同时不会影响原始用户体验。当此指令在 HTTP 上下文 (http, server, or location) 中使用时,它指定将处理镜像请求的上游服务器的 URL。 在实际使用中,当接收到请求时,NGINX 按常规处理该请求,然后并行地将该请求的精确副本发送到在 `mirror` 指令中定义的配置上游服务器。这意味着主请求的响应和镜像请求的响应可以独立运行。指定正确的上游服务器对于确保镜像请求按预期工作至关重要。 需要注意的一个重要方面是,`mirror` 指令不会等待镜像请求的响应;因此,上游服务器对镜像请求的任何反馈不会影响用户的原始请求。该特性会带来性能方面的考虑,因为镜像请求会有效地将流量加倍到指定的后端服务器。

配置示例

location /example {
    mirror /backend;
}

location = /backend {
    internal;
    proxy_pass http://backend-server;
}

镜像请求的目标必须正确指定;URL 不正确会导致镜像过程出现问题。

请注意,镜像请求不会影响原始响应;如果后端是有状态的,请谨慎。