我正在设置 Gitlab 服务器(https://about.gitlab.com/) 在 Ubuntu 14.04 主机上使用 KVM 在虚拟机内进行通信。我的大学会向我们收取每个外部 IP 地址的费用,因此我无法使用桥接网络并让每个虚拟机直接与外界通信。相反,我必须使用 NAT,主机必须处理所有入站流量。
对于 HTTP,这不是什么大问题。我使用 Nginx 和 dnsmaq 设置了一个反向代理,以根据子域引导流量(例如,git.example.com 将转到 Gitlab 服务器)。但 Gitlab 服务器还需要入站 SSH 连接才能使 git 工作。我甚至发现 Nginx 似乎只为 HTTP/S 连接提供反向代理,我不能将它用于 SSH。Gitlab 服务器在端口 22 上可用也很重要,因为否则所有用户都必须被指示使用不同的端口。
有人知道我是否可以使用带有 mod_proxy 的 Apache 来实现此解决方案或其他解决方案吗?理想的设置将根据子域引导 SSH 流量,使其ssh example.com
到达主机、ssh git.example.com
git 服务器等。