1.前提
nginx > 1.15.2版本
2.實現的原理
nginx 1.15.2版本以后,新增了一個新特性$ssl_preread_protocol,可以讓tcp stream proxy區分web ssl/tls和其它協議;
3.配置方法
stream {
upstream ssh {
server 192.0.2.1:22;
}
upstream web {
server 192.0.2.2:443;
}
map $ssl_preread_protocol $upstream {
default ssh;
"TLSv1.2" web;
}
# SSH and SSL on the same port
server {
listen 443;
proxy_pass $upstream;
ssl_preread on;
}
}
這是利用nginx配置的四層負載均衡
4.此時登錄ssh的辦法改為
ssh ssh-server-ip-address -p 443
通過443端口,可以登錄ssh了