0

假设我ip_hash;打开了 4 个不同服务器之间的负载平衡。因此,客户端的 IP 地址被用作哈希键来确定他的请求被路由到哪个服务器。

但是,对于文件上传,最好将所有文件保存在一个服务器中。因此,我希望所有客户端的/upload所有请求都路由到服务器 1 。这意味着所有请求都服从 IP 哈希,除了必须发送到服务器 1 的请求。POST /upload

有没有办法在 NGINX 中创建这个异常?谢谢!

4

1 回答 1

0

定义两个upstream容器,一个具有完全负载平衡,另一个具有 POST 特定服务要求:

upstream balancing { ... }
upstream uploading { ... }

另外,在http容器中,定义一个map请求方法:

map $request_method $upstream {
    default balancing;
    POST    uploading;
}

最后,在server容器中,定义一个特定proxy_pass/uploadURI:

location / {
    proxy_pass http://balancing;
}
location /upload {
    proxy_pass http://$upstream;
}

上游规范是根据 的值评估的REQUEST_METHOD

于 2015-12-27T14:00:25.353 回答