Como configurar o NGINX para balanceamento de carga básico
NGINX
O NGINX é comumente usado como servidor da Web, mas também faz um ótimo trabalho ao atuar como proxy reverso e balanceador de carga - um dispositivo de rede projetado para lidar com a maior parte do tráfego e encaminhar solicitações para vários servidores da Web .
Como o balanceamento de carga NGINX funciona
O princípio básico de um balanceador de carga é que ele fica entre o usuário e um conjunto de servidores e solicita proxies para eles. Geralmente, isso é feito com dois ou mais servidores, para que o tráfego possa ser distribuído mais facilmente entre eles.
A maior parte da configuração ocorre em como o NGINX seleciona para qual servidor encaminhar. O padrão é round-robin, que enviará solicitações para cada servidor em ordem, garantindo uma distribuição de carga igual.
No entanto, nem sempre é tão simples assim. Muitos aplicativos da Web exigem algum tipo de persistência da sessão, o que significa que o usuário deve acessar o mesmo servidor durante toda a sessão. Por exemplo, um carrinho de compras pode ser armazenado localmente em um servidor de aplicativos e, se o usuário alternar entre servidores no meio da sessão, o aplicativo poderá falhar. Obviamente, muitos desses cenários podem ser corrigidos com melhor infraestrutura de aplicativos e datastores centralizados, mas a persistência da sessão é exigida por muitas pessoas.
No NGINX, o conjunto de servidores aos quais você direciona é conhecido como upstream e é configurado como uma lista enumerada de endereços:
upstreambackend {serverbackend1. example. comweight = 5; serverbackend2. example. com;}
Essas fontes têm muitas opções; aqui, definimos um peso, que priorizará esse servidor com mais frequência (particularmente útil se você tiver tamanhos diferentes). Você também pode definir as conexões máximas e vários tempos limite. Se você estiver usando o NGINX Plus, também poderá configurar verificações de integridade para que as conexões não sejam roteadas para servidores não íntegros.
A forma mais básica de persistência de sessão é usar um hash IP. O NGINX usará o IP para identificar usuários e, em seguida, verifique se eles não trocam de servidor no meio da sessão:
back-up upstream {ip_hash; serverbackend1. example. com; serverbackend2. example. com; }[/PRÉ]O hash IP é necessário para aplicativos baseados em soquete e qualquer coisa que exija persistência. Se você não quiser usar o endereço IP, poderá personalizar este hash:
back-up upstream {esquema de $ hash $ request_uri consistente; serverbackend1. example. com; serverbackend2. example. com; }[/PRÉ]Se você não precisa de nenhum tipo de persistência de sessão, pode tornar a seleção round-robin um pouco mais inteligente, selecionando qual servidor tem menos conexões:
back-up a montante {less_conn; serverbackend1. example. com; serverbackend2. example. com; }[/PRÉ]Ou com base em qual deles está respondendo mais rapidamente:
back-up a montante {less_time (cabeçalho | last_byte); serverbackend1. example. com; serverbackend2. example. com; }[/PRÉ]O NGINX Plus possui algumas outras formas de persistência de sessão, mas o hash IP funciona para a maioria dos aplicativos.
Proxying para s back-end
Depois de configurar seu back-end, você pode enviar solicitações a partir dos blocos de localização, usando proxy_pass com um URI para o back-end.
servidor
{ouça 80; server_name example. com; location / {proxy_pass http: // back-end; }}Claro, se você estiver usando HTTPS, precisará enviar a solicitação com HTTPS:
servidor
{listen443ssl; server_nameexample. com; ssl_certificate / etc / ssl / certs / server. crt; ssl_certificate_key / etc / ssl / certs / server. key; ssl_client_certificate / etc / ssl / certs / ca. crt; local / {proxy_passhttps: // backend;} }[/PRÉ]Via: How to Geek
Nenhum comentário