GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie leite ich Subdomains auf einen anderen Port auf demselben Server um?

Lösung 1:

Lösung

Hier ist, was ich schließlich herausgefunden habe, nachdem ich von Miles Erickson in die richtige Richtung gelenkt worden war. Ich wollte, dass die Adressleiste die ursprüngliche Subdomain/Domain der Anfrage widerspiegelt und nicht den umgeleiteten Server und Port, aber er brachte mich auf den richtigen Weg, um mit VirtualHost eine Lösung von Google zu finden und ich habe schließlich eine Lösung gefunden, die die Verwendung von mod_proxy beinhaltete .

<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName dev.mydomain.com
    ProxyPreserveHost On

    # setup the proxy
    <Proxy *>
        Order allow,deny
        Allow from all
    </Proxy>
    ProxyPass / http://localhost:8888/
    ProxyPassReverse / http://localhost:8888/
</VirtualHost>

Lösung 2:

Führen Sie die folgende Zeile auf dem Terminal aus (geben Sie Ihren Domänen- und Subdomänennamen korrekt an)

sudo nano /etc/apache2/sites-available/subdomain.example.com.conf 

Fügen Sie den folgenden Code ein und ändern Sie ihn entsprechend Ihrer Anforderung

<VirtualHost *:80>
        ServerAdmin [email protected]
        ServerName subdomain.example.com
        ServerAlias subdomain.example.com
        ProxyRequests Off

        #ProxyPass / http://localhost:8080/
        <Location />
                ProxyPreserveHost On
                ProxyPass http://example.com:8080/
                ProxyPassReverse http://example.com:8080/
        </Location>
     # Uncomment the line below if your site uses SSL.
     #SSLProxyEngine On
</VirtualHost>

Führen Sie die folgenden Zeilen auf dem Terminal aus (geben Sie Ihren Domänen- und Subdomänennamen korrekt an)

sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2ensite subdomain.example.com.conf
sudo service apache2 restart

Lösung 3:

Unter der Annahme, dass dev.mydomain.com in die IP von mydomain.com aufgelöst werden kann, könnten Sie Folgendes zu Ihrer httpd.conf hinzufügen:

NameVirtualHost *:80

<VirtualHost *:80>
    ServerName dev.mydomain.com
    redirect / http://mydomain.com:8080/
</VirtualHost>

Relevante Apache-Dokumentation:

  1. Anleitung zum Erstellen namensbasierter virtueller Hosts
  2. Kern, einschließlich VirtualHost und NameVirtualHost
  3. Weiterleitung

Verwandte Frage:Apache-Umleitung basierend auf Hostname

(Hinweis:Die Originalversion dieser Antwort schlug fälschlicherweise die Verwendung von RedirectMatch vor, das, wie @ChrisS hilfreich darauf hingewiesen hat, den Domänenteil der URL nicht analysieren kann.)

Lösung 4:

Fügen Sie in Ihrer Haupt-vhost-Konfiguration die folgenden Zeilen hinzu:

ProxyPreserveHost On
ProxyPass / http://example.com:8080/
ProxyPassReverse / http://example:8080/

Beachten Sie, dass dies mod_proxy auf Apache erfordert.

Lösung 5:

Sie suchen nach mod_rewrite. Hier ist der Link zur Apache-Dokumentation, die viele Beispiele für grundlegende und erweiterte Konfigurationen enthält..

Und wenn Sie die Dokumentation nicht selbst interpretieren können, versuchen Sie, dies zu httpd.conf:

hinzuzufügen
RewriteEngine on
RewriteCond %{HTTP_HOST} ^dev\.example\.com$ [NC]        
RewriteRule ^(.*)$ http://example.com:8080$1 [R=301]    

Und wenn das kein klares Beispiel ist, hier ist auch ein Link zu einem mod_rewrite-Anfängerleitfaden.


Linux
  1. Wie leite ich stderr und stdout in verschiedene Dateien in derselben Zeile im Skript um?

  2. Wie leitet man die Ausgabe von system() in eine Datei um?

  3. Wie starte ich den Tomcat-Server unter Linux?

  4. Wie kann ich demselben Computer je nach Betriebssystem unterschiedliche statische IP-Adressen zuweisen?

  5. Wie wird die Portweiterleitung von einer IP zu einer anderen IP im selben Netzwerk durchgeführt?

So stoppen Sie einen Spam-Server

So installieren Sie mehrere Discourse-Container auf demselben Server

So hosten Sie mehrere WordPress-Sites auf demselben Server mit Docker

So ändern Sie den Server-Hostnamen in Ubuntu

So ändern Sie den SSH-Port in CentOS

Wie ändere ich die Zeitzone auf Ubuntu 18.04 Server?