Как можно правильно распределить нагрузку при использовании протокола HTTPS?

Как настроить HAProxy для перенаправления трафика на сервера с xray vless VPN (вроде бы прокси) с помощью SSL, так чтобы клиент подключался к одному серверу, который затем перераспределял нагрузку между другими серверами? Сейчас используются просто А записи в доменном имени для распределения нагрузки, но это решение неэффективно. HAProxy не перенаправляет трафик, и в браузере появляется SSL ошибка, даже после попыток изменить настройки. Как можно решить эту проблему?
  • 13 января 2024 г. 11:28
Ответы на вопрос 3
Для правильного распределения нагрузки при использовании HTTPS, вы можете использовать обратный прокси-сервер, такой как HAProxy, вместе с технологией SSL/TLS termination. Это позволит HAProxy принимать зашифрованные запросы от клиентов, расшифровывать их для анализа и затем перенаправлять на соответствующие сервера приложений.

Вот как можно настроить HAProxy для работы с xray vless VPN и SSL:

1. Установите и настройте TLS/SSL сертификат для вашего доменного имени на HAProxy. Обычно это делают с помощью системы Let's Encrypt и её инструмента Certbot, который может автоматически обновлять сертификаты.

2. Настройте HAProxy для SSL termination. Вам понадобится указать путь к сертификату и приватному ключу в конфигурационном файле HAProxy (`/etc/haproxy/haproxy.cfg`):

```haproxy
frontend https_in
  bind *:443 ssl crt /path/to/your/cert_and_key.pem
  mode tcp
  option tcplog
  default_backend xray_backend

backend xray_backend
  mode tcp
  balance roundrobin
  server xray1 192.168.1.1:443 check
  server xray2 192.168.1.2:443 check
  # Добавьте дополнительные сервера при необходимости
```

С этими настройками HAProxy будет принимать зашифрованные запросы на 443 порту, расшифровывать их используя предоставленный сертификат, и затем перенаправлять запросы на ваши сервера с xray vless VPN.

3. Проверьте, что у вас правильно настроенная цепочка сертификатов. Если HAProxy отправляет только свой собственный сертификат без промежуточных сертификатов, это может привести к ошибкам SSL/TLS в браузере. Используйте файл сертификата, который включает в себя и ваш SSL сертификат, и промежуточные сертификаты.

4. Проверьте, что ваш брандмауэр или система безопасности позволяет трафик на 443 порту и что нет никаких других систем, которые блокируют или препятствуют нормальной работе HAProxy.

5. После внесения изменений в файл конфигурации HAProxy, перезагрузите службу командой `sudo systemctl reload haproxy` или `sudo service haproxy reload`, чтобы применить изменения.

Обратите внимание, что если у вас проблемы с SSL/TLS на уровне клиента, вам также может понадобиться проверить, верно ли настроены сертификаты на самом сервере xray. Убедитесь, что SSL/TLS конфигурация согласуется как с HAProxy, так и с каждым конечным сервером.
Этот протокол не балансируется на основе SNI. Только на основе TCP 
Например - nginx stream...

На основе SNI - используйте другой протокол, например вебсокет

И Вы не указали конкретный протокол xray, т.к. на vless их несколько. Я давал ответ исходя из протокола xtls-rpx-vision
Имхо, в вашем случае как раз балансировка на уровне DNS - то что надо. Если, конечно, у вас не полтора клиента и ситуация "на одном сервере двое, на втором никого - и это проблема".
Похожие вопросы