scgi_pass
`scgi_pass` 指令将请求转发到 SCGI 服务器。 — NGINX HTTP Core
scgi_pass
locationif in location
语法scgi_pass URL;
默认值none
上下文location, if in location
模块NGINX HTTP Core
参数1
说明
`scgi_pass` 指令在 NGINX 中用于将请求传递到 SCGI(Simple Common Gateway Interface,简单通用网关接口)后端。它通常用于将 HTTP 请求路由到通过 SCGI 协议通信的 Web 应用。当请求匹配定义了 `scgi_pass` 的 `location` 块时,NGINX 会创建一个 SCGI 请求,并将传入的 HTTP 数据转发到指定的 SCGI 服务器。 使用 `scgi_pass` 可以有多种配置。该指令的参数是 SCGI 服务器的地址,可以指定为 IP 地址和端口(例如 `127.0.0.1:4000`)或 Unix 套接字地址(例如 `unix:/var/run/scgi.sock`)。随后 NGINX 会根据目标服务器的要求构造 SCGI 请求,发送必要的头部并保持连接,直到收到响应或请求超时。 `scgi_pass` 可以放在 `location` 块内,甚至放在这些 `location` 块内的条件 `if` 块中,从而根据 URI 或其他条件灵活地路由请求。通常也会将它与其他指令结合使用以获得附加功能,例如缓冲或请求超时控制。
配置示例
location /app {
scgi_pass 127.0.0.1:4000;
include scgi_params;
}⚠
确保 SCGI 服务器正在运行,并且可从 NGINX 访问。
⚠
使用错误的协议(例如 HTTP 而不是 SCGI)可能导致通信错误。
⚠
如果使用 Unix sockets,请确保 socket 权限允许 NGINX 用户访问它。