Mirroring ruchu dzięki Nginx

16

Muszę zduplikować / dublować ruch przychodzący na mój serwer / zasób.

Mam na myśli serwer A, B i N (nginx) jako serwer WWW.

Cały ruch przychodzący do N / zasób -> przekierowuje do A i B

Czy to możliwe?

Agus
źródło
2
Prawdopodobnie nie chcesz tego robić. Co naprawdę próbujesz zrobić?
Michael Hampton
1
Naprawdę tego potrzebuję
Agus,
2
Mam przypadek użycia. Mam klienta przesyłającego dane do moich serwerów, z których korzysta nasza infrastruktura produkcyjna. Potrzebuję tych samych danych przekazywanych na moje serwery deweloperów w celu dalszego rozwoju. Klient może wysyłać dane tylko do 1 punktu końcowego. Nie pytaj dlaczego, nie wiem.
Koleś
1
Och, muszę zduplikować ruch, mam na myśli, że ruch będzie przetwarzany przez A, ale B odbierze proces offline
Agus
2
Znalazłem inną wersję tego pytania z odpowiedzią, która pomogła mi: serverfault.com/a/515531/175380 Zasadniczo ustawiłeś lokalizację, która ma być dublowana w post_actiondyrektywie. Uruchomi się to po spełnieniu żądania przez maszynę produkcyjną.
Adam Lukens

Odpowiedzi:

14

Nginx ma teraz moduł lustrzanego http. Dokumentacja znajduje się na https://nginx.org/en/docs/http/ngx_http_mirror_module.html

Przykładowa konfiguracja z dokumentacji:

location / {
    mirror /mirror;
    proxy_pass http://backend;
}

location /mirror {
    internal;
    proxy_pass http://test_backend$request_uri;
}
Slack Undertow
źródło
Czy istnieje sposób, w jaki mogę użyć lustra, nawet jeśli jeden z hostów nie działa, mam na to przypadek użycia.
Sagar Kharab
2

Na podstawie ich README Wygląda na to, że GOR może pomóc w rozwiązaniu problemu.

Nigdy wcześniej go nie użyłem, natknąłem się na to w tym tygodniu, więc powodzenia!

Marcel
źródło
Hej, jeśli użyjesz GOR, po prostu potwierdza to za pomocą http 200. Więc jeśli ma obiekt odpowiedzi lub weryfikację, chce zrobić to, co wysyła mu klient, nie sądzę, że to zadziała. O ile mogę stwierdzić, a jestem nowy w Gor, nie możesz przekazać obiektu wynikowego z jednego z segmentów wyjściowych.
PatrickWalker,
Obecnie testujemy GOR i mamy kilka problemów. Interpretuje nagłówki takie jak: Lokalizacja: // newpath generując żądania takie jak GET // newpath. Przekierowuje luźne oryginalne nagłówki (w tym host użytkownika itp.) Przeprowadzamy migrację do innego narzędzia.
Aalex Gabi
0

Po kopaniu i kopaniu znalazłem rozwiązanie. Możesz to zobaczyć tutaj Skopiuj i dostarcz żądanie do innego serwera nginx w celu przetestowania prawdziwego ruchu przez @scari

Pomyślałem, że powinienem wspomnieć o tym tutaj, aby ułatwić wyszukiwanie innych osób. W mojej konfiguracji nie używałem uwsgi - zamiast tego chciałem duplikować każde przychodzące żądanie do dodatkowych serwerów (oprócz serwerów szkieletowych, które były już zrównoważone pod względem obciążenia.

Mam nadzieję, że to pomoże,
Liron

Liron
źródło