Назад | Перейти на главную страницу

Что делать: терминатор ssl или просто haproxy?

Я пытаюсь понять, как настроить мою архитектуру для приложения socket.io, для которого потребуются соединения https и wss. Я нашел много руководств в Интернете, в которых предлагалось использовать что-то вроде шпильки или stunnel перед haproxy, который затем направляет ваш незашифрованный трафик в ваше приложение. Если бы я пошел по этому пути, предлагается ли, чтобы haproxy и терминатор ssl были в разных экземплярах, или это нормально, если они находятся на одном экземпляре сервера EC2?

Если я не хочу использовать отдельный терминатор ssl, могу ли я использовать haproxy для завершения ssl? Или вместо этого можно было бы проксировать эти https- и wss-подключения к моему приложению, и приложение узла завершило бы сам ssl?

Попробуйте haproxy-1.5-dev12, он поддерживает разгрузку SSL и облегчит вашу жизнь :-)

Последнее, что я проверил, у haproxy по-прежнему не было функции завершения SSL. Вот почему вы видите рекомендации поставить stunnel перед ним как способ предоставить именно эту функцию.

На мой взгляд, в целом нормально размещать stunnel и haproxy в одной системе. Даже микро-экземпляры EC2 могут управлять значительным объемом трафика SSL, а более крупные экземпляры справляются с этим еще лучше. Вы можете столкнуться с некоторыми проблемами в большом масштабе где количество сокетов, которые необходимо открыть для пересылки всего этого трафика, может достигать пределов, но это своего рода хорошая проблема.

Я знаю один балансировщик нагрузки с поддержкой SSL, и это Фунт. Не так много возможностей, как HAproxy, но если все, что вам нужно, это SSL-терминация и некоторые внутренние серверы, этого достаточно. Скорее всего, вам придется создавать свои собственные пакеты, чтобы это исключить.