контекст
У меня есть личный сервер, который я использую для Интернета. Мне иногда нужно SSH/SFTP к нему.
Отказ от ответственности: у меня очень мало опыта работы с внутренностями nginx
.
проблема
Этим утром я выяснил, что бесплатный Wi-Fi в известной сети кафе блокирует SSH (фактически, они блокируют все, что не в 80/443). Но когда мне нужен SSH, он мне нужен, поэтому я искал способы совместного использования SSH и HTTPS на одном и том же порту.
На что я смотрел
Я рассмотрел несколько возможных решений, которые могут работать на порту 443:
SSHL
: мультиплексор SSH/OpenVPN/HTTPS;OpenVPN
: решение VPN имеет встроенный мультиплексор для OpenVPN и HTTPS;HAProxy
: веб-сервер / балансировщик нагрузки может также мультиплексировать все что угодно.
Все это кажется довольно простым, но мне не очень нравится факт добавления слоев и сложности и, возможно, замедления всего лишь в том маловероятном случае, когда мне нужно SSH на 443.
Положив nginx в смесь
Я знаю, что nginx
уже поддерживает обработку необработанных потоков TCP. Поэтому мне было интересно, смогу ли я использовать это на порту 443 слишком напрямую в nginx
. Идея в том, что nginx
может использовать модуль http
если он распознает HTTP(S) или stream
для всего остального.
Вопросы
В этом контексте у меня есть два вопроса:
- Способен ли
nginx
проводить такое различие? (Я даже не уверен, что смогу прослушивать порт 443 как вhttp
и вstream
блоке одновременно.) - Если так, будут ли какие-либо явные проблемы с производительностью с этой настройкой? (Например, я думаю о скорости передачи по SFTP, а не по SSH.)