Использовать таблицы IP для переадресации портов за маршрутизатором?

Использовать таблицы IP для переадресации портов за маршрутизатором?

Можно ли использовать таблицы IP для переадресации портов за маршрутизатором?

Моя настройка такова: у меня есть Raspberry Pi, на котором запущен небольшой веб-сайт на порту 80, и более мощный компьютер, на котором запущен сервер Minecraft на порту 25565. Я настроил маршрутизатор так, чтобы он принимал запросы для каждого порта и перенаправлял их в нужное место, но у меня также есть «веб-сайт» Minecraft (с картой и т. п.), работающий на сервере Minecraft, также на порту 80. У меня также есть myurl.com.

Мой вопрос: используя таблицы IP, могу ли я сделать так, чтобы mc.myurl.com:80 перенаправлялся на сайт сервера Minecraft, а myurl.com:80 продолжал идти на Raspberry Pi? Как мне это настроить?

А что, если я уберу Raspberry Pi из уравнения? Будет ли mc.myurl.com пересылать на :81 на том же сервере? (Мне придется открывать :81 на маршрутизаторе?)

решение1

То, что вы ищете, этообратный прокси. Apache может это воспроизвестирольно я советую вам лучше использоватьNginxкоторый легче.

Вам нужно будет перенаправить порт 80на Raspberry Pi и настроить Nginx для проксирования запросов следующим mc.myurl.comобразом:

server {
  listen 80;
  server_name mc.myurl.com;

  location / {
    proxy_pass  http://my.mine.craft;
  }
}

См. NginxдокументацияБольше подробностей.

решение2

Вы можете использовать модуль обратного прокси Apache2. Это перенаправит входящие запросы от имени хоста сервера mc на другой http-сервер, который находится внутри вашей локальной сети. Это было бы проще, чем полагаться на брандмауэры.

Сначала установите модуль:

apt-get install libapache2-mod-proxy-html

Создайте 2 виртуальных хоста. Один будет отвечать на запросы вашего сайта, а другой будет проксировать трафик на ваш mc-сайт.

<VirtualHost YOUR.INTERNET.IP.ADDR:80>
    ServerAdmin [email protected]
    ProxyPreserveHost On
    ProxyPass / http://LAN.IP.YOUR.MC.SITE:PORT/
    ProxyPassReverse / http://LAN.IP.YOUR.MC.SITE:PORT/
    ServerName mc.myurl.com
</VirtualHost>

<VirtualHost YOUR.INTERNET.IP.ADDR:80>
  ServerAdmin [email protected]
  DocumentRoot /var/www/sites/my_site
  ServerName myurl.com
  ErrorLog logs/intranet-error_log
  CustomLog logs/intranet-access_log common
</VirtualHost>

Больше документов здесь:

Связанный контент