Можно ли использовать таблицы 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>
Больше документов здесь:
- Апачиmod_proxyдокументация
- VirtualHostsобщие настройки