AlxMyr
Ändere in deinen Vhost-Configfiles mal den * durch die IP-Adresse des Rechners auf dem der Apache läuft. Ich meine, ich hatte auch Probleme mit dem *:443 bzw *:80 und hab dann die IP-Adresse des PC fest eingetragen.
Als ich mich mit dem Indianer näher beschäftigt habe, half mir das Buch "Apache 2 - Das Einsteigerseminar" aus dem bhv Verlag, die Online-Doku vom Indianer und viel Try-Pray-and-Error
Apache nicht über Servername erreichbar- Nur über Hostname
- AlxMyr
- Erledigt
Hinweis: In dem Thema Apache nicht über Servername erreichbar- Nur über Hostname gibt es 25 Antworten auf 3 Seiten. Der letzte Beitrag () befindet sich auf der letzten Seite.
-
-
Ja, das kenne ich, was ich meinte wäre nun das Anlegen von neuen Namen/Adressen.
z.B.
Codebilder.igel01.local > 192.168.178.20 nextcloud.igel01.local > 192.168.178.20 pihole-frontend > 192.168.178.20 alt.website1 > 192.168.178.20 neu.website1 > 192.168.178.20 nocheine-website.local > 192.168.178.20
Auf dem 192.168.178.20 läuft dann jetzt z.B. der Apache, der die entsprechenden Hostnamen auf deren vhost umlegt. Sowas geht mit der fritz.box nicht, oder?
-
Ja, das kenne ich, was ich meinte wäre nun das Anlegen von neuen Namen/Adressen.
z.B.
Codebilder.igel01.local > 192.168.178.20 nextcloud.igel01.local > 192.168.178.20 pihole-frontend > 192.168.178.20 alt.website1 > 192.168.178.20 neu.website1 > 192.168.178.20 nocheine-website.local > 192.168.178.20
Auf dem 192.168.178.20 läuft dann jetzt z.B. der Apache, der die entsprechenden Hostnamen auf deren vhost umlegt. Sowas geht mit der fritz.box nicht, oder?
Das steuert die Apache-Konfiguration über den ServerNamen in der entsprechenden Vhost-Konfiguration. Du erstellst für jeden VHost einen bzw 2 Konfig-Files (SSL und NOSSL)
Beim Starten des Apache zieht er sich ja alle vorhandenen Konfig-Files über die httpd.conf, die alle weiteren Konfig-Files included:
Code
Alles anzeigen# Overview of include files, chronologically: # # httpd.conf # | # |-- uid.conf . . . . . . . . . . . . . . UserID/GroupID to run under # |-- server-tuning.conf . . . . . . . . . sizing of the server (how many processes to start, ...) # |-- loadmodule.conf . . . . . . . . . . . [*] load these modules # |-- listen.conf . . . . . . . . . . . . . IP adresses / ports to listen on # |-- mod_log_config.conf . . . . . . . . . define logging formats # |-- global.conf . . . . . . . . . . . . . [*] server-wide general settings # |-- mod_status.conf . . . . . . . . . . . restrict access to mod_status (server monitoring) # |-- mod_info.conf . . . . . . . . . . . . restrict access to mod_info # |-- mod_reqtimeout.conf . . . . . . . . . set timeout and minimum data rate for receiving requests # |-- mod_cgid-timeout.conf . . . . . . . . set CGIDScriptTimeout if mod_cgid is loaded/active # |-- mod_usertrack.conf . . . . . . . . . defaults for cookie-based user tracking # |-- mod_autoindex-defaults.conf . . . . . defaults for displaying of server-generated directory listings # |-- mod_mime-defaults.conf . . . . . . . defaults for mod_mime configuration # |-- errors.conf . . . . . . . . . . . . . customize error responses # |-- ssl-global.conf . . . . . . . . . . . SSL conf that applies to default server _and all_ virtual hosts # |-- protocols.conf . . . . . . . . . . . Protocol settings that applies to default server _and all_ virtual hosts # | # |-- default-server.conf . . . . . . . . . set up the default server that replies to non-virtual-host requests # | |--mod_userdir.conf . . . . . . . . enable UserDir (if mod_userdir is loaded) # | `--conf.d/apache2-manual?conf . . . add the docs ('?' = if installed) # | # `-- vhosts.d/ . . . . . . . . . . . . . . for each virtual host, place one file here # `-- *.conf . . . . . . . . . . . . . (*.conf is automatically included) #
-
Wir missverstehen uns. Es geht ja erst mal _nur_ darum, den Server überhaupt mit einem selbst gewählten Namen zu erreichen.
Wenn ich im Browser `http://nextcloud.igel01.local` eingebe, soll diese Anfrage auf dem Server mit der IP 192.168.178.20 landen. Was der Server mit der einkommenden Anfrage macht, ist ja zum jetzigen Zeitpunkt noch nicht relevant.
Diese Aufgabe kann ich auf meinem eigenen (oder auch allen beteiligen) Rechner lösen, indem in der /etc/hosts die entsprechenden Einträge anlegt werden. Aber was mache ich wenn ich mit dem Händi (kein Zugriff auf die /etc/hosts) oder einen beliebigen anderen Gerät im Haushalt ebenso an diesen Server eine Anfrage schicken möchte? Kann ich dazu - wie in meinem Beispiel angeführt - in der Fritzbox Namen und deren Ziel-IP anlegen?
Wenn ich es richtig verstanden habe, ist ja das genau das, was der Fragestellen erreichen möchte. Von allen Geräten im Haushalt die Nexcloud zu erreichen.
Wenn das über die Fritzbox nicht geht, was ich nicht weiß weil mein Modell schon älter ist, bleiben eigentlich nur zwei Lösungen:
1. DNS-Dienst aufsetzen, z.B. am Raspi oder über ein vielleicht vorhandenes NAS. Die Adresse des DNS dann in der Fritzbox konfigurieren.
2. Soviel VMs auf dem Raspi aufmachen, damit sich jede VM mit eigenen Rechnername in der Fritzbox wiederfindet. Also "vm-dienst1.fritz.box", "vm-dienst2.fritz.box", diese wären dann über das Feature der Fritzbox im Heimnetz verfügbar ohne eigenen DNS.
AlxMyr was mich irritiert ist folgende Aussage
ZitatDer Zugriff auf die nextcloud funktioniert mit Folgenden URLs/Eingaben "https://nextcloud/" und "nextcloud/"
Woher weiß Dein Browser, auf welche IP der Hostname "nexcloud" zeigen soll? Ist das evlt. auch ein Feature der fritzbox … sowas wie die Kurzform von "nextcloud.fritz.box"?
-
Erstmal vielen Dank für die antworten bisher.
Also ihr habt mich beide eigentlich richtig verstanden.
AlxMyr was mich irritiert ist folgende Aussage
Woher weiß Dein Browser, auf welche IP der Hostname "nexcloud" zeigen soll? Ist das evlt. auch ein Feature der fritzbox … sowas wie die Kurzform von "nextcloud.fritz.box"?
der eingetragene Hostname meines Raspberry ist nextcloud. (/etc/hostname). In der Fritzbox steht der Raspberry in der Liste mit allen verbundenen Geräten mit "nextcloud". Die Domain "fritz.box" wird in der Liste gar nicht angezeigt.
Das bedeutet, der Raspberry ist unter seinem Hostnamen erreichbar, aber nicht unter dem ServerName aus dem virtuellen Host.
Entschuldigt, falls die Formatierung gerade etwas schepps ist, aber ich schreibe gerade vom Handy da ich keinen Rechner zur Hand habe.
-
Achja, falls sich herausstellt das der DNS auf der Fritzbox nicht mit sowas umgehen kann, ist das für mich auch in Ordnung. Ich habe sowieso schon überlegt einen eigenen lokalen DNS aufzubauen.
-
Das bedeutet, der Raspberry ist unter seinem Hostnamen erreichbar, aber nicht unter dem ServerName aus dem virtuellen Host.
Ja, weil der hostname der Fritzbox bekannt ist aber nicht was auf dem Zielrechner für Angaben in den vhosts stehen.
Alles soweit ganu wie es sein soll. "nextcloud" und "nextcloud.fritz.box" sind im Heimnetz für alle Geräter erreichbar. Willst Du nur einen Dienst, nämlich die Nextcloud anbieten, dann muss Dein vhost eben als ServerName den Namen wie er von der Fritzbox weitergereicht wurde sein.
Die Anfrage geht so:
Codehttp://nexcloud > Fritz.box¹ > "Hallo [IP des Raspis], hier kommt eine Anfrage am Eingang 80 an mit dem Namen 'nextcloud'"
¹ Die fritz.box schaut im DNS nach und erkennt das dieser Name ("nextcloud") zur Adresse [IP Deines Rapis] gehört und schickt die Anfrage inkl. Angabe des Port und Namens weiter an diese Adresse.
Jetzt übernimmt dein Apache wie von Igel beschrieben diese Anfrage und schaut, ob es zu dem von der Fritzbox gesendeten Namen "nextcloud" am Eingang (port) 80 (":80") eine Eintrag gibt. Gibt es den (Dein vhost-Container; SeverName = Name wie von Fritzbox geliefert) sprigt er an führt aus. Gibt es keine Entsprechung des Names, wie z.B. "nextcloud.rapi != nextcloud", dann spring entweder der Standard-Host an, oder wenn es den nicht gibt, wird ignoriert und es passiert garnichts, weil der Apache sich nicht angesprochen fühlt.
Nachtrag: Oben schreibe ich was von zwei Möglichkeiten. Das ist nicht stimmig, eine dritte Möglichkeit wäre es, eben den hostname "nextcloud[.fritz.box]" wie von der fritz.box angeboten zu benutzen.
-
AlxMyr Ich bin mir nicht ganz sicher, aber ich glaube Deine Nextcloud geht nicht "dran" weil der vhost-Container richtig konfiguriert ist, sondern es ist gleichzeitig auch der default-Host des Apache. Kann es sein, dass die nextcloud auch angezeigt wird, wenn Du einfach nur die IP des raspis im Browser eingibts? Also "http://IP-des-raspi"
Weil "ServerName" passt nicht.
Und das
Code<VirtualHost *:80> ServerName nextcloud.raspberry:80 DocumentRoot /srv/www/htdocs/nextcloud Redirect permanent / https://nextcloud.raspberry:443/ # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ </VirtualHost>
sollte ins Leere führen, da aus Sicht deines Rechners der Host "nextcloud.raspberry" nicht aufgelöst werden kann.
Noch eine Möglichkeit: Einfach mit der IP des Raspis arbeiten, statt mit einem Namen, das geht auch ohne DNS.
-
Mir ist gerade etwas aufgefallen, worauf ich bisher nicht geachtet habe.
Du hast ja in <VirtualHost *:80> bzw. <VirtualHost *:443>den http/https-Port schon angegeben. Beim ServerNamen sehe ich bei dir auch noch mal :80 bzw. :443 angegeben. Das ist zu mindestens doppelt gemoppelt und könnte evtl. Probleme machen.
Lass im ServerNamen mal die zusätzliche Port Angabe weg, weil der Apache zieht den passenden Vhost-Konfigfile ja nur wenn die Anfrage über den Port 80 bzw. 443 kommt.
Bei meiner Apache-Konfiguration kann ich mit meinem Smartphone per Browser auf meine internen Webseiten zugreifen.
-
So entschuldigt die Späte antwort, aber ich hab es gestern leider nicht mehr geschafft zu antworten.
AlxMyr Ich bin mir nicht ganz sicher, aber ich glaube Deine Nextcloud geht nicht "dran" weil der vhost-Container richtig konfiguriert ist, sondern es ist gleichzeitig auch der default-Host des Apache. Kann es sein, dass die nextcloud auch angezeigt wird, wenn Du einfach nur die IP des raspis im Browser eingibts? Also "http://IP-des-raspi"
Wenn ich "http://IP-des-raspi" eingebe, komm ich auf meine nextcloud.
Und das
Code<VirtualHost *:80> ServerName nextcloud.raspberry:80 DocumentRoot /srv/www/htdocs/nextcloud Redirect permanent / https://nextcloud.raspberry:443/ # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ </VirtualHost>
sollte ins Leere führen, da aus Sicht deines Rechners der Host "nextcloud.raspberry" nicht aufgelöst werden kann.
Das hab ich mittlerweile auch schon festgestellt, dass das nicht funktioniert :-/
Mir ist gerade etwas aufgefallen, worauf ich bisher nicht geachtet habe.
Du hast ja in <VirtualHost *:80> bzw. <VirtualHost *:443>den http/https-Port schon angegeben. Beim ServerNamen sehe ich bei dir auch noch mal :80 bzw. :443 angegeben. Das ist zu mindestens doppelt gemoppelt und könnte evtl. Probleme machen.
Lass im ServerNamen mal die zusätzliche Port Angabe weg, weil der Apache zieht den passenden Vhost-Konfigfile ja nur wenn die Anfrage über den Port 80 bzw. 443 kommt.
Bei meiner Apache-Konfiguration kann ich mit meinem Smartphone per Browser auf meine internen Webseiten zugreifen.
Die Ports aus dem ServerName habe ich mittlerweile entfernt. Das hat aber auch nichts gebracht.
Ich will ja im Prinzip nur, dass meine Nextcloud über den ServerName und nicht über den Hostname des Raspberry erreichbar ist.
Kleines Beispiel wie ich mir das Vorstelle: (ACHTUNG: Namen wurden etwas geändert, um das Prinzip deutlicher darzustellen)
Hostname des Raspi: raspi (so wird er in der Fritzbox auch angezeigt)
Virtueller Host 1 "ServerName": nextcloud.raspberry (wenn es nötig ist, gerne auch nextcloud.raspi)
*Virtueller Host 2 "ServerName": homepage.raspberry (genauso wie bei Host 1, gerne auch homepage.raspi)
*hypotetischer Fall. Derzeit habe ich noch keinen weiteren Virtuellen Host.
erreichbar sollen die beiden VHosts unter ihren "ServerName".
Sprich: nextcloud.raspberry und homepage.raspberry
So zumindest versteh ich die Eigenschaft ServerName in den "vhost.conf"-Dateien.
Derzeit erreiche ich meine Nextcloud nur über den Hostname des Raspberry.
Sprich: raspi.