只有一个IP在不同子域上运行多个网站/服务

我相信我不能成为第一个问这个问题的人,但是我找不到能完全适用于我的情况的任何东西。 所以我提前道歉,以防这个问题发生之前。

我有一个VPS,我刚刚用debian 8build立。它有一个IP。 我买了一个名。
在那台服务器上,我运行了很多不同的服务。 例如GitLab和Apache。

Apache和GitLab都在端口80上运行。

有没有可能通过apache.mydomain.com:80和GitLab通过gitlab.mydomain.com:80让Apache可用?

我知道我可以让GitLab使用不同的端口,但我真的希望它可以直接通过gitlab.mydomain.com访问。 这就是扭曲我的思想,因为我只能打开我的防火墙的端口,我不能将它们分配给一个子域名等等。
在我的search过程中,我也发现了Virtual hosts ,但这似乎是Apache特有的。 我也发现有关SVC Records ,但人们说,浏览器并不真正支持,但是……这明显将打败目的。

我将在端口80上设置Apache,并为gitlab.mydomain.com添加一个VirtualHost。

然后使用mod_proxy将该VirtualHost设置为http://127.0.0.1:8080

最后,设置gitlab在127.0.0.1上进行监听。

在GitHub上为你find一个例子: https : //gist.github.com/radmen/3689615

如果您需要在同一个端口443上同时运行Apache和OpenVPN,请查看sslh – Applicative协议多路复用器 。

在LinuxJournal有两篇关于它的文章:一篇是短篇编辑( http://www.linuxjournal.com/content/one-port-rule-them-all ),另一篇文章解释了如何将Raspberry-Pi设置为安全的着陆点( http://www.linuxjournal.com/content/securi-pi-using-raspberry-pi-secure- landing-point)。 有关如何在第二篇文章的第4页上configurationSSLH的解释。

但是,如果您不打算在该服务器上运行的任何VirtualHost上支持https,则可以在Apacheconfiguration中将其禁用,并将OpenVPNconfiguration为使用端口443。