Hallo nochmal, StackExchange! Erster Beitrag auf Superuser.
Ich habe Apache und PHP auf meinem Computer installiert und es funktioniert einwandfrei, wenn ich „localhost“ auf meinem Computer eingebe. Aber ich möchte, dass jemand, wenn er etwas eingibt, http://<my ip>:<random port number that isn't used>
dorthin weitergeleitet wird http://localhost/internet/
. Wie mache ich das mit der Portweiterleitung? Und was muss ich in Apache konfigurieren?
Ich weiß, dass dies möglicherweise die Frage Nr. 87465094 zur Portweiterleitung ist, aber ich habe weder hier bei Superuser noch sonst im Internet Lösungen für mein Problem gefunden.
Das
Antwort1
Erstens vermischen Sie zwei Konzepte zu einer Idee.
- TCP/IP-Portweiterleitung
- HTTP-Umleitung
Durch die Kombination beider Konzepte können Sie Ihr gewünschtes Ergebnis erzielen, es handelt sich jedoch um unterschiedliche Konzepte.
HTTP-Umleitung
Ignorieren wir also vorerst die Portweiterleitung. Richten wir zuerst den Umleitungsteil ein.
$ sudo editor /etc/apache2/sites-available/thews_site
Dadurch wird eine neue Konfigurationsdatei für einen neuenWebsiteKonfiguration in Apache. Darin können wir die gesamte Konfiguration für unsere Site platzieren.
Unser VirtualHost
Lassen Sie uns Ihre neue Apache-Site definieren:
NameVirtualHost *:12345
<VirtualHost *:12345>
Redirect / http://www.superuser.com
</VirtualHost>
Dadurch wird eine neue Site erstellt, die über jede lokale IP-Adresse erreichbar ist, abernuram Hafen 12345
.
Die Site-Definition selbst ist ziemlich kurz. Sie hat nur einen Konfigurationseintrag. Die Weiterleitung zur Zielsite.
Apache-Port-Konfiguration
Wir müssen Apache auch anweisen, auf unserem neuen Port zu lauschen!
$ sudo echo "Listen 12345" >> /etc/apache2/ports.conf
Dadurch wird die Zeile Listen 12345
am Ende von hinzugefügt /etc/apache2/ports.conf
. Alternativ können Sie sie selbst mit einem Texteditor hinzufügen.
Jetzt aktivieren wir die Site
$ sudo a2ensite thews_site
$ sudo invoke-rc.d apache2 restart
Dadurch wird unsere zuvor definierte Site wie folgt festgelegt:ermöglicht. Der zweite Befehl startet Apache neu.
Testen
Wenn Sie http://localhost:12345
jetzt Ihren Browser aufrufen, sollten Sie zu weitergeleitet werden superuser.com
!
Port-Weiterleitung
Jetzt können Sie diePort-Weiterleitung. Das können Sie auf Ihrem Router tun. Sagen Sie Ihrem Router, dass er Ihren öffentlichen Port 33333
an Ihren lokalen Port weiterleiten soll 12345
.
Wenn nun jemand surfen würde zuyour-public-ip:33333
Siewerden Sie weitergeleitet zu superuser.com
.
Diese Beispiele waren alle für Debian-basierte Umgebungen. Hoffentlich können Sie sie bei Bedarf anpassen.
Viel Glück :)