O nginx pode rodar o robin em uma lista de servidores em portas diferentes?

3

Eu quero mapear um domínio em particular no nginx e, em seguida, ter o nginx round-robin em uma lista de servidores que responderão a solicitações http.

Então eu tenho nginx para www.domain1.com

É um aplicativo python, e eu tenho 10 instâncias de colar em execução em diferentes portas que eu quero nginx para encaminhar / solicitações de proxy para usar round-robin.

pode fazer isso, se sim, como?

    
por Blankman 08.09.2010 / 18:40

2 respostas

3

Você pode especificar portas para cada servidor de back-end em um bloco upstream no nginx:

upstream mybackend  {
    server localhost:8080;
    server localhost:8081;
    server localhost:8082;
    server localhost:8083;
    server localhost:8084;
    server localhost:8085;
    server localhost:8086;
    server localhost:8087;
    server localhost:8088;
    server localhost:8089;
}

server {
  location / {
    proxy_pass  http://mybackend;
  }
}
    
por 09.09.2010 / 05:34
0

Realmente, seria melhor usar algo como haproxy para isso, mas o nginx pode inverter o proxy para vários servidores no backend .

Dê uma olhada no módulo upstream do nginx link

Configure os servidores de upstream com o mesmo peso para o balanceamento distribuído de round-robin. por exemplo,

upstream backend { 
     server ww1.domain.com weight=10;
     server ww2.domain.com weight=10;
}

Por padrão, o peso é 1, portanto, tecnicamente, você não precisa de um peso de 10, mas definir um peso padrão mais alto permite introduzir facilmente um servidor com um peso menor.

    
por 08.09.2010 / 19:03