Nginx的一个端口同时跑SSH和HTTPS服务

这个要求挺古怪的,背景是防火墙只开了 nginx 443 端口。我也想同时 ssh 登录进去,但是F5没开IP

就只能这么干了,让 Nginx 一个端口跑多个服务

在 nginx.conf 加一段,stream 配置,nginx 的 ip 是 192.168.8.110:

 1
 2#Multi Ports
 3stream {
 4    upstream ssh {
 5        server 192.168.8.112:22;
 6    }
 7
 8    upstream https {
 9        server 192.168.8.111:443;
10    }
11
12    map $ssl_preread_protocol $upstream {
13        default ssh;
14        "TLSv1.2" https;
15        "TLSv1.3" https;
16        "TLSv1.1" https;
17        "TLSv1.0" https;
18    }
19
20    # SSH and SSL on the same port
21    server {
22        listen 443;
23
24        proxy_pass $upstream;
25        ssl_preread on;
26    }
27}
28

测试一下:

1curl -v https://192.168.8.110
2
3ssh 192.168.8.110 -p 443
4

这样就可以了。


Kubernetes创建普通账号
Sslh的一个端口同时跑多个服务
comments powered by Disqus