proxy reverso nginx para configuração de alta disponibilidade?

proxy reverso nginx para configuração de alta disponibilidade?

O cenário é assim, eu tenho um servidor proxy reverso nginx na frente de dois servidores de aplicativos que são backups um do outro, quero que o nginx encaminhe todas as solicitações do usuário para o primeiro servidor de aplicativos primeiro, e se o primeiro servidor de aplicativos estiver inativo , quero que o nginx encaminhe todas as solicitações do usuário para o segundo servidor de aplicativos a partir desse momento, até que o segundo servidor de aplicativos esteja inativo e o nginx reverta para encaminhar todas as solicitações do usuário para o primeiro servidor de aplicativos, e assim por diante. Claro, se ambos os servidores de aplicativos estiverem inativos, o nginx retornará um erro.

Analisei configurações como balanceamento de carga upstream e configurações de proxy_next_upstream, mas não parece ser exatamente o que estou procurando aqui. Alguma ideia de como configurar o nginx para o meu cenário? Obrigado.

Responder1

Você vai querer usar a upstreamconfiguração nginx para conseguir isso.

upstream mybackend {
    # first app server
    server 192.168.0.1;

    # second app server
    server 192.168.0.2 backup;
}

server {
    ...

    location / {
        proxy_pass http://mybackend;
    }
}

A chave aqui é o backupparâmetro, que diz ao nginx para utilizar esse nó apenas no caso de nós primários (ou seja, nós não marcados backup) estarem indisponíveis.

Completodocumentação aqui.

Responder2

Depois de mais pesquisas, decidi usar o OpenResty (https://openresty.org/) para minhas necessidades, especificamente o LuaUpstreamNginxModulehttps://github.com/openresty/lua-upstream-nginx-modulee com alguns scripts Lua personalizados, parece funcionar perfeitamente para o meu cenário.

informação relacionada