load balancing according to url
António P. P. Almeida
appa at perusio.net
Mon Apr 29 09:01:34 UTC 2013
You chain two map directives. Like this:
map $uri $customer_id {
~/customer/(?<cust_id>[^/]+)/.*$ $cust_id;
}
map $customer_id $sticky_backend {
default bad_gateway;
<cust-id_1> <server 1>;
<cust-id_2> <server 2>;
}
----appa
On Mon, Apr 29, 2013 at 8:27 AM, ESWAR RAO <eswar7028 at gmail.com> wrote:
> Hi All,
>
> Can anyone please help me with the below requirement.
>
> Host machine contains a plugin and it communicates with a plugin handler
> running on backend servers and nginx is used to load balance the requests.
>
> host machine(plugin) ===== >nginx as load balancer =====>3 backend servers
> which hosts plugin handler
>
> I need to load balance the requests based on customer-id field in host
> machine.
> # curl '
> http://localhost:8031/test1/test2/test3/customer/123456789999999999/......./
>
> customer-id: 123456789999999999
> customer-id changes with customers.
>
> Since the requests come from same machine, I can't use ip_hash or cookie
> based load balancing technique.
>
> My requirement is to load balance according to customer id and if same
> request comes the same customer it should go to same earlier server which
> served the request.
>
>
> I am planning to extract the customer-id in nginx configuration file and
> add them on the fly in the config file and compare the ids using "map"
> directive. But unable to know which server served the requests to
> customer-id:
>
> map $customer_id $sticky_backend {
> default bad_gateway;
> <cust-id_1> <server 1>;
> <cust-id_2> <server 2>;
> }
> if ( $request_uri ~ ^/(.*)/(customer)/(.*?)/(.*)/ ) {
> set $customer_id $3;
>
> Thanks
> Eswar
>
>
> _______________________________________________
> nginx mailing list
> nginx at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx/attachments/20130429/f2644449/attachment.html>
More information about the nginx
mailing list