这个要求挺古怪的,背景是防火墙只开了 nginx 443 端口。我也想同时 ssh 登录进去,但是F5没开IP
就只能这么干了,让 Nginx 一个端口跑多个服务
在 nginx.conf 加一段,stream 配置,nginx 的 ip 是 192.168.8.110:
#Multi Ports
stream {
upstream ssh {
server 192.168.8.112:22;
}
upstream https {
server 192.168.8.111:443;
}
map $ssl_preread_protocol $upstream {
default ssh;
"TLSv1.2" https;
"TLSv1.3" https;
"TLSv1.1" https;
"TLSv1.0" https;
}
# SSH and SSL on the same port
server {
listen 443;
proxy_pass $upstream;
ssl_preread on;
}
}
测试一下:
curl -v https://192.168.8.110
ssh 192.168.8.110 -p 443
这样就可以了。