現在的互聯網公司一般不會直接本身直接配主機搭建服務器了,而是採用了相似阿里雲的這種雲主機,當應用變得愈來愈大了以後,就不可避免地增長主機,而出於成本考慮,不可能給每一臺主機都分配公網帶寬,因此實際的狀況可能會變成這樣: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客戶端不知曉本身的鏈接請求其實已經被轉交到一臺內網主機中了。代理