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; } 
  • Nginx proxy_cache / Vernis - les requêtes parallèles triggersnt-elles plusieurs requests de sauvegarde?
  • Configuration d'Apache vhost pour le renvoi de port
  • Mod_security Logging
  • Quelle est la différence entre http_cookie et cookie_name dans Nginx?
  • Le fait de desservir un site Web IIS via nginx (proxy_pass) n'indique pas CSS, images ou js (404 introuvable)
  • Définir le path Redmine
  • Navigateur Proverse Proxy non reconnu / incompatible
  • Comment puis-je servir des files statiques avec nginx mais utiliser une URL légèrement différente pour la tornade?
  • Fournir une IP statique pour les ressources derrière AWS Elastic Load Balancer (ELB)
  • Nginx + php-fpm VS Nginx comme proxy inverse pour Apache
  • Nginx - Reverse proxy sur IIS6 avec auth
  • Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de rĂ©seau.