239 votes

Que signifie upstream dans nginx ?

upstream app_front_static {
    server 192.168.206.105:80;
}

Je ne l'ai jamais vu auparavant, quelqu'un sait-il ce que cela signifie ?

253voto

Phil Lello Points 4582

Il est utilisé pour l'acheminement des demandes vers d'autres serveurs .

Un exemple de http://wiki.nginx.org/LoadBalanceExample est :

http {
  upstream myproject {
    server 127.0.0.1:8000 weight=3;
    server 127.0.0.1:8001;
    server 127.0.0.1:8002;    
    server 127.0.0.1:8003;
  }

  server {
    listen 80;
    server_name www.domain.com;
    location / {
      proxy_pass http://myproject;
    }
  }
}

Cela signifie que toutes les demandes de / vont vers l'un des serveurs énumérés sous upstream XXX, avec une préférence pour le port 8000.

2 votes

Pourquoi précisez-vous http {} ? Ma conf n'a pas cela et cela fonctionne. Je me demande simplement

9 votes

@OlivierPons peut-être que votre config est /etc/nginx/conf.d/default.conf qui est inclus dans /etc/nginx/nginx.conf qui a http {}

55voto

Ben Taitelbaum Points 5119

upstream définit un cluster auquel vous pouvez envoyer des requêtes par proxy . Il est généralement utilisé pour définir soit un cluster de serveurs web pour l'équilibrage de charge, soit un cluster de serveurs d'applications pour le routage / l'équilibrage de charge.

23voto

satyanarayana Points 21

Si nous avons un seul serveur, nous pouvons l'inclure directement dans le fichier proxy_pass de la directive. Par exemple :

  server {
    ...
    location / {
      proxy_pass http://192.168.206.105:80;
      ...
    }
  }

Mais dans le cas où nous avons beaucoup de serveurs, nous utilisons upstream pour maintenir les serveurs. Nginx équilibrera la charge en fonction du trafic entrant, comme le montre l'exemple suivant réponse .

1 votes

Merci. J'essayais de upstream pour un serveur dorsal, il y a trop d'erreurs de fichiers ouverts, etc. C'est ce que je voulais pour une configuration de test avec un proxy vers Mojolicious.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X