nginx 轉發tcp連接


背景:公司有一套工作流服務(jira,confluence,bitbucket),目前jira,confluence配置的是從nginx網關進行轉發,bitbucket配置的是直接解析到該主機,現在計划通過nginx對bitbucket服務請求進行轉發,一來能夠關閉服務器的外網,節省服務器費用;二來方便管理,只需要調整nginx服務器的帶寬。

需求:解決bitbucket 拉取代碼的ssh請求。

調研:nginx支持tcp四層轉發,支持模塊:stream,條件:nginx 版本 >=1.9。

nginx默認未編譯到nginx,可通過 命令:nginx -V |grep stream  查看。

如果nginx stream模塊是靜態方式加載,需手動在配置文件(nginx.conf)中添加:

load_module '/usr/lib64/nginx/modules/ngx_stream_module.so';

:load_module 不能放在events{} 的后面。

由於stream模塊與http模塊處於同一級,所有stream模塊不能添加到http模塊內,需單獨配置。

查看配置:

/etc/nginx/tcp.d/bitbucket-ssh.conf

stream {
   upstream bitbucket-ssh {
      server 172.18.73.207:7999;
  }

server {
    listen       7999;
    proxy_pass   bitbucket-ssh;
}
}

配置完成,重載配置:nginx -s reload。

驗證配置:

本地手動綁定host,從遠程拉取代碼查看是否成功。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM