Hi, On Thu, Sep 27, 2018 at 07:55:40PM +0300, Roman Arutyunyan wrote: > Hi, > > On Thu, Sep 27, 2018 at 02:51:25PM +0200, Marcin Wanat wrote: > > Hi, > > > > i am using latest (1.15.4) nginx with stream module. > > > > I am trying to create config with one primary server that will accept no > > more than 10 connections and multiple backups that will also receive up to > > 10 connections only when previous backup server is already full. > > > > As exact behavior of multiple backup directives is not well explained in > > documentation i would like to ask if i am doing right. > > There's only one level of upstream backup in nginx. Once all primary servers > fail, the balancer switches to backup servers. All backup servers are equal. > One of them is chosen based on the balancing algorithm. If it fails, another > one is chosen and so on, just like it happens with primary servers. > > If you want several levels of backup, you still can do it with 'error_page > 502'. > Once all servers in your initial location fail (primary + 1st level backup), > error 502 is generated. Then you continue in another location specified in > error_page and repeat proxying with other servers (2nd level backup).
Sorry, that was the answer for HTTP. In the stream module there's nothing like error_page, so this approach is not possible. > > My current configuration is: > > stream { > > upstream backend { > > zone upstream_backend 64k; > > server 10.0.1.1:9306 max_conns=10; > > server 10.0.1.2:9306 max_conns=10 backup; > > server 10.0.1.3:9306 max_conns=10 backup; > > server 10.0.1.4:9306 backup; > > } > > server { > > listen 127.0.0.1:9306; > > proxy_connect_timeout 1s; > > proxy_timeout 3s; > > proxy_pass backend; > > } > > } > > > > > > I would like it to work like this: > > > > When we have up to 10 concurrent connections, all should go always to > > primary 10.0.1.1 > > > > When we have 25 concurrent connections it should work like this: > > -First 10 connections go to primary 10.0.1.1 > > -Next 10 connections go to backup 10.0.1.2 > > -Next 5 connections go to backup 10.0.1.3 > > > > When we have 45 concurrent connections it should work like this: > > -First 10 connections go to primary 10.0.1.1 > > -Next 10 connections go to backup 10.0.1.2 > > -Next 10 connections go to backup 10.0.1.3 > > -Next 15 connections go to backup 10.0.1.4 > > > > > > Will multiple backup directives work as i expected or will they just round > > robin between each of them up to max_conns limit ? > > > > > > Regards, > > Marcin Wanat > > > _______________________________________________ > > nginx mailing list > > nginx@nginx.org > > http://mailman.nginx.org/mailman/listinfo/nginx > > > -- > Roman Arutyunyan > _______________________________________________ > nginx mailing list > nginx@nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx -- Roman Arutyunyan _______________________________________________ nginx mailing list nginx@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx