2015-12-27 18 views
0

比方說,我已打開ip_hash;以在4個不同服務器之間進行負載平衡。因此,客戶端的IP地址被用作散列鍵來確定他的請求被路由到哪個服務器。nginx爲特定請求指定服務器

但是,對於文件上傳,最好保留所有文件在一臺服務器。因此,我希望所有/upload請求都可以路由到服務器1 ,適用於任何客戶端。這意味着所有請求都服從IP-hash,除了必須發送到服務器1的POST /upload

有沒有辦法在NGINX中創建這個異常?謝謝!

回答

0

定義兩個upstream容器,一個與滿負載平衡和另一個與該POST的具體服務要求:

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

此外,http容器內,定義請求方法的map

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

最後,在server容器中,爲/upload定義特定的proxy_pass URI:

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

上游規格根據REQUEST_METHOD的值進行評估。

相關問題