Nginx 反向代理:读取非 HTTP 标头

Nginx 反向代理:读取非 HTTP 标头

我正在使用 nginx 作为反向代理,将所有服务放在端口 443 上。

我有各种服务,例如:

  • web :约 6 个网站/管理面板
  • SSH
  • 安全FTP
  • WireGuard
  • 将来也许还会有其他人……

我使用以下配置来分离网络流量和其他流量:

stream {

        upstream ssh {
                server localhost:<sshPort>;
        }

        upstream sftp {
                server localhost:<sftpPort>;
        }

        upstream vpn {
                server localhost:<WGPort>;
        }

        upstream web {
                server localhost:<X>;
        }

        map $ssl_preread_protocol $upstream {
                "" ssh;
                default web;
                "TLSv1.3" web;
                "TLSv1.2" web;
                "TLSv1.1" web;
                "TLSv1" web;
        }

        server {
                listen 443;
                listen 80;
                ssl_preread on;
                proxy_pass $upstream;
        }

}

X是第二个 nginx 配置运行的端口,用于根据子域分割网络流量。

问题是我一次只能启用一项非 TLS 服务,如果我想更改,我必须手动编辑配置并重新加载 Nginx。

所以这是我的问题是:是否有一个 nginx 命令/插件/替代方案可以读取 SSH 和 WireGuard 标头并将它们分离?我需要某种非 HTTP 多路复用器。

谢谢 !

相关内容