Prefixos Nginx http no servidor upstream

12

Estou tentando usar o nginx para passar por proxy para dois contêineres do docker. Aqui está o meu arquivo conf upstream:

upstream api_servers {
  server http://192.168.49.4:49155;
  server http://192.168.49.4:49156;
}

Isto é o que eu estou tentando carregar:

nginx: [emerg] invalid host in upstream "http://192.168.49.4:49155" in /etc/nginx/conf.d/api_upstream.conf:3
nginx: configuration file /etc/nginx/nginx.conf test failed

Depois de remover o prefixo http: //, o erro parou de ocorrer. Por que é que?

user2108258
fonte

Respostas:

15

O bloco upstream é uma lista de servidores com restrições de conexão e pool de status opcionais. O protocolo usado para ingressar nesses servidores deve ser especificado na proxy_passdiretiva.

upstream api_servers {
    server 192.168.49.4:49155;
    server 192.168.49.4:49156;
}

server {

    [ ... ]

    location /foo/ {
        proxy_pass http://api_servers/;
    }

}
Xavier Lucas
fonte
2

Sintaxe: endereço do servidor [parâmetros]; O endereço pode ser especificado como um nome de domínio ou endereço IP, com uma porta opcional ou como um caminho de soquete do domínio UNIX especificado após o prefixo "unix:". Eu acho que você gostaria de ver " http://nginx.org/en/docs/http/ngx_http_upstream_module.html#upstream ".

xiaopihai
fonte