schedule_redirect
`schedule_redirect` 指令允许在当前请求上下文中将请求有条件地重定向到指定的服务器。
Redirect server name within the same request
·
server
语法schedule_redirect on | off;
默认值off
上下文server
参数flag
说明
schedule_redirect 指令在 NGINX 配置的 server 上下文中使用,用于在处理传入请求时将其重定向到指定服务器。设置该指令时,它会将服务器标记为需要重定向,从而根据指定条件实现请求的动态处理。这在根据客户端特征或请求属性进行路由时尤其有用,且无需启动新的 HTTP 响应周期。
该指令可以与评估请求参数(例如请求头或查询字符串)的条件检查结合使用。例如,如果存在特定的请求头,且其值满足某些条件,则该指令可以在保留原始请求上下文的情况下自动将请求重定向到不同的服务器。通过维护请求上下文,目标服务器仍然可以访问原始请求头和变量,从而实现无缝切换而不丢失重要的客户端信息。
在实践中,schedule_redirect 与 NGINX 的其他功能(如虚拟服务器和复杂条件)协同工作,为请求路由提供细粒度控制。它在负载均衡或多租户应用中尤其有用,在这些场景中可能需要根据各种条件动态重路由请求。
配置示例
server {
listen 80;
server_name example.com;
# Enable scheduled redirection to the new server
schedule_redirect on;
server_redirect newserver.com;
location / {
# Normal processing code
}
}⚠
确保重定向不会形成循环,这可能导致服务器错误。
⚠
在使用带有 schedule_redirect 的条件检查时,语法错误可能导致意外行为,因此应始终验证为重定向设置的条件。