Предотвратить перенаправление поддоменов, созданных для Minecraft, на веб-сервер на машине.

Вопрос или проблема

Итак, у меня есть собственный сервер Windows, и на нем я использую Multicraft для хостинга нескольких серверов Minecraft. Я также приобрел домен через Google. У меня настроен поддомен для каждого экземпляра сервера Minecraft на разных портах, а также поддомен для веб-сервера Multicraft. Все домены работают нормально, но моя проблема заключается в том, что я хочу, чтобы multicraft.example.com направлял на веб-сервер, однако все другие поддомены, когда их вводят в веб-браузере вместо Minecraft, также направляют на панель управления Multicraft.

Я посмотрел на Перенаправление поддомена на сервер Minecraft, но это не решает мою проблему. У меня уже работают указатели с записями A и SRV для веб-сервера и сервера Minecraft. Но поскольку они находятся на одном IP, каждый поддомен для сервера Minecraft указывает на веб-сервер. Я хочу, чтобы только домен веб-сервера указывал на веб-сервер, а не поддомены Minecraft.

Когда вы указываете поддомен на IP-адрес, этот поддомен будет доступен для всех протоколов. Когда вы указываете поддомены для Minecraft на этом сервере, который хостит как Minecraft, так и веб-сервер, запросы HTTP и HTTPS для этих поддоменов Minecraft будут направляться на веб-сервер.

Один из способов предотвратить попадание поддоменов на веб-сервер — это разместить Minecraft и веб-сервер на отдельном сервере. Предположительно, вы не хотите использовать это решение, потому что это значительно увеличит ваши затраты.

Вы также можете получить второй IP-адрес для вашего сервера и настроить ваш сервер Minecraft и веб-сервер для двух IP-адресов. Большинство веб-серверов имеют возможность выбирать, к какому IP-адресу привязываться. Это также повлечет дополнительные расходы. (Дополнительные IP-адреса обычно имеют стоимость у вашей хостинг-компании.) В Multicraft есть настройка для выбора IP-адреса, к которому следует привязываться. Вы направите поддомен Minecraft на один IP-адрес, имя хоста веб-сервера Multicraft — на другой IP-адрес и убедитесь, что веб-сервер привязан только к одному IP-адресу.

Третье решение — это настройка виртуальных хостов. Когда веб-браузер подключается к веб-серверу по IP-адресу, он отправляет имя хоста, к которому он подключается. Это позволяет веб-серверу вести себя по-разному для различных имен хостов (например, предоставлять отдельный контент для каждого имени хоста). В вашем случае вы бы использовали эти виртуальные хосты, чтобы отображать страницы ошибок для всех, кроме одного желаемого поддомена.

К сожалению, я не вижу никаких настроек для виртуальных хостов в настройках Multicraft. Вам нужно будет запустить дополнительный веб-сервер, который поддерживает виртуальные хосты, и использовать обратный прокси для перенаправления запросов только для одного виртуального хоста на веб-сервер multicraft, который будет работать на каком-то нестандартном порту. Возможно, что Multicraft уже работает таким образом. В их инструкции есть ссылки на конфигурацию Apache. В их документации по безопасности есть некоторые дополнительные ссылки на Apache.

В любом случае вам нужно будет:

  1. Запустить Apache на портах 80/443
  2. Запустить отдельный сервер Multicraft на другом порту (например, 8080).
  3. Настроить виртуальный хост по умолчанию в Apache, который отображает страницу ошибки (например, 404 не найдено).
  4. Установить и включить mod_proxy (модуль прокси для Apache).
  5. Настроить виртуальный хост с обратным прокси. Конфигурация Apache будет выглядеть примерно так:
<VirtualHost>
   # Поскольку он идет первым в конфигурационном файле,
   # этот виртуальный хост является "виртуальным хостом по умолчанию"
   ServerName localhost
   # Вам нужно будет создать этот пустой каталог,
   # или выбрать другой пустой каталог для использования
   ServerRoot C:/xampp/htdocs/empty/
</VirtualHost>

<VirtualHost>
   ServerName multicraft.example.com
   ProxyPass "/" "http://localhost:8080/"
   ProxyPassReverse "/" "http://localhost:8080/"
</VirtualHost>

Ответ или решение

Чтобы предотвратить перенаправление поддоменов, созданных для Minecraft, на веб-сервер, вам необходимо рассмотреть несколько решений, каждое из которых имеет свои преимущества и недостатки.

1. Использование разных IP-адресов

Один из самых простых способов избежать этой проблемы – это получить второй IP-адрес для вашего сервера. Это даст вам возможность отдельно назначить IP-адреса для Minecraft и для Multicraft.

Шаги:

  1. Свяжитесь с вашим хостинг-провайдером и запросите дополнительный IP-адрес. Это может повлечь за собой дополнительные расходы.
  2. В конфигурации Multicraft установите нужный IP-адрес для Minecraft-серверов, чтобы они слушали только на этом IP.
  3. Настройте ваш веб-сервер (например, Apache или Nginx) так, чтобы он слушал только на другом IP-адресе, который вы назначите для вашего Multicraft.

2. Использование виртуальных хостов

Если вы хотите оставить ваш сервер на одном IP-адресе, вы можете воспользоваться функциональностью виртуальных хостов, если ваш веб-сервер это поддерживает.

Шаги:

  1. Установите и настройте веб-сервер (например, Apache или Nginx), чтобы он обрабатывал запросы на портах 80 и 443.
  2. Настройте Multicraft для работы на другом порту (например, 8080).
  3. Создайте виртуальный хост по умолчанию, который будет возвращать страницу ошибки (например, 404 Not Found) для всех доменных имен, кроме multicraft.example.com.
  4. Настройте виртуальный хост для вашего сервера Multicraft с использованием обратного прокси.

Пример конфигурации для Apache:

<VirtualHost *:80>
   ServerName localhost
   DocumentRoot "C:/path_to_your_empty_directory/"
</VirtualHost>

<VirtualHost *:80>
   ServerName multicraft.example.com
   ProxyPass "/" "http://localhost:8080/"
   ProxyPassReverse "/" "http://localhost:8080/"
</VirtualHost>

Для этого вам может потребоваться включить модуль mod_proxy в Apache, если он еще не включен.

3. Хостинг на разных серверах

Если ресурсный бюджет позволяет, наилучший вариант – разделение сервисов на разные виртуальные или физические машины. Это полностью исключит любые конфликты между веб-сервером и Minecraft-серверами.

Заключение

Каждое из предложенных решений имеет свои плюсы и минусы. Если у вас есть возможность минимизировать дополнительные расходы, стоит рассмотреть вариант с использованием разных IP-адресов, так как он будет наиболее простым в реализации. Если вы хотите сэкономить, используйте виртуальные хосты с обратным прокси. Надеюсь, это поможет вам решить вашу проблему!

Оцените материал
Добавить комментарий

Капча загружается...