proxy_pass

`proxy_pass` 指令将客户端请求转发到指定的代理服务器。 — NGINX HTTP Core

proxy_pass
locationif in locationlimit_except
语法proxy_pass URL;
默认值none
上下文location, if in location, limit_except
模块NGINX HTTP Core
参数1

说明

NGINX 中的 `proxy_pass` 指令用于将请求传递给代理服务器进行处理。它允许服务器将针对特定 URI 或 location 的流量重定向到另一台服务器,该服务器可以是配置中定义的上游服务器 或通过地址指定的外部服务器。 配置后,如果客户端发起的请求匹配包含 `proxy_pass` 指令的 location 块,NGINX 将向上游服务器发起请求。它通过获取原始请求并将其转发到指令中定义的服务器 URI 来完成此操作。`proxy_pass` 指令中提供的 URL 可以指定为协议和主机(例如 `http://example.com`)或完整的 URL。还可以提供选项来管理在代理过程中如何处理请求头和请求体。 `proxy_pass` 指令可以通过在多台服务器之间分配流量来显著提升 Web 应用的性能,从而实现负载均衡和容错。不过,必须正确配置附加指令(例如 `proxy_set_header`)以维护请求头的完整性,并启用诸如 WebSocket 支持和 HTTP/2 隧道等功能。

配置示例

location /api/ {
    proxy_pass http://backend_server;
}

确保上游服务器可达,因为连接失败会导致 502 Bad Gateway 错误。

如果 URL 未以 / 结尾,可能会意外附加所请求的 URI;因此需要谨慎管理路径。

缓存和头部转发配置错误可能导致客户端出现意外行为。