Ist es möglich, IP-Tabellen zur Portweiterleitung hinter einem Router zu verwenden?
Mein Setup sieht folgendermaßen aus: Ich habe einen Raspberry Pi, auf dem eine kleine Website auf Port 80 läuft, und einen leistungsstärkeren Computer, auf dem ein Minecraft-Server auf Port 25565 läuft. Ich habe den Router so eingerichtet, dass er Anfragen für jeden Port entgegennimmt und sie an den richtigen Ort weiterleitet, aber ich habe auch eine Minecraft-Website (mit der Karte und so), die auf dem Minecraft-Server läuft, ebenfalls auf Port 80. Außerdem habe ich myurl.com.
Meine Frage ist: Kann ich mithilfe von IP-Tabellen mc.myurl.com:80 an die Website des Minecraft-Servers weiterleiten lassen, während myurl.com:80 weiterhin an den Raspberry Pi geht? Wie richte ich das ein?
Was passiert, wenn ich den Raspberry Pi aus der Gleichung entferne? Soll mc.myurl.com an :81 auf demselben Server weitergeleitet werden? (Muss ich :81 auf dem Router öffnen?)
Antwort1
Was Sie suchen, ist einReverseproxy. Apache kann das spielenRolleaber ich rate Ihnen, besser zu verwendenNginxwas leichter ist.
Sie leiten den Port 80
zu Ihrem Raspberry Pi um und richten Nginx so ein, dass die Anfragen wie mc.myurl.com
folgt weitergeleitet werden:
server {
listen 80;
server_name mc.myurl.com;
location / {
proxy_pass http://my.mine.craft;
}
}
Siehe Nginx'sDokumentationfür mehr Details.
Antwort2
Sie könnten das Reverse-Proxy-Modul von Apache2 verwenden. Dadurch werden eingehende Anfragen vom MC-Server-Hostnamen an einen anderen HTTP-Server umgeleitet, der sich in Ihrem LAN befindet. Das wäre eine einfachere Idee, als sich auf Firewalls zu verlassen.
Installieren Sie zuerst das Modul:
apt-get install libapache2-mod-proxy-html
Erstellen Sie zwei virtuelle Hosts. Einer wird auf Ihre Site-Anfragen antworten und der andere wird den Datenverkehr an Ihre MC-Site weiterleiten.
<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>
Weitere Dokumente hier:
- Apachemod_proxyDokumentation
- Virtuelle HostsGemeinsame Setups