使用Nginx代理

时间:2017-10-16 10:22:11

标签: nginx ssh proxy docker-compose gitlab

我有一台只有Nginx和Docker的虚拟机。我收到了来自我的域名加密的证书。在docker容器里面我安装了一个GitLab。现在我正试图通过我的Nginx代理来访问GitLab。

我的问题是对GitLab的SSH访问,因为当我尝试通过Nginx中的流将SSH流量重定向到我的Docker时,我收到错误“地址已在使用中”。

在Docker中我有一个像“127.240.0.1:22:22”这样的地址,在Nginx中,我在TCP端口22上使用proxy_pass从gitlab.xyz重定向到127.240.0.1:22但这不起作用

你有什么建议吗? 谢谢!

1 个答案:

答案 0 :(得分:1)

可悲的是,这不会奏效。 HTTP(s)客户端发送一个Host头,指示他们试图访问的地址(gitlab.xyz)。

对于原始TCP,没有主机头,因此无法确定哪个容器应该接收请求。

您正在使用"地址已在使用"因为你的主机已经使用了端口22 / tcp。

我们遇到了同样的问题,并为主机提供了DNS-Alias重定向的第二个IP。我们知道这个IP的所有连接都应该转到gitlab。这意味着您甚至不需要反向代理,因为您只需将端口直接打开到容器中即可。 (-p new.gitlab.ip:22:22)