1

是否可以将 nginx 配置为查询服务(不是 DNS)以根据当前请求的 URI 确定 proxy_pass 目标?

例如:

  1. 客户端请求http://somesite.tld/somepage,需要代理。
  2. nginx 连接到解析服务并发送用于确定代理目的地的请求 URI。
  3. 解析服务响应,提供目的地的主机名。
  4. 客户端的请求被重定向到给定的目的地。

如果这不受支持,有什么好方法可以做到这一点?我可以将 proxy_pass 传递给解析器+代理,但更愿意让 nginx 直接处理到目的地的代理。请注意,需要查询解析器,因为每个 URI 的目标可能会更改。

谢谢 :-)

4

3 回答 3

1

我看不到实现您所要求的方法。

但是,如果您只是想将请求参数映射到主机名(并且它们不会发生太大变化),那么您可能可以使用 Nginx 的map 模块

您也许还可以使用mod_lua做一些事情,但它可能会非常骇人听闻。

于 2012-06-24T06:00:16.607 回答
0

盒子完全支持这一点。在 *proxy_pass* 指令中使用域名。例如:

proxy_pass http://yourproxy:port;

之后,您可以根据需要配置 DNS 并更改您的代理地址。

于 2012-06-21T04:36:33.667 回答
0

@Pavel 你有机会按照描述配置 nginx 吗?我有一个类似的任务:在代理请求之前,必须定义哪个服务器可以处理它。到目前为止,我只看到两种方法可以做到这一点:要么为 nginx 实现一个自定义模块(查看如何完成“负载平衡”的来源),要么使用应用程序服务器并组合一个将执行转发的应用程序的请求。

后一种方法似乎更简单,但我不确定性能。

谢谢。

于 2013-01-15T15:41:05.660 回答