Nginx как шлюз SSH?

У меня есть сервер, который служит некоторым другим системам через LXD, с помощью Nginx в качестве обратного прокси для доступа к ним на HTTP.

Теперь я хочу предоставить доступ оболочки к одному из них другу. На самом деле я хочу смочь к непосредственно SSH в машину LXD, не соединяясь с основным сервером через SSH сначала.

Я использовал функцию потока Nginx как следующее:

stream {
upstream ssh {
    server 240.17.0.16:22;
}

server {
    listen 22;
    server_name bbb.flossir.org;
    proxy_pass ssh;
}
}

Но Nginx говорит, что не может обработать server_name в потоковом разделе:

nginx: [emerg] "server_name" directive is not allowed here in /etc/nginx/streams-enabled/bigbluebutton:7

Что мне делать?

0
задан 16 March 2020 в 09:59

1 ответ

Удалите server_name директива. Нет такой вещи для потокового модуля, как Вы видите в https://nginx.org/en/docs/stream/ngx_stream_core_module.html

Думайте об этом, потоковый модуль обеспечивает универсальную функциональность прокси TCP. TCP не имеет никакого понятия имен хостов для виртуального хостинга, в отличие от заголовка Хоста HTTP или расширения Признака имени сервера (SNI) TLS.

Если Вы означали связывать с общедоступным IP-адресом bbb.flossir.org в противоположность подстановочному адресу используйте:

listen bbb.flossir.org:22;

См. https://nginx.org/en/docs/stream/ngx_stream_core_module.html#listen

0
ответ дан 17 March 2020 в 00:01

Другие вопросы по тегам:

Похожие вопросы: