HAProxy HTTP проти TCP


17

HAProxy надає можливість встановити режим на TCP або HTTP. Це також дозволяє встановити порт.

То чому дозволити мені вибирати між HTTP та TCP, якщо це дозволяє мені також вибрати порт? Напевно, якщо я хотів HTTP, я міг просто вибрати TCP і порт 80?

Чому тільки TCP та HTTP? Здається, випливає, що HTTP не є TCP. Чому б не було TCP, HTTP, SNMP, FTP тощо, тощо, тощо.

Чому саме HTTP та TCP? Навіщо мати один із цих варіантів, якщо HTTP є TCP? Це дуже заплутано, і дійсно важко знайти будь-яку інформацію про збалансування завантаження послуг, що не належать до http (s).

Відповіді:


28

Використовуючи метод HTTP у конфігурації HAProxy, ви маєте доступ до декількох параметрів HTTP. Наприклад, ви можете вибирати різні програмні засоби на основі URL-адреси в HTTP-запиті. Вказуючи режим TCP, HAProxy не оцінює заголовки HTTP в пакеті.

Отже, ви можете точно використовувати TCP для HTTP-трафіку, але додаткові параметри HTTP не мали б. Як бічна примітка, якщо ви не використовуєте функції SSL, вам потрібно використовувати TCP для трафіку HTTPS, оскільки пакети зашифровані і HAProxy не може переглядати заголовки HTTP.


Спасибі. Це справді допомогло зрозуміти все це для мене. Ура.
marflar

6

Хтось написав повідомлення про це в блозі: http://www.linickx.com/645/load-balance-anything-with-haproxy

У будь-якому разі, я не знаю, чому люди, які підтримують haproxy, використовують вибраний ними синтаксис, мені це не подобається, оскільки я вважаю це оманливим (мовляв, щось може бути гвинтами HTTP або TCP з моїм мозком), але виявляється, ви Ви можете завантажити баланс що завгодно з HAProxy, а якщо це не HTTP (и), тоді просто перейдіть з TCP та правильним номером порту.


HTTP - це TCP на транспортному рівні, тому вся програма - це просто TCP з певною спеціалізацією для HTTP. Добре посилання, до речі.
Signus
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.