Préfixes Nginx http dans le serveur en amont

12

J'essaie d'utiliser nginx pour passer par proxy à deux conteneurs Docker. Voici mon fichier de conf en amont:

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

Voici ce que j'obtiens en essayant de le charger:

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

Une fois que j'ai supprimé les préfixes http: //, l'erreur a cessé de se produire. Pourquoi donc?

user2108258
la source

Réponses:

16

Le bloc en amont est une liste de serveurs avec un regroupement d'état facultatif et des restrictions de connexion. Le protocole utilisé pour rejoindre ces serveurs doit être spécifié dans la proxy_passdirective.

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
la source
2

Syntaxe: adresse du serveur [paramètres]; l'adresse peut être spécifiée en tant que nom de domaine ou adresse IP, avec un port facultatif, ou en tant que chemin de socket de domaine UNIX spécifié après le préfixe «unix:». Je pense que vous devriez regarder " http://nginx.org/en/docs/http/ngx_http_upstream_module.html#upstream ".

xiaopihai
la source