Redirect 使用网络重定向的nginx负载平衡

Redirect 使用网络重定向的nginx负载平衡,redirect,nginx,load-balancing,Redirect,Nginx,Load Balancing,我正在寻找一种使用nginx发送请求的解决方案,以优化主服务器的网络连接(然后它应该将下载请求发送到其他一些服务器) 以下是用于执行负载平衡的nginx示例的摘录: upstream mystream { server ip1:port1; server ip2:port2; } server { listen myport; location / { proxy_pass http://mystream; } } 本示例中的

我正在寻找一种使用nginx发送请求的解决方案,以优化主服务器的网络连接(然后它应该将下载请求发送到其他一些服务器)

以下是用于执行负载平衡的nginx示例的摘录:

upstream mystream {
    server ip1:port1;
    server ip2:port2;
}

server {
    listen       myport;
    location /  {
      proxy_pass http://mystream;
    }
}
本示例中的问题是,主服务器看起来充当后台服务器的代理,但没有重定向客户端。(它提供文件本身,然后不保存bandwith)

有没有一种方法可以配置nginx将下载请求发送到后台服务器而不充当代理。(保留URL可能很好,但如果需要,我愿意重写它)


谢谢

这就是反向代理的工作原理:

反向代理是一种代理服务器,它代表客户机从一个或多个服务器检索资源。然后将这些资源返回给客户机,就像它们来自Web服务器本身一样


一种可能的解决方案是将上游服务器配置为向公众提供流量服务,然后将客户端重定向到那里。

我最终发现,对于我的案例,拆分客户端是最好的解决方案,因为目标是将客户端重定向到各种下载站点,而无需任何特定规则

请注意,这正在更改URL,以便客户端可以看到服务器URL(在我的示例中并不重要)

使用此解决方案,询问服务器:myport/abcd的客户端将根据第2条重定向到serverx:portx/abcd,请参阅

更新

如果您想管理唯一的URL和后台服务器,直接回复客户机而不发送任何URL,则可以在直接路由模式下使用Linux虚拟服务器配置负载平衡。
要配置它,您可以管理一个directorvm&几个请求被透明地分派到的“真实服务器”。请参见

Hi,是的,我了解代理的预期行为,因此我尝试使用proxy\u重定向,但nginx不喜欢我配置它的方式。这就是为什么我要搜索我需要的示例配置。可能使用proxy_redirect/;如果行的话,我会尽快试一试
split_clients "${remote_addr}" $destination {
  40%   server1:port1;
  30%   server2:port2
  20%   server3:port3;
  10%   server4:port4
}

server {
  listen       myport;
  location /  {
    return 302 http://$destination$request_uri;
  } 
}