HAProxy дает вам возможность установить режим TCP или HTTP. Это также позволяет вам установить порт.
Так зачем мне выбирать между HTTP и TCP, если это позволяет мне выбирать и порт? Конечно, если бы я хотел HTTP, я мог бы просто выбрать TCP и порт 80?
Почему только TCP и HTTP? Похоже, это подразумевает, что HTTP - это не TCP. Почему бы не использовать TCP, HTTP, SNMP, FTP и т. Д. И т. Д. И т. Д.
Почему только HTTP и TCP? Зачем нужен любой из этих вариантов, если HTTP - это TCP? Это очень сбивает с толку, и действительно трудно найти какую-либо информацию о службах балансировки нагрузки, отличных от http (s).
Используя метод HTTP в конфигурации HAProxy, вы получаете доступ к нескольким параметрам, специфичным для HTTP. Например, вы можете выбрать разные серверные ВМ на основе URL-адреса в HTTP-запросе. При указании режима TCP HAProxy не оценивает заголовки HTTP в пакете.
Итак, вы определенно можете просто использовать TCP для HTTP-трафика, но у вас не будет дополнительных параметров HTTP. В качестве побочного примечания, если вы не используете функции SSL, вам необходимо использовать TCP для трафика HTTPS, потому что пакеты зашифрованы, и HAProxy не может просматривать заголовки HTTP.
Кто-то написал в блоге об этом: http://www.linickx.com/645/load-balance-anything-with-haproxy
В любом случае, я не знаю, почему люди, которые поддерживают haproxy, используют выбранный синтаксис, мне он не очень нравится, поскольку я считаю его вводящим в заблуждение (говоря, что что-то может быть HTTP или TCP винит мой мозг), но оказывается, что вы можете балансировать нагрузку с помощью HAProxy, и если это не HTTP (ы), просто используйте TCP и правильный номер порта.