Ich habe 5 Backend-Server. Ich möchte, dass nginx die POST-Anfrage für/myapp/refresh an alle 5 Backend-Server weiterleitet. Für jede andere Anfrage kann es Lastenausgleich durchführen. Ist das möglich ? Können Sie bitte eine Beispielkonfiguration geben?Nginx - Umleiten von Anfragen an alle Backends
Antwort
Sie sollten nginx als Load Balancer mit einer einfachen Konfiguration zu verwenden, wie der Lage sein:
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;
}
}
}
docs: https://www.nginx.com/resources/admin-guide/load-balancer/
Dies sollte Route alle Anforderungen einschließlich der POST-Anfrage Sie erwähnt.
Ich bin nicht bewusst über die fertige Lösung zu tun, was Sie wollen.
Es ist definitiv möglich, ein solches Verhalten in C oder Lua zu implementieren.
Sie können nginx C-Modul entwickeln, aber es ist keine triviale Aufgabe mit ernsthafter Lernkurve.
Sie können https://github.com/openresty/lua-nginx-module verwenden und etwas wie https://github.com/openresty/lua-nginx-module#ngxlocationcapture_multi verwenden.
Aber in beiden Fällen sollten Sie eine Art von Logik implementieren, wann und welche Antwort Sie zurücksenden werden.
Frage zum Nachdenken - müssen Sie mit 200 OK antworten, wenn einer der Back-End Timeout oder reagiert mit Fehler?
- 1. Nginx: Alle nicht existierenden Anfragen an index.php umleiten
- 2. Nginx: alle Umleiten aber ein
- 3. nginx Reverse-Proxy mehrere Backends
- 4. IIS: Alle Anfragen auf eine Seite umleiten?
- 5. CloudFront umleiten alle Anfragen mit Pfad-Präfix
- 6. umleiten alle Anfragen mit einer Ausnahme url
- 7. Umleiten von Subdomain zu Port [Nginx/Kolben]
- 8. Umleiten alle API-Routen mit nginx
- 9. htaccess: Umleiten aller Anfragen an andere Domäne
- 10. Umleiten aller Anfragen auf eine statische Seite mit Nginx
- 11. .htaccess, Umleiten alle Anforderungen an https: //
- 12. Umleiten alle Anforderungen an einzelne Seite
- 13. Nginx umleiten je nach Anfrage
- 14. Wie umleiten 404 Anfragen an die Startseite in Django einzelne Seite App mit Nginx?
- 15. Wie auf andere vhost in Nginx umleiten
- 16. NGINX Location Block immer umleiten an anderen Ort
- 17. Nginx: Subdomains Umleiten Unterordner
- 18. Nginx umleiten Benutzer/index.php
- 19. Nginx-Server mit mehreren Fastcgi-Backends für verschiedene Unterordner
- 20. Nginx - Umleiten zu VM ip von remote
- 21. Nginx Umleiten für bestimmte Liste von Argumenten
- 22. Nginx - manipulieren request_uri beim Umleiten
- 23. Umleiten aller HTTP-Anfragen an HTTPS auf Magento
- 24. alternative Protokolldatei in nginx für lokale Anfragen
- 25. Wie besonderen Anfragen https in Nginx
- 26. Nginx umleiten auf falsche vhost
- 27. Umleiten Anfrage an zwei Upstream-Server in Nginx
- 28. alle .xml-Anfragen an den Proxy senden
- 29. Wie leite ich alle Anfragen mit nginx an eine Anwendung um, die auf einem bestimmten Port ausgeführt wird?
- 30. 301 Wildcard auf https, standortweite umleiten, alle Anfragen
Danke. Aber ich möchte nur, dass bestimmte POST zu allen Servern gehen ... andere Anfragen sollten nur von einem Backend-Server bedient werden. Funktioniert die obige Konfiguration so? – RDR