我正在使用 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 多路复用器。
谢谢 !