Subdomain mit Domain und Port verbinden

pcartisHD

Lieutenant
Registriert
Jan. 2015
Beiträge
621
Hallo,

Also ich möchte eine Subdomain erstellen für ne extra seite die aber auf einem anderen Port läuft
die beiden seiten laufen auf dem selben server

also Quasi
das die Subdomain auf eine seite mit port zugreift z.b. webmin wo der port 10.000 ist
über normal DNS funktioniert das nicht und auch nicht wenn ich ein SRV Record hinzufüge mit dem Port

also ich möchte das es so aussieht

Domain > IP: 55.555.5.555 > www.domain.de ( Funktioniert auch mit SSL-Zertifikat )
Subdomain > 55.555.5.555:10000 > www.admin.domain.de

und bei den Subdomain komme ich nicht weiter, oder finde nicht heraus wie ich das einstellen kann
da die normale IP unter den Ordner var/www/html...... ist
und die selbe IP nur mit Port auch in einem anderen Ordner ist

also ich möchte nicht sowas machen wie die meisten mit TeamSpeak oder Minecraft
sondern direkt über den Browser verbinden

-------------------------------------------------------------------------------------------------------

Info:
Ich benutze Debian 10 mit Apache

-------------------------------------------------------------------------------------------------------

MFG
 
Zuletzt bearbeitet:
Hi,

EDIT: LinuXfr3ak hat da recht, da du ja nur 1. Webserver hast. Meine Lösung wäre wenn du mehrere Server hast die Dienste bereitstellen.


Für so etwas benötigst du im Normalfall einen Reverse Proxy.

Dieser ist über 80/443 von aussen erreichbar also ohne Extra Port Angaben hinter Domain.

Für eine Subdomain erstellst du dann eine Konfiguration die beim Aufrufen dieser Domain die Anfrage über 80/443 an den gewünschten Webserver unter z.b. 9980/99443 weiterleitet.

Gruß
 
LinuXfr3ak schrieb:

und wie soll ich dann die Subdomain verbinden ?
wenn der port eingefügt ist ?

weil ich muss ja in der Subdomain ja auch den Port irgendwie eintragen
weil ich will ja mit der subdomain nicht auf die startseite von meiner hompage kommen sonder direkt zum Webmin

oder verstehe ich da grade was Falsch ?
 
Wenn ich dich richtig verstehe, brauchst du dafür ein Reverse-Proxy. Der erkennst die Domain und leitet die Anfrage entsprechend weiter.
Mit der Syntax kenn ich mich nicht genau aus, spontan habe ich das für nginx gefunden:
Code:
http {
    server {
        listen        80;
        server_name       service1.domain.com;
        location / {
            proxy_pass       http://192.168.0.2:8181;
            proxy_set_header   host  service1.domain.com
        } 
    }
    server {
        listen        80;
        server_name       service2.domain.com;
        location / {
            proxy_pass       http://192.168.0.3:8080;
            proxy_set_header     host service2.domain.com;
        } 
    }
}
https://stackoverflow.com/questions/18716086/nginx-config-for-redirecting-domain
IPs, Ports und Domains entsprechend anpassen.
 
Warum der Aufwand? Das kann man doch auch so haben.
vhost 1 = www.domain.de:80 und vhost 2 = admin.domain.de:80 sind überhaupt kein Problem, auch nicht auf derselben Maschine.
 
Minimal sinnvolle Config für den Apache:

Bash:
*** api.example.com.conf ***
<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName api.example.com

    DocumentRoot /var/www/vhosts/api.example.com/

    <Directory /var/www/vhosts/api.example.com/>
        Options -Indexes +FollowSymLinks +MultiViews
        AllowOverride All
        DirectoryIndex index.php
        Order allow,deny
        allow from all
    </Directory>

</VirtualHost>

*** media.example.com.conf ***
<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName media.example.com

    DocumentRoot /var/www/vhosts/media.example.com/

    <Directory /var/www/vhosts/media.example.com/>
        Options -Indexes +FollowSymLinks +MultiViews
        AllowOverride All
        DirectoryIndex index.php
        Order allow,deny
        allow from all
    </Directory>

</VirtualHost>

unter sites-available, wir betreiben 30+ Seiten mit dieser Methode^^

edit:
wenn dann admin.domain.de
 
  • Gefällt mir
Reaktionen: VinylUndKoffein
Fombu schrieb:
Minimal sinnvolle Config für den Apache:

Bash:
*** api.example.com.conf ***
<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName api.example.com

    DocumentRoot /var/www/vhosts/api.example.com/

    <Directory /var/www/vhosts/api.example.com/>
        Options -Indexes +FollowSymLinks +MultiViews
        AllowOverride All
        DirectoryIndex index.php
        Order allow,deny
        allow from all
    </Directory>

</VirtualHost>

*** media.example.com.conf ***
<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName media.example.com

    DocumentRoot /var/www/vhosts/media.example.com/

    <Directory /var/www/vhosts/media.example.com/>
        Options -Indexes +FollowSymLinks +MultiViews
        AllowOverride All
        DirectoryIndex index.php
        Order allow,deny
        allow from all
    </Directory>

</VirtualHost>

unter sites-available

also wenn ich das richtig verstehe, muss ich die subdomain anlegen und in Apache den port da eintragen
den Rest macht der server ?
 
pcartisHD schrieb:
und wie soll ich dann die Subdomain verbinden ?
wenn der port eingefügt ist ?

weil ich muss ja in der Subdomain ja auch den Port irgendwie eintragen
weil ich will ja mit der subdomain nicht auf die startseite von meiner hompage kommen sonder direkt zum Webmin

oder verstehe ich da grade was Falsch ?

Je nach Webserver muss man einen "ServerName" angeben, damit unterscheidet der Webserver welche Virtualhost angesprochen wird (SNI: https://de.wikipedia.org/wiki/Server_Name_Indication)
 
Minimale Config:
In /etc/apache2/sites-available/000-default.conf unten einfügen:

Code:
<VirtualHost *:80>
        ServerAdmin webmaster@domain.de
        DocumentRoot "/var/www/www"
        Servername www.domain.de
</VirtualHost>

<VirtualHost *:80>
        ServerAdmin webmaster@domain.de
        DocumentRoot "/var/www/admin"
        Servername admin.domain.de
</VirtualHost>

Die Verzeichnisse müssen natürlich existieren. Danach apache service restarten
 
Deine Domain und deine Subdomain zeigen auf den gleichen Server, beide Port 80. Wer will schon immer diese nervigen Ports in der URL^^
In der Config legst du fest, welche Seite auf welchen Ordner zeigen soll (wo dein Src Code liegt).
Für jede (Sub)Domain ein File unter /etc/apache2/sites-available/
Und dann kommt das ins Spiel:
http://manpages.ubuntu.com/manpages/bionic/man8/a2ensite.8.html


DonConto schrieb:
Danach apache service restarten
https://httpd.apache.org/docs/2.4/de/stopping.html
Abschnitt "Unterbrechungsfreier Neustart"

Hier ist übrigens die offizielle Dokumentation dazu:
https://httpd.apache.org/docs/2.4/vhosts/index.html
rtfm^^
 
Zuletzt bearbeitet:
okay also wenn ich das jetzt richtig verstehe:

--------------------------------------------------------------------------------------

1. subdomain: admin.domain.de erstellen

2. apache2 stoppen

3. In /etc/apache2/sites-available/000-default.conf hinzufügen:

<VirtualHost *:10000>
ServerAdmin webmin@domain.de
DocumentRoot "/usr/share/webmin"
Servername admin.domain.de
</VirtualHost>

4. apache2 starten

5. auf admin.domain.de gehen

------------------------------------------------------------------------------------

ist das so richtig ?
 
okay danke
Ergänzung ()

okay also so steht das jetzt in der 000-default.conf
und apache ist auch neu gestart

nur mit admin.domain.de komme ich halt jetzt auf meine Hompage nicht auf webmin
muss ich da in der subdomain noch was ändern



Code:
<VirtualHost *:80>
    # The ServerName directive sets the request scheme, hostname and port that
    # the server uses to identify itself. This is used when creating
    # redirection URLs. In the context of virtual hosts, the ServerName
    # specifies what hostname must appear in the request's Host: header to
    # match this virtual host. For the default virtual host (this file) this
    # value is not decisive as it is used as a last resort host regardless.
    # However, you must set it for any further virtual host explicitly.
    #ServerName www.example.com


    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html


    # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
    # error, crit, alert, emerg.
    # It is also possible to configure the loglevel for particular
    # modules, e.g.
    #LogLevel info ssl:warn


    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined


    # For most configuration files from conf-available/, which are
    # enabled or disabled at a global level, it is possible to
    # include a line for only one particular virtual host. For example the
    # following line enables the CGI configuration for this host only
    # after it has been globally disabled with "a2disconf".
    #Include conf-available/serve-cgi-bin.conf
RewriteEngine on
RewriteCond %{SERVER_NAME} =*******.de
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>


<VirtualHost *:10000>
ServerAdmin webmin@domain.de
DocumentRoot "/usr/share/webmin"
Servername admin.*******.de
</VirtualHost>


# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
 
Zuletzt bearbeitet:
Nur warum weiterhin der Port 10000? 80 ist doch sinnvoll, und ssl geht eh auf den 443, also soll admin.* https können, muss das auch als conf hinterlegt sein.
Die Unterscheidung wird anhand des ServerName (der ist FQDN) gemacht.
Ports machen auch das Handling schwer, weil du dann immer beim URLs bauen drauf achten musst, dass der mit drin ist.
 
aber webmin ist doch auf port 10000

also muss ich port 80 eintragen
und dann weiter ?

weil admin.domain.de soll ja auch domain.de:10000 kommen
 
nein.
Ich meine warum muss/soll das auf Port 10000?
Einen Port nimmst du bei gleicher IP/Domain.


pcartisHD schrieb:
weil admin.domain.de soll ja auch domain.de:10000 kommen
Dann musst du noch eine Conf für den Port 10000 machen. Zusätzlich.

Code:
<VirtualHost *:10000>
        ServerAdmin webmaster@domain.de
        DocumentRoot "/var/www/admin"
        Servername www.domain.de
</VirtualHost>

Dann funktioniert da aber kein SSL!

edit:
IMHO würde ich diese Variante eh weg lassen, wozu soll das gut sein?
 
Zuletzt bearbeitet:
weil ich auf webmin nur mit 555.555.555.555:10000 | Servername:10000 | www.domain.de:10000 drauf kommen und das will ich ja grade nicht ich möchte ja mit admin.domain.de auf die seite kommen

weil ich ja den port nicht haben möchte und auch ein SSL-Zertifikat erstellen möchte
was halt nicht geht da hinten immer der port steht und www.domain.de schon ein SSL-Zertifikat hat
 
Wenn’s um webmin geht, den muss man auf hosted umstellen. Normalerweise nutzt der seinen eigenen Webdienst.

Ansonsten Mod rewrite und da dann Uri-to-Uri Redirect.
 
Zurück
Oben