Przejrzyste równoważenie obciążenia TCP z NGINX/HAproxy


Próbowałem przez kilka dni i nadal nie mogłem zmusić przezroczystego modułu równoważenia obciążenia TCP do pracy z HAproxy/NGINX.
Problem w tym, że wszystko działa poprawnie, dopóki nie spróbuję włączyć przejrzystości. Zarówno NGINX, jak i HAproxy równoważą obciążenie, ale podają localhost jako adres IP użytkownika.
Co próbowałem to zmienić:
  • Zmieniono je, aby działały jako root.
  • Dla NGINX: [list][*]Próbowałem, korzystając z tego artykułu: https://www.nginx.com/blog/ip- ... ernal https://www.nginx.com/blog/ip- ... ernal
  • Skonfigurowane iptables, dodana tablica routingu itp. Część dotycząca „domyślnej bramy powinna być adresem IP serwera NGINX” Nie rozumiem, ponieważ NGINX i aplikacje działają na tej samej maszynie bez żadnych kontenerów.

[/*]
[*]
Dla HAproxy:

[/*]
[/list]
Więc ogólne pytanie: mam równoważenie obciążenia HAproxy/NGINX na x.x.x.x: 30000. Na tej samej maszynie mam aplikacje w x.x.x.x: 30001 i x.x.x.x: 30002.
Jak mogę zrównoważyć obciążenie w tej konfiguracji? Jakie dodatkowe reguły routingu są wymagane? Czy muszę utworzyć wirtualną podsieć do przekierowania? Bo w tej chwili wydaje się, że load balancer może połączyć się z aplikacją, ale nie może zwrócić odpowiedzi użytkownikowi.
Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Nie jestem pewien, czy możesz to zrobić na tym samym hoście.
TPROXY stanowi wyzwanie nawet w najlepszych czasach. Widziałem, jak to działa dobrze z dwoma oddzielnymi podsieciami ORAZ oddzielnymi hostami (wirtualnymi lub fizycznymi).
Czy na pewno nie możesz użyć czegoś prostszego, takiego jak

DSR
https://www.loadbalancer.org/b ... -dsr/
Tryb?
Wiem, że LVS DSR działa na tym samym hoście.
A może

PROTOKÓŁ HAPROXY PROXY
https://www.haproxy.com/blog/h ... ocol/
(jeśli Twoja aplikacja to obsługuje).
Teoretycznie zakładam, że TPROXY powinno być możliwe na jednym hoście, więc może ktoś mądry odpowie :-).

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się