我有一个VM,上面只有Nginx和Docker。我得到了我的域名的加密证书。在一个码头容器中,我安装了一个GitLab。现在,我正试图通过我的Nginx代理访问GitLab。
我的问题是对GitLab的SSH访问,因为当我试图通过Nginx中的流将SSH流量重定向到我的Docker时,我得到了“已在使用的地址”错误。
在Docker中,我有一个类似于" 127.240.0.1:22 : 22“的入口,在Nginx中,我将从gitlab.xyz重定向到127.240.0.1:22,其中proxy_pass位于TCP端口22上。但这不管用。
你有什么建议吗?谢谢!
发布于 2017-10-16 11:28:30
可惜这行不通。HTTP(s)客户端发送主机头,指示他们试图到达的地址(gitlab.xyz)。
对于原始TCP,不存在主机头,因此无法确定哪个容器应该接收请求。
您将得到“已在使用的地址”,因为您的主机已经使用了端口22/tcp。
我们也遇到了同样的问题,并为主机提供了第二个IP,DNS-Alias在其上重定向。我们知道这个IP的所有连接都应该去gitlab。这意味着您甚至不需要反向代理,因为您可以直接将端口打开到容器中。(-p new.gitlab.ip:22:22)
https://stackoverflow.com/questions/46768015
复制相似问题