我们说ip_hash;
启用了4个不同服务器之间的负载均衡。因此,客户端的IP地址用作散列密钥,以确定其请求被路由到哪个服务器。
但是,对于文件上传,最好将所有文件保留在单个服务器中。因此,我希望所有/upload
个请求都被路由到服务器1 以用于任何客户端。这意味着所有请求都遵循IP哈希,但必须发送到服务器1的POST /upload
除外。
有没有办法在NGINX中创建此异常?谢谢!
答案 0 :(得分:0)
定义两个upstream
容器,一个具有完全负载平衡,另一个具有POST特定服务要求:
upstream balancing { ... }
upstream uploading { ... }
此外,在http
容器中,定义请求方法的map
:
map $request_method $upstream {
default balancing;
POST uploading;
}
最后,在server
容器中,为proxy_pass
URI定义特定的/upload
:
location / {
proxy_pass http://balancing;
}
location /upload {
proxy_pass http://$upstream;
}
上游规范是根据REQUEST_METHOD
的值进行评估的。