Proxy inverse actif / passif avec nginx

J'ai deux servers Websocket qui travaillent avec Zookeeper & Curator comme Active / Passive, si un server échoue alors que le second backend prend vie.

Je l'ai configuré de la manière suivante:

 upstream backend { server 172.31.9.1:8080 max_fails=1 fail_timeout=5s; server 172.31.9.0:8080 max_fails=1 fail_timeout=5s; } server { listn 443; # host name to respond to server_name xxxxxx.compute.amazonaws.com; ssl on; ssl_certificatee /etc/ssl/certs/wildcard.dev.xxxx.net.crt; ssl_certificatee_key /etc/ssl/certs/wildcard.dev.xxxx.net.key; location / { # switch off logging access_log off; proxy_pass http://backend; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # WebSocket support (nginx 1.4) proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } } 

Ce que je m'attends, c'est lorsque les servers actifs et passifs changent de position, Nginx prend 5 secondes pour reconnaître l'échec et redirect tout le trafic vers le server actif.

Ce qui arrive réellement, il faut jusqu'à 25 secondes pour reconnaître le server actif et changer tout le trafic.

Dans un scénario réel, je peux gérer jusqu'à 10 secs de time d'arrêt entre les redirections.

Qu'est-ce qui me manque?

One Solution collect form web for “Proxy inverse actif / passif avec nginx”

fail_timeout de la documentation fail_timeout :

Ensembles:

  • le time pendant lequel le nombre spécifié de tentatives infructueuses de communiquer avec le server devrait considérer le server indisponible;
  • et la période pendant laquelle le server sera considéré comme indisponible.

Donc, un réglage de 5 signifiait un total de 10 secondes (5 timeouts d'attente, 5 d'attente avant de contacter à nouveau)

Soit dit en passant, la valeur par défaut pour max_fails est déjà 1, donc vous n'avez pas besoin de définir cela.


Si vous voulez réellement une configuration active / passive, vous devez utiliser cette configuration à la place:

 upstream backend { server 172.31.9.1:8080; server 172.31.9.0:8080 backup; } 
  • Proxy inverse d'IIS avec la caching du même hôte
  • Résoudre le domaine sur l'environnement
  • Nginx to apache reverse proxy, instruire l'utilisation des sockets Unix
  • Récupération d'URL Apache en proxy inverse
  • SSL proxying sur nginx - comportement différent dans différents clients
  • ReverseProxy ne fonctionne pas sur OSX El Capitan
  • Configuration du proxy Apache / Tomcat
  • Comment puis-je utiliser un proxy inverse sur un server hébergeant un site Web?
  • NGINX Proxy_Pass supprime la sous-string url
  • nginx proxy_pass deux ports dans les sous-dossiers
  • Est-il logique d'inverser proxy Node.js par Apache?
  • Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de rĂ©seau.