我正在努力让我的两台 Minecraft 服务器更易于访问。我尝试了一些解决方案,但到目前为止,没有一个有效。
我在 mysite.com:25560 上有一个普通的 Minecraft 服务器在监听,在 mysite.com:25570 上有一个 Tekkit Minecraft 服务器在监听。也就是说,两个 Minecraft 服务器都在同一台机器上运行。当用户使用指定的端口直接连接到服务器时,它们可以正常工作。
vanilla 服务器最初在 mysite.com:25565 上侦听,这是标准的 Minecraft 端口。我已对其进行了更改,因此我可以允许 Apache 在 mysite.com:25565 上侦听并适当地重定向流量,但到目前为止还没有奏效。
我想做的是将所有发送到 mine.mysite.com 的请求重定向到 mysite.com:25560,并将所有发送到 tekkit.mysite.com 的请求重定向到 mysite.com:25570。我了解 DNS 本身无法管理此重新路由,因为 DNS 仅处理域名和 IP 地址。
在朋友的建议下,我最近的尝试是重新配置 Apache,正如我之前所说,监听端口 25565 并将流量代理到正确的端口。这是我的 apache2.conf 的一部分:
Listen 25565
NameVirtualHost *:25565
<VirtualHost *:25565>
ServerName tekkit.mysite.com
ServerAlias www.mysite.com
<Proxy *>
Order allow,deny
Allow from all
</Proxy>
ProxyPreservehost On
# ProxyPass / www.mysite.com:25570/
ProxyPassReverse / mysite.com:25570/
</VirtualHost>
<VirtualHost *:25565>
ServerName mine.mysite.com
ServerAlias www.mysite.com
ProxyPreserveHost On
<Proxy *>
Order allow,deny
Allow from all
</Proxy>
# ProxyPass / mysite.com:25560/
ProxyPassReverse / mysite.com:25560/
</VirtualHost>
ProxyPass 注释掉的行会导致 Apache 以错误 ProxyPass URL must be absolute!
为了看看我是否能让它正常工作,然后我尝试在各个地方替换http://www.mysite.com:25560/60,虽然 Apache 确实启动没有任何错误,但用户无法连接到服务器. 我相信这是因为 Minecraft 服务器不会将 HTTP 请求重定向到服务器连接,无论可能是哪种协议。
这让我相信 Apache 在处理非 HTTP 请求方面没有帮助。如果我弄错了,如何让 Apache 正确地将子域流量重定向到端口?否则,任何人都可以建议一种没有 Apache 的方法吗?我可以访问所有标准的 Linux / Ubuntu 实用程序。我一直在寻找很长一段时间没有进展。
谢谢!