Ich habe seit einiger Zeit damit zu kämpfen und mache definitiv etwas falsch.
Ich habe einen Apache-Server und einen JBoss-Server auf demselben Computer. Ich möchte den Datenverkehr für mydomain.com an JBoss localhost: 8080 / example umleiten. Das DNS ist derzeit für mydomain.com eingerichtet und wird bei Eingabe in den Browser direkt an Port 80 weitergeleitet.
Meine Frage ist, wie ich zu einem anderen Port umleiten kann, wenn ein bestimmter Domainname zu Apache kommt (in diesem Fall "mydomain.com").
<VirtualHost ip.addr.is.here>
ProxyPreserveHost On
ProxyRequests Off
ServerName mydomain.com
ProxyPass http://mydomain.com http://localhost:8080/example
ProxyPassReverse http://mydomain.com http://localhost:8080/example
</VirtualHost>
AKTUALISIERT mit Vorschlägen - Weiterleitung an Port 8080
<VirtualHost *:80>
ProxyPreserveHost On
ProxyRequests Off
ServerName mydomain.com
ServerAlias www.mydomain.com
ProxyPass http://mydomain.com http://localhost:8080/example
ProxyPassReverse http://mydomain.com http://localhost:8080/example
</VirtualHost>
Antworten:
Sie sollten die Domain
http://example.com
in ProxyPass und ProxyPassReverse weglassen und als belassen/
. Außerdem müssen Sie das/
am Ende derexample/
Umleitung belassen. Außerdem hatte ich einige Probleme mithttp://example.com
vs.http://www.example.com
- nur das WWW funktionierte, bis ich den Servernamen www.example.com und den ServerAlias example.com erstellte. Probieren Sie Folgendes aus.Nachdem Sie diese Änderungen vorgenommen haben, fügen Sie die erforderlichen Module hinzu und starten Sie Apache neu
quelle
/usr/sbin/setsebool -P httpd_can_network_connect 1
Ich habe dieses Problem mit dem folgenden Code gelöst:
Ich habe auch verwendet:
quelle
Ich wollte genau das tun, damit ich von der Root-Domain aus auf Jenkins zugreifen kann.
Ich musste die Standardwebsite deaktivieren, damit dies funktioniert. Genau das habe ich getan.
Und fügen Sie dies in die Datei ein:
Als nächstes müssen Sie die entsprechenden Sites aktivieren / deaktivieren:
Hoffe es hilft jemandem.
quelle
Fand dies durch Versuch und Irrtum heraus. Wenn in Ihrer Konfiguration ein Servername angegeben ist, muss Ihre VirtualHost-Direktive dasselbe tun. Im folgenden Beispiel werden awesome.example.com und Amazing.example.com an einen lokalen Dienst weitergeleitet, der auf Port 4567 ausgeführt wird.
Ich weiß, dass dies die Frage nicht genau beantwortet, aber ich stelle sie hier ein, da dies das beste Suchergebnis für die Weiterleitung von Apache-Ports ist. Also denke ich, dass es eines Tages jemandem helfen wird.
quelle
*:80
stattexample.com:80
bedeutet, dass der Port nicht umgeleitet wird.Sie müssen sicherstellen, dass der Proxy auf dem Server aktiviert ist. Sie können dies mit den folgenden Befehlen tun:
quelle
Dies mag eine alte Frage sein, aber hier ist, was ich getan habe:
In einer von Apache geladenen .conf-Datei:
Erläuterung: Lauschen Sie alle Anforderungen an den Port 80 des lokalen Computers ab. Wenn ich "
http://something.com/somethingorother
" angefordert habe , leiten Sie diese Anforderung an "http://localhost:8080/somethingorother
" weiter. Dies sollte für einen externen Besucher funktionieren, da die Remote-Anforderung gemäß den Dokumenten dem Speicherplatz des lokalen Servers zugeordnet wird.Ich verwende Apache 2.4.6-2ubuntu2.2, daher bin ich mir nicht sicher, wie sich "-2ubuntu2.2" auf die breitere Anwendbarkeit dieser Antwort auswirkt.
Nachdem Sie diese Änderungen vorgenommen haben, fügen Sie die erforderlichen Module hinzu und starten Sie Apache neu
quelle
Wenn Sie keinen Proxy für JBoss verwenden müssen und mydomain.com:8080 der Welt "ausgesetzt" sein kann, würde ich dies tun.
quelle
Verwenden Sie einfach einen Reverse Proxy in Ihrer Apache-Konfiguration (direkt):
Hier finden Sie eine Apache-Dokumentation zur Verwendung des Mods
quelle
Mein Apache lauscht 2 verschiedenen Ports,
Ich verwende die 80, wenn ich eine transparente URL möchte, und setze den Port nicht nach der URL, die für Google-Dienste nützlich ist, die keine lokale URL zulassen.
Aber ich benutze den 8080 für die interne Entwicklung, wo ich den Port als Referenz für eine "Entwicklungsumgebung" benutze.
quelle
Apache unterstützt namenbasierte und IP-basierte virtuelle Hosts. Es sieht so aus, als würden Sie beide verwenden, was wahrscheinlich nicht das ist, was Sie brauchen.
Ich denke, Sie versuchen tatsächlich, ein namenbasiertes virtuelles Hosting einzurichten , und dafür müssen Sie die IP-Adresse nicht angeben.
Versuchen Sie, <VirtualHost *: 80> an alle IP-Adressen zu binden, es sei denn, Sie möchten wirklich ein IP-basiertes virtuelles Hosting . Dies kann der Fall sein, wenn der Server mehrere IP-Adressen hat und Sie verschiedene Sites an verschiedenen Adressen bedienen möchten. Das häufigste Setup sind (ich würde vermuten) namenbasierte virtuelle Hosts.
quelle
Du brauchst 2 Dinge:
ServerAlias www.mydomain.com
Ihrer Konfiguration ein hinzuProxyPassMatch ^(.*)$ http://localhost:8080/example$1
, um möglicherweise zu verhindern, dass mod_dir und nachfolgende Schrägstriche stören.quelle
Alle bieten hervorragende Einblicke in den Zugriff auf Ports über Domänennamen auf virtuellen Servern. Vergessen Sie jedoch nicht, virtuelle Server zu aktivieren. dies kann auskommentiert werden:
Wir führen WSGI mit einem Apache-Server in der Domäne sxxxx.com und einem Golang-Server in Port 6800 aus. Einige Firewalls scheinen Domänennamen mit Ports zu blockieren. Dies war unsere Lösung:
quelle
Dies funktioniert auch in ISPConfig. Klicken Sie in der Website-Liste innerhalb einer Domain auf die Registerkarte Optionen und fügen Sie die folgenden Zeilen hinzu :;
Dann gehe zur Website und wolaa :) Dies funktioniert auch mit dem HTTPS-Protokoll.
quelle
Probier diese-
quelle