nginx为特定请求指定服务器

nginx为特定请求指定服务器,nginx,upload,load-balancing,distributed,sticky-session,Nginx,Upload,Load Balancing,Distributed,Sticky Session,假设我有ip\u散列为4台不同服务器之间的负载平衡打开。所以,客户端的IP地址被用作散列密钥,以确定他的请求路由到哪个服务器 但是,对于文件上载,最好将所有文件保存在一台服务器上。因此,我希望所有客户机的/upload请求都路由到服务器1。这意味着除了必须发送到服务器1的POST/upload之外,所有请求都遵循IP哈希 有没有办法在NGINX中创建此异常?谢谢 定义两个上游容器,一个具有全负载平衡,另一个具有特定于岗位的服务要求: upstream balancing { ... } upst

假设我有
ip\u散列为4台不同服务器之间的负载平衡打开。所以,客户端的IP地址被用作散列密钥,以确定他的请求路由到哪个服务器

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


有没有办法在NGINX中创建此异常?谢谢

定义两个
上游
容器,一个具有全负载平衡,另一个具有特定于岗位的服务要求:

upstream balancing { ... }
upstream uploading { ... }
另外,在
http
容器中,定义请求方法的
map

map $request_method $upstream {
    default balancing;
    POST    uploading;
}
最后,在
服务器
容器中,为
/upload
URI定义一个特定的
代理过程

location / {
    proxy_pass http://balancing;
}
location /upload {
    proxy_pass http://$upstream;
}
上游规范根据
REQUEST\u方法的值进行评估