1 min read
nginxでSSHのリバースプロキシ
nginx 1.9.0からngx_stream_core_module
がサポートされるようになって可能になってたらしい
今頃知りました
リバースプロキシ用のnginxのコンフィグ
user hoge hoge;
worker_processes auto;
events {
......
}
http {
......
}
stream {
upstream git-ssh {
server 10.0.0.15:29418;
}
server {
listen 29418;
proxy_pass git-ssh;
}
}
こんなことができるようになってたらしい
私情
私は自分用のgitサーバーとしてGitbucketを利用している。
HTTPのアクセスはリバースプロキシ用のサーバーを経由させているのだが、SSHはリバースプロキシできなかったので、別途SSH用のサブドメインを用意してそちらから接続するようになっていた。
Git web: https://git.DOMAIN
Git ssh: ssh://git@git.ssh.DOMAIN
つまり上記のようになっていた。
しかしこれだと統一されてないしなんだかカッコ悪い。
そこでリバプロ鯖のnginxでSSHもリバースプロキシできないものかと模索したが当時はできなかった。
いつの間にか簡単にできるようになってて驚いたし、これでやっとgit.ssh.DOMAIN
を抜け出すことができる。