Пару дней потратил на то, чтобы настроить проксирование на openconnect сервер, чтобы он не занимал 443 порт.
Т. к. openconnect прикидывается обычным https сайтом, то слушает он соответственно 443 порт. А выделять целый vps под один openconnect жалко, хочется еще и хостить свои сайты 🤩
Казалось бы, просто заводишь nginx, который будет слушать 443 порт и проксировать запросы на openconnect и остальные твои сайты. Но нет.
Оказалось, важно иметь версию nginx с модулем ssl_preread (благо можно собрать в докере), настроить правильную работу с сертификатами и правильно проксировать данные, что в итоге оказалось невозможно при помощи одного лишь nginx 🤩
(думаю основная причина в необходимости proxy v2 для этого)
В итоге решилось все добавлением haproxy, который уже раскидывает запросы на openconnect и на nginx (этот уже сам разруливает дальше).
Инструкцию оставлю тут.
Было сложно. Особенно когда в сетях не особо шаришь. Кстати, пока копался узнал, что можно подцепиться из одного docker-compose файла к volume и network других контейнеров через параметр
external:true - кайф.