У меня есть сервер, который служит некоторым другим системам через 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
Что мне делать?
Удалите 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