Привет, я пытаюсь связать свой поддомен, например, mc.mywebsite.co.uk, как с моим игровым сервером, так и с веб-сайтом.
Мне удалось связать его с моим игровым сервером с помощью прокси-сервера virtualhost
/etc/apache2/sites-enabled/mc.mywebsite.co.uk.conf
<VirtualHost *:80>
ServerAdmin admin@domain.com
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
Я могу подключиться к игровому серверу в этом случае minecraft через mc.mywebsite.co.uk
Однако, когда я ввожу 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
Я все еще новичок в этом, так что извините, если я что-то пропустил. Вы, ребята, знаете, что я делаю не так?
Спасибо.
Скорее всего, вы даете minecraft URL-адрес mc.mywebsite.co.uk
, который DNS разрешает в YOUR_IP_ADDRESS:80
, поэтому он подключается к серверу minecraft через порт 80, который подключается через apache (или, что более вероятно, он просто сообщает запросу, куда ему нужно перейти) http://localhost:25565/
. Вам вообще не следует маршрутизировать запросы через apache, если только вы не размещаете несколько веб-сайтов, просто откройте порт 25565 на своем брандмауэре, а в minecraft подключитесь к серверу через mc.mywebsite.co.uk:25565, на который DNS разрешит YOUR_IP_ADDRESS:25565
которое является правильным местоположением вашего сервера шахтного ремесла. Любой, кто пытается получить доступ к вашему сайту, будет делать это через браузер, который будет нацелен на порт 80 (или 443, если ssl) и подключаться через 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 admin@domain.com
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.
подключитесь к minecraft с помощью mc.mywebsite.co.uk:420 и подключитесь к веб-сайту mc.mywebsite.co.uk