你好,我正在尝试将我的子域名(例如 mc.mywebsite.co.uk)链接到我的游戏服务器和网站。
我已成功使用虚拟主机代理将其链接到我的游戏服务器
/etc/apache2/sites-enabled/mc.mywebsite.co.uk.conf
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName mc.mywebsite.co.uk
ServerAlias mc.mywebsite.co.uk
ProxyRequests Off
#ProxyPass / http://localhost:25565/
<Location />
ProxyPreserveHost On
ProxyPass http://mywebsite.co.uk:25565/
ProxyPassReverse http://mywebsite.co.uk:25565/
</Location>
# Uncomment the line below if your site uses SSL.
#SSLProxyEngine On
我可以通过 mc.mywebsite.co.uk 连接到游戏服务器(在本例中为 minecraft)
但是当我在网络浏览器中输入 mc.mywebsite.co.uk 时出现以下错误
Proxy Error
The proxy server received an invalid response from an upstream server.
The proxy server could not handle the request GET /.
Reason: Error reading from remote server
Apache/2.4.18 (Ubuntu) Server at mc.mywebsite.co.uk Port 80
我对此还不熟悉,所以如果我遗漏了什么,请见谅。你们知道我做错了什么吗?
谢谢。
答案1
可能发生的情况是,您为 minecraft 提供了 url mc.mywebsite.co.uk
,DNS 将其解析为YOUR_IP_ADDRESS:80
,因此它通过端口 80 连接到 minecraft 服务器,而端口 80 又通过 apache 连接到 (或者更有可能的是,它只是告诉请求需要去哪里)http://localhost:25565/
。除非您托管多个网站,否则您根本不应该通过 apache 路由请求,只需在防火墙上打开端口 25565,然后在 minecraft 中通过 mc.mywebsite.co.uk:25565 连接到服务器,DNS 将解析为YOUR_IP_ADDRESS:25565
您的 mine craft 服务器的正确位置。任何试图访问您网站的人都会通过浏览器进行访问,浏览器将以端口 80(如果是 ssl,则为 443)为目标,并通过 apache 进行连接,您将在那里托管您的网站。
https://httpd.apache.org/docs/current/vhosts/examples.html
或者我想这样做
# Ensure that Apache listens on port 80
Listen 80
Listen 420
<VirtualHost *:80>
DocumentRoot "/www/html"
ServerName mc.mywebsite.co.uk
# Other directives here
</VirtualHost>
<VirtualHost *:420>
ServerAdmin [email protected]
ServerName mc.mywebsite.co.uk
ServerAlias mc.mywebsite.co.uk
ProxyRequests Off
#ProxyPass / http://localhost:25565/
<Location />
ProxyPreserveHost On
ProxyPass http://mywebsite.co.uk:420/
ProxyPassReverse http://mywebsite.co.uk:420/
</Location>
</VirtualHost>
但你明白我的意思吗?它只是接受端口 420 上的连接并将其发送到端口 25565。
使用 mc.mywebsite.co.uk:420 连接到 minecraft 并连接到 mc.mywebsite.co.uk 网站