Яка різниця між балансиром навантаження та зворотним проксі?


117

Мені не ясно про різницю між навантаженням-балансиром і зворотним проксі. Вони, схоже, мають однакову поведінку: розповсюджують вхідні запити на сервери бекенда.


Відповіді:


113

Ваша плутанина розумна - вони часто одне й те саме. Але не завжди. Коли ви посилаєтесь на балансир завантаження, ви маєте на увазі дуже специфічну річ - сервер або пристрій, який врівноважує вхідні запити на два або більше веб-серверів для розподілу навантаження. Однак зворотний проксі, як правило, має будь-яку кількість функцій:

  1. врівноваження навантаження: як обговорювалося вище

  2. кешування: він може кешувати вміст із веб-серверів (-ів), що знаходяться за ним, і тим самим зменшити навантаження на веб-сервері (а) та повернути деякий статичний вміст запитувачеві без необхідності отримувати дані з веб-серверів

  3. безпека: вона може захищати веб-сервер (-ів), запобігаючи прямий доступ з Інтернету; це може зробити це простими засобами, просто обфускуючи веб-сервер (и), або він може мати деякі більш активні компоненти, які фактично переглядають вхідні запити, шукаючи шкідливий код

  4. Прискорення SSL: коли використовується SSL; він може служити точкою припинення для цих сеансів SSL, щоб завантаження роботи з шифруванням завантажувалося з веб-серверів (серверів)

Я думаю, що це стосується більшої частини, але, мабуть, є кілька інших особливостей, які я пропустив. Звичайно, не рідкість бачити пристрій або фрагмент програмного забезпечення, що продається як балансир завантаження / зворотний проксі, оскільки функції так часто поєднуються разом.


2
+ об'єднання з'єднань (дозволити декілька запитів на одному підключенні фронтенду, коли бекенд не справляється з ним; або використовувати повторне підключення для декількох підключень
фронтеду

+ стиснення Стиснення відповідей сервера перед поверненням їх клієнту (наприклад, за допомогою gzip) зменшує необхідну пропускну здатність, яка прискорює їх транзит по мережі
dimuthu

25

Також зворотний проксі є специфічним для веб-серверів.

Однак балансири навантаження можуть мати справу з багатьма іншими протоколами. У той час як Інтернет (HTTP) - це велика ідея в даний час, такі речі, як DNS, пошта (SMTP, IMAP) тощо, також можуть бути збалансовані навантаження. Це саме сьогодні, коли більшість людей думають про "Інтернет" або "мережу IP", вони думають про Інтернет. Там є ще багато речей, які можуть бути більш незрозумілими або більше ніші.


12

Хоча чистий результат (розподіл запитів між серверами) однаковий між різними балансирами навантаження та зворотними проксі, різниця полягає в методі, який використовується для розподілу запитів.

Деякі балансири навантажень врівноважують трафік, використовуючи DNS, вирішуючи те саме ім’я для різних IP-адрес у круглої програми, ефективно переспрямовуючи запити. Це часто може бути корисним при завантаженні запитів на балансування між центрами обробки даних або іншими фізичними місцями. Це невдалий вибір, якщо вам потрібна "миттєва" помилка, оскільки ви на милості ваших клієнтів DNS-сервера, щоб вшанувати наданий вами TTL. GSS Cisco (Global Site Selector) - хороший приклад збалансування навантаження на основі DNS.

Інші балансири навантаження працюють за допомогою перезапису заголовків пакетів, призначених для віртуальної IP-адреси до реального IP-сервера на фермі. Це забезпечує балансування навантаження в режимі реального часу та майже миттєвий збій. Прикладом цього може бути CSM Cisco (модуль комутації вмісту)

Зауважте, що в обох наведених вище прикладах між клієнтом та сервером є розмова TCP.

Зворотний проксі працює, приймаючи запит від імені веб-сервера, потім відсилаючи його до веб-сервера та повертаючи його клієнтові, необов'язково кешуючи результати, якщо слід подібний запит.

Зауважте, що клієнт ніколи фактично не встановлює з'єднання з веб-сервером; швидше розмова суворо між проксі-сервером та клієнтом.


4

Балансир навантаження може врівноважувати трафік від рівня 3 вгору до рівня 7, але зворотний проксі - це HTTP.


3

Зворотний проксі - сервер приймає запит від клієнта, передає його на сервер , який може виконати його і повертає відповідь сервера до клієнта (що означає сервер позаду зворотного проксі може взаємодіяти з кілька різними особливостями протоколу або іншим протоколом ).

Балансування навантаження розподіляє вхідні запити клієнтів в групі серверів, в кожному разі повернення відповіді від обраного сервера до відповідного клієнта.


1
Отже, ви маєте на увазі балансир завантаження, важливо "зворотний проксі" з розподілом?
Ентоні Конг

4
Це пряме дублювання nginx.com/resources/glossary/reverse-proxy-vs-load-balancer або вони вкрали вашу відповідь, або вам слід посилатися на свої джерела
icc97
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.