0

4 つの異なるサーバー間の負荷分散をip_hash;オンにしたとします。そのため、クライアントの IP アドレスは、要求がルーティングされるサーバーを決定するためのハッシュ キーとして使用されます。

ただし、ファイルのアップロードの場合は、すべてのファイルを 1 つのサーバーに保管することをお勧めします。したがって、すべての/uploadリクエストをサーバー 1 にルーティングして、クライアントを取得したいと考えています。POST /uploadこれは、サーバー 1 に送信する必要があるものを除いて、すべての要求が IP ハッシュに従うことを意味します。

NGINX でこの例外を作成する方法はありますか? ありがとう!

4

1 に答える 1

0

2 つのコンテナを定義upstreamします。1 つは完全なロード バランシングを備え、もう 1 つは POST 固有のサービス要件を備えています。

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

また、コンテナー内で、リクエスト メソッドの をhttp定義します。map

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

最後に、コンテナー内で、URIserverに固有のものを定義します。proxy_pass/upload

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

アップストリーム仕様は の値から評価されますREQUEST_METHOD

于 2015-12-27T14:00:25.353 に答える