假设我ip_hash;
打开了 4 个不同服务器之间的负载平衡。因此,客户端的 IP 地址被用作哈希键来确定他的请求被路由到哪个服务器。
但是,对于文件上传,最好将所有文件保存在一个服务器中。因此,我希望所有客户端的/upload
所有请求都路由到服务器 1 。这意味着所有请求都服从 IP 哈希,除了必须发送到服务器 1 的请求。POST /upload
有没有办法在 NGINX 中创建这个异常?谢谢!
假设我ip_hash;
打开了 4 个不同服务器之间的负载平衡。因此,客户端的 IP 地址被用作哈希键来确定他的请求被路由到哪个服务器。
但是,对于文件上传,最好将所有文件保存在一个服务器中。因此,我希望所有客户端的/upload
所有请求都路由到服务器 1 。这意味着所有请求都服从 IP 哈希,除了必须发送到服务器 1 的请求。POST /upload
有没有办法在 NGINX 中创建这个异常?谢谢!
定义两个upstream
容器,一个具有完全负载平衡,另一个具有 POST 特定服务要求:
upstream balancing { ... }
upstream uploading { ... }
另外,在http
容器中,定义一个map
请求方法:
map $request_method $upstream {
default balancing;
POST uploading;
}
最后,在server
容器中,定义一个特定proxy_pass
的/upload
URI:
location / {
proxy_pass http://balancing;
}
location /upload {
proxy_pass http://$upstream;
}
上游规范是根据 的值评估的REQUEST_METHOD
。