现在的互联网公司一般不会直接本身直接配主机搭建服务器了,而是采用了相似阿里云的这种云主机,当应用变得愈来愈大了以后,就不可避免地增长主机,而出于成本考虑,不可能给每一台主机都分配公网带宽,因此实际的状况可能会变成这样:html
内网IP为10.51.15.12和10.51.15.13的两台主机并无外网带宽,一般是做为后端数据库服务器或者后端业务逻辑处理服务器使用,这样咱们会遇到一个问题:没法直接用SSH登陆这两台服务器,如何解决这个问题?——固然是借助带有公网IP的服务器“中转”一下了,以下图:nginx
考虑到SSH其实走的是TCP协议,咱们只须要在10.51.15.11上安装和配置一个TCP中转服务器便可,NGINX就具备这个功能。如何安装和配置NGINX请移步这里:简易NGINX TCP反向代理设置数据库
这里介绍的内容和上述文章没有太多不一样,仅仅在配置上有一点点不同(并且还更简单),编辑/etc/nginx/nginx.conf后端
stream{ upstream ssllink12{ server 10.51.15.12:22 max_fails=3 fail_timeout=10s; } upstream ssllink13{ server 10.51.15.13:22 max_fails=3 fail_timeout=10s; } server{ listen 1118; proxy_connect_timeout 20s; proxy_timeout 5m; proxy_pass ssllink12; } server{ listen 1119; proxy_connect_timeout 20s; proxy_timeout 5m; proxy_pass ssllink13; } }
配置很简单,意思也很明确,将链接至1118端口的TCP请求转至10.51.15.12:22,将链接至1119端口的TCP请求转至10.51.15.13:22。服务器
重启NGINX:tcp
systemctl restart nginx
若有必要,配置一下防火墙:阿里云
firewall-cmd --zone=public --add-port=1118/tcp --permanent firewall-cmd --zone=public --add-port=1119/tcp --permanent firewall-cmd --reload
而后直接用SSH试试看吧。spa
NGINX采用了“透明”的工做模式,以至SSH客户端不知晓本身的链接请求其实已经被转交到一台内网主机中了。代理