Vous ne voulez probablement pas faire ça. Qu'essayez-vous vraiment de faire?
Michael Hampton
1
J'en ai vraiment besoin pour le faire
Agus
2
J'ai un cas d'utilisation. J'ai un client qui envoie des données sur mes serveurs que notre infrastructure de production utilise. J'ai besoin que les mêmes données soient transmises à mes serveurs de développement pour un développement ultérieur. Le client est uniquement capable d'envoyer les données à 1 point de terminaison. Ne demandez pas pourquoi, je ne sais pas.
The Dude
1
Oh j'ai besoin de dupliquer le trafic, je veux dire que le trafic sera traité par A, mais B pourra recevoir un processus hors ligne
Agus
2
J'ai trouvé une autre version de cette question avec une réponse qui m'a aidé: serverfault.com/a/515531/175380 Fondamentalement, vous définissez l'emplacement à refléter dans une post_actiondirective. Cela s'exécutera après que la demande a été satisfaite par la machine de production.
Le module ngx_http_mirror_module (1.13.4) implémente la mise en miroir d'une requête d'origine en créant des sous-requêtes de miroir d'arrière-plan. Les réponses aux sous-demandes miroir sont ignorées.
Hé sur l'utilisation de GOR, il reconnaît juste avec un http 200. Donc, s'il a un objet de réponse ou une validation qu'il veut faire avec ce que le client lui envoie, je ne pense pas que cela fonctionnera pour lui. Pour autant que je sache, et je suis nouveau sur Gor, vous ne pouvez pas transmettre l'objet résultat de l'un de vos segments de sortie.
PatrickWalker
Nous testons actuellement le GOR et nous avons quelques problèmes. Il interprète les en-têtes comme: Location: // newpath générant des requêtes comme GET // newpath. Redirige les en-têtes originaux lâches (y compris l'agent utilisateur hôte, etc.) Nous migrons vers un autre outil.
Aalex Gabi
1
vous ne pouvez pas mettre en miroir les demandes avec NGINX mais la demande est disponible en tant que variable. Vous pouvez cependant utiliser les scripts Lua pour envoyer cette variable à un serveur tiers en tant que sous-requête.
http://nginx.org/en/docs/http/ngx_http_core_module.html#var_request
Je pensais juste que je devrais le mentionner ici pour faciliter la recherche d'autres personnes. Dans ma configuration, je n'ai pas utilisé uwsgi - au lieu de cela, je voulais dupliquer chaque demande entrante sur des serveurs supplémentaires (en plus des serveurs principaux qui étaient déjà équilibrés en charge).
post_action
directive. Cela s'exécutera après que la demande a été satisfaite par la machine de production.Réponses:
Nginx dispose désormais d'un module miroir http. La documentation est à https://nginx.org/en/docs/http/ngx_http_mirror_module.html
Exemple de configuration de la documentation:
la source
Voici une nouvelle fonctionnalité de nginx (1.13.4): http://nginx.org/en/docs/http/ngx_http_mirror_module.html#mirror
la source
Sur la base de leur README, il semble que GOR pourrait vous aider à résoudre votre problème.
Je ne l'ai jamais utilisé auparavant, je suis juste tombé dessus cette semaine, alors bonne chance!
la source
vous ne pouvez pas mettre en miroir les demandes avec NGINX mais la demande est disponible en tant que variable. Vous pouvez cependant utiliser les scripts Lua pour envoyer cette variable à un serveur tiers en tant que sous-requête. http://nginx.org/en/docs/http/ngx_http_core_module.html#var_request
la source
Après avoir creusé et creusé, j'ai trouvé une solution. Vous pouvez le voir ici Copier et envoyer une demande à un autre serveur nginx pour des tests de trafic réel par @scari
Je pensais juste que je devrais le mentionner ici pour faciliter la recherche d'autres personnes. Dans ma configuration, je n'ai pas utilisé uwsgi - au lieu de cela, je voulais dupliquer chaque demande entrante sur des serveurs supplémentaires (en plus des serveurs principaux qui étaient déjà équilibrés en charge).
J'espère que cela vous aidera,
Liron
la source