我有一个服务器,它通过 LXD 为其他一些系统提供服务,使用 Nginx 作为反向代理在 HTTP 上访问它们。
现在我想将其中一个的 shell 访问权限授予朋友。事实上,我希望能够直接通过 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中看到的那样,流模块没有这样的东西想想看,stream 模块提供了通用的 TCP 代理功能。与 HTTP 主机标头或 TLS 服务器名称指示 (SNI) 扩展不同,TCP 没有虚拟主机的主机名概念。
如果您打算绑定到公共 IP 地址而
bbb.flossir.org
不是通配符地址,请使用:见https://nginx.org/en/docs/stream/ngx_stream_core_module.html#listen