postgres_pass

`postgres_pass` 指令用于在 NGINX 的 PostgreSQL 模块中设置用于处理数据库连接的上游服务器名称。

语法postgres_pass upstream;
默认值none
上下文location, if in location
参数1

说明

postgres_pass 指令是 NGINX PostgreSQL 模块的一个重要组成部分,允许 NGINX 将请求转发到指定的 upstream PostgreSQL 服务器。该指令在 locationif in location 上下文中使用,帮助确定哪个后端应处理传入的数据库查询。该指令的参数应为使用 postgres_server 指令定义的 upstream 块的名称,该块包含诸如服务器 IP、数据库名称、用户凭据和连接设置等详细信息。这使得可以根据应用需求将数据库请求无缝路由到正确的数据库服务器。

在配置 postgres_pass 指令时,它可以接受一个变量名作为参数,从而在动态确定上游服务器时提供灵活性。在应用需要根据请求内容或其他运行时因素与不同数据库交互的场景中,这尤其有用。通过将请求处理逻辑与 upstream 定义关联,NGINX 可以高效地管理数据库交互,确保在配置了多个 PostgreSQL 服务器时实现适当的负载分配和故障转移能力。此外,由于该指令在特定上下文中工作,可以将其与 postgres_query 等其他指令结合使用,以创建更复杂的数据库交互模式。

配置示例

location /database {
    postgres_pass backend_db;
    postgres_query SELECT * FROM users WHERE id = $arg_id;
}

确保指定的 upstream block 存在;否则,NGINX 将无法转发请求并会返回错误。

postgres_pass 中使用变量时,确保它们解析为有效的 upstream 名称,以避免运行时错误。

不要将 postgres_pass 放在已定义的上下文之外;它仅在 location 或 location blocks 中有效。

← 返回所有指令