我肯定不是第一个问这个问题的人,但我找不到任何完全适用于我的情况的东西。所以,如果这个问题之前已经有人问过了,我提前道歉。
我有一个刚刚用 Debian 8 设置的 VPS。它有一个 IP。我买了一个域名。
在那台服务器上,我运行着很多不同的服务。例如 GitLab 和 Apache。
Apache 和 GitLab 都在端口 80 上运行。
我是否可以通过 来使用 Apacheapache.mydomain.com:80
和 GitLab gitlab.mydomain.com:80
?
我知道我可以让 GitLab 使用不同的端口,但我真的希望它可以gitlab.mydomain.com
直接通过端口访问。这就是让我头疼的地方,因为我只能在防火墙中打开端口,无法将它们分配给子域等。
在搜索过程中,我还发现了Virtual hosts
,但这似乎是 Apache 特有的。我还发现了SVC Records
,但人们说浏览器还不支持这一点……这显然违背了目的。
答案1
我将在端口 80 上设置 apache,并添加一个 VirtualHostgitlab.mydomain.com。
然后使用 mod_proxy 设置 VirtualHost 为http://127.0.0.1:8080。
最后,设置 gitlab 来监听 127.0.0.1。
在 GitHub 上为您找到了一个示例:https://gist.github.com/radmen/3689615
答案2
如果你需要在同一端口 443 上运行 Apache 和 OpenVPN,那么请查看sslh - 应用协议多路复用器。
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)。 有关于如何配置 SSLH 的说明,请参见第 4 页第二篇文章。
但是,如果您不打算在该服务器上运行的任何 VirtualHosts 上支持 https,您可以在 Apache 配置中禁用它,并将 OpenVPN 配置为使用端口 443。