J'essaie de répliquer le trafic qu'un serveur nginx spécifique reçoit sur deux serveurs. Le but n'est pas d'équilibrer la charge, mais de rejouer la même entrée sur tous les serveurs nginx.
Un exemple: Nginx reçoit un HTTP POST. Je veux envoyer ce même POST à d'autres serveurs.
** METTRE À JOUR **
La situation est facile et non complexe. J'ai juste besoin de renvoyer les données POST (ou GET ou toutes les données de demande) à une autre IP de serveur (il exécute également une instance nginx). Juste ça.
UTILISATEUR -> POST DATA -> NGINX INSTANCE ---- REDIRECT ---> SERVER 1 AND SERVER 2
Réponses:
J'ai pu répliquer en utilisant l'état post_action.
Maintenant, il envoie des données à deux serveurs.
Si votre amont ne prend pas en charge fastcgi (arrivé dans mon cas), remplacez par proxy_pass.
la source
Je ne crois pas que vous puissiez faire cela avec nginx seul; une lecture rapide des bits pertinents de la documentation nginx (directives amont et proxy) ne suggère pas que vous le pouvez. Comme indiqué dans les commentaires, cela rompt également HTTP, car il n'y a aucune clarté sur lequel des deux serveurs arrière répondra.
Une alternative est d'utiliser quelque chose comme du vernis et de faire une relecture sur le deuxième serveur arrière en utilisant varnishreplay:
https://www.varnish-cache.org/docs/2.1/reference/varnishreplay.html
Je ne l'ai pas utilisé, donc je ne sais pas si vous pouvez le faire rejouer le trafic presque simultanément avec le premier serveur arrière.
la source
Ce que vous voulez utiliser est quelque chose comme EM-Proxy [1]. Il gère facilement la répartition des requêtes http sur un nombre quelconque de serveurs. Il gère également correctement le retour des données du seul serveur en direct et le blocage des autres afin que l'utilisateur n'obtienne pas de réponses multiples.
[1] https://github.com/igrigorik/em-proxy/
la source
Utilisez le stockage central comme un serveur NFS et chaque nœud Web nginx monte le partage NFS (au niveau du fichier). Ou utilisez un système de fichiers en cluster comme OCFS2 et chaque nœud Web monte la LUN / partition (au niveau du bloc).
la source