Nginx反向代理:并行尝试多个上游服务器并返回第一个成功的响应

时间:2020-05-02 06:22:37

标签: nginx reverse-proxy nginx-reverse-proxy nginx-upstreams

我已将nginx配置为用于下载软件工件(例如JAR文件)的反向代理,并希望通过将每个请求并行代理到多个上游服务器来加快处理速度。

以下内容当前有效:在本地主机:8080上运行nginx时,我请求localhost:8080/com/foo/bar.jar,nginx在预先配置的列表(例如{{1})中的每个主机上依次检查文件com/foo/bar.jar },repo1.org/com/foo/bar.jar等),然后返回第一个匹配的工件(即第一个返回状态200)。

下面的配置使该文件可以在maven.org和osgeo.org上用于仓库:

repo2.org/com/foo/bar.jar

为了减少延迟,我希望nginx并行运行请求,返回第一个给出200的请求,否则返回错误代码404。

我不确定哪个指令(如果有)可以启用这种行为。我感谢所有提示。

1 个答案:

答案 0 :(得分:0)

根据nginx文档,可以使用nginx plus。 如nginx plus documentation中所述,您要搜索的负载平衡方法是 Last Time 方法。

如果您使用默认的nginx,则可以使用documentation nginx

tldr;

  • 默认负载平衡配置(Round Robin)
  • 最低连接的负载平衡
  • 加权负载平衡
  • 会话持久性