背景:公司有一套工作流服務(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,從遠程拉取代碼查看是否成功。