Não sei muito sobre haproxy
, mas sei o suficiente sobre nginx
para responder às suas preocupações com problemas de desempenho.
Observe que a configuração nginx
é compilada em um formato amigável struct
e mantida na memória, o arquivo não é lido em cada solicitação. Portanto, centenas de configurações location /...
devem ser executadas quase tão rapidamente quanto chamar strlen()
+ strncmp()
o mesmo número de vezes. Qual é insignificante em comparação com a configuração do soquete.
O URL é normalizado antes do início da correspondência , portanto, não há nada realmente inteligente sobre os jogos a menos que você use um dos operadores ( =
, ~
, *~
, ^~
).
Você pode usar uma correspondência de expressão regular ( ~
, *~
) e, em seguida, uma lógica if
para decidir entre os upstream
servidores, mas que seria a solução lenta .
Por outro lado, se você tiver pelo menos um local regex, considere o uso do operador ^~
. Veja a resposta antiga, mas ainda relevante, de Martin Redmond sobre SO sobre diferentes operadores e como nginx
corresponde a eles.