Apache Virtual Hosts - Anfängerfrage

Alles, was den Apache betrifft, kann hier besprochen werden.

Apache Virtual Hosts - Anfängerfrage

Postby JMRBerlin » 08. May 2018 22:31

Hallo Forum,

absolute Beginner-Frage und ja, ich habe schon gegoogelt und versucht, verschiedene Tutorials durchzuarbeiten.

Raspbian VERSION="9 (stretch)"
Zertifikat mit Letsencrypt für jmrberlin.ddnss.com und www.jmrberlin.ddnss.com erstellt, Dateien liegen unter /etc/letsencrypt
Apache 2.4
DynDNS: jmrberlin.ddnss.com
IP intern: 192.168.178.50
Portweiterleitung in FritzBox für :443 auf 192.168.178.50

Derzeit habe ich zwei Anwendungen installiert:

Webmin, Aufruf im LAN über 192.168.178.50:10000
Nextcloud, Aufruf im LAN über 192.168.178.50/nextcloud
Weitere Anwendungen werden kommen ...

Ich möchte jetzt folgende Aufrufe erreichen:

Webmin: https://192.168.178.50/webmin sowie https://jmrberlin.ddnss.com/webmin
Nextcloud: https://192.168.178.50/nextcloud sowie https://jmrberlin.ddnss.com/nextcloud
Weitere Anwendungen werden kommen, dann erneut Aufruf im gleichen Schema

Aus Sicherheitsgründen will ich PORT 80 gar nicht erst bemühen. Der eigentliche Apache 192.168.178.50 soll die SSL-Absicherung gewährleisten. Anschließend soll dann eine interne Weiterleitung auf /webmin bzw. /nextcloud erfolgen. Beide Anwendungen liegen im LAN.

Herausgefunden habe ich, dass das Werkzeug Reverse Proxy heißt und man wohl für jede Anwendung eine virtual-hosts-Datei in nano /etc/apache2/sites-available/ anlegen muss, also sudo nano /etc/apache2/sites-available/nextcloud.conf und sudo nano /etc/apache2/sites-available/webmin.conf

Anschließend wohl sudo a2ensite nextcloud.conf und sudo a2ensite webmin.conf sowie sudo service apache2 force-reload.

Im Verzeichnis /etc/apache2/sites-available finden sich bei mir folgende Dateien:

000-default.conf
000-default-le-ssl.conf
default-ssl.conf
jmrberlin.ddnss.com.conf
le-redirect-jmrberlin.ddnss.com.conf
nextcloud.conf
webmin.conf

Die Dateien nextcloud.conf und webmin.conf sehen wie folgt aus:

nano /etc/apache2/sites-available/nextcloud.conf

<VirtualHost *:443>
ServerName jmrberlin.ddnss.com/nextcloud
ServerAlias www.jmrberlin.ddnss.com/nextcloud
ProxyRequests Off
ProxyPass / http://192.168.178.50/nextcloud/
ProxyPassReverse / http://192.168.178.50/nextcloud/
</VirtualHost>

nano /etc/apache2/sites-available/webmin.conf

<VirtualHost *:10000>
ServerName jmrberlin.ddnss.com/webmin
ServerAlias www.jmrberlin.ddnss.com/webmin
ProxyRequests Off
ProxyPass / http://192.168.178.50/webmin
ProxyPassReverse / http://192.168.178.50/webmin
</VirtualHost>

Leider bekomme ich keine Zugriff beim Versuch des Aufrufs.

Fehlermeldung: ERR_CONNECTION_REFUSED

Ich habe hier vermutlich nicht nur ein Code-, sondern auch ein Verständnisproblem.

Kann mir jemand unter die Arme greifen, damit mir hier der Einstieg konkret gelingt?

Hoffe auf Verständnis für einen Anfänger ...

Danke, viele Grüße, Jörg
JMRBerlin
 
Posts: 7
Joined: 14. April 2018 12:24
XAMPP version: 5.6
Operating System: Debian 9 (Raspbian)

Re: Apache Virtual Hosts - Anfängerfrage

Postby Nobbie » 09. May 2018 10:50

"Anfängerfrage" ist lustig. Es ist eine Frage, die ein Anfänger gestellt hat, aber es ist kein Anfängerproblem. Du willst 3-4 komplexe Sachverhalte gleichzeitig einrichten, die Aufgabe eines geschulten Apache Administrators. Ja, das kann man nicht einfach mal so und die Tutorials sind wichtig, aber sie ersetzen nicht den jahrelangen Umgang.

Das ist zu viel auf einmal (und eigentlich auch nicht Inhalt dieses Forums), aber ich werde bis einer bestimmten Stelle eine (hoffentlich) funktionierende Lösung skizzieren und ein paar grundlegende Mißverständnisse aufklären. Die gezeigte Konfiguration hat so viele schwere Fehler, dass es mich fast wundert, dass Apache überhaupt startet. Der ungültige Servername allein (jmrberlin.ddnss.com/nextcloud) verwundert mich, da hätte ich einen schweren Fehler erwartet beim Start, aber wahrscheinlich übergeht Apache einfach diesen VirtualHost.

Als erstes legen wir erst einmal fest, dass Du NICHT direkt via https (Port 443) zugreifst, denn zum einen hast Du es auch noch gar nicht umgesetzt (da fehlen sämtliche SSL Anweisungen) und zum anderen brauchst Du dafür erst einmal ein gültiges Zertifikat. Stelle Deine Fritzbox so um, dass Du die Portweiterleitung auf Port 80 hast.

Dann zu den Begriffen: ein Ding a la jmrberlin.ddnss.com/nextcloud ist kein Servername, so etwas nennt sich (unvollständige) URL. Eine URL sieht normalerweise ungefähr so aus: http://www.domain.com:1234/ordner/datei.html (auch hier kann man immer noch mehr angeben, aber das soll erst einmal reichen). Der erste Teil bis zum Doppelpunkt ist das sog. "Protokoll". Also hier "http". Das ist das Standardprotokoll für Browser und Webserver. Dann gibt es das Protokoll "https", das ist das gleiche Protokoll, aber mit vercrypteten (gesicherten) Daten, entsprechend ist das Protokoll auch nicht genau das gleiche wie "http", sondern um einige Angaben erweitert. Dann kommt ein doppelter Slash, als nächstes kommt der Servername. An den Servername schließt sich (per Doppelpunkt getrennt) der Port, auf dem kommuniziert wird. Dann kommt wieder ein Trenner, dahinter kommen die sog. "Ressourcen", das sind normalerweise Ordner und Dateien. Der Servername ist also nur www.domain.com. Da siehst Du Dein erstes Problem, Du hast keinen Servername definiert, sondern einen Servername plus Ordner. Das ist aber kein Servername mehr und Apache versteht das nicht.

Zu einer URL gehört eigentlich auch IMMER die Angabe einer Portnummer. ABER in Abhängigkeit vom Protokoll KANN man die Portnummer weglassen, dann gelten bestimmte Defaultwerte. Wenn bei http den Port wegläßt. wird als Default Port 80 genommen. Wenn man bei https den Port wegläßt, wird Port 443 genommen. Wenn die Kommunikation auf Port 10000 laufen soll, MUSS der Port 10000 unbedingt angeben werden. Denn wenn ihn wegläßt, bedeutet das automatisch Port 80 oder Port 443. Für andere Protokolle gelten andere Defaultports. Für das Protokoll ftp (auch sehr bekannt) gilt der Port 21 als Default.

Das ergibt also insgesamt, dass Du nur EINEN VirtualHost (= Servername) anzulegen gedenkst, nämlich jmrberlin.ddnss.com. Das ist der einzige VirtualHost in diesem Kontext. Desweiteren möchtest Du, dass für verschiedene Ressourcen, nämlich für "nextcloud" und "webmin" jeweils verschiedene Reverse Proxys herangezogen werden. Wenn Du wirklich zwei verschiedene VirtualHosts haben willst (was ich durchaus empfehle), musst Du auch zwei verschiedene Servername definieren, beispielsweise nextcloud.jmrberlin.ddnss.com und webmin.jmrberlin.ddnss.com. Wenn das technisch nicht mehr geht (weil zu viele Punkte, das müßtest Du ausprobieren), dann kannst auch mit Bindestrichen arbeiten, dann ist das erste sog. "Token" vor dem ersten Punkt eben ein ganzer neuer Teil Deiner Domain: nextcloud-jmrberlin.ddnss.com und webmin-jmrberlin.ddnss.com

Hier mache ich aber erst einmal nur mit dem einen VirtualHost weiter. Du hast also einen VirtualHost und muss da zwei Proxys unterbringen, dafür steht Dir der erste Parameter des ProxyPass Anweisung zur Verfügung (wo Du im Moment / hast). Insgesamt ergibt das so einen VirtualHost:

Code: Select all
<VirtualHost *:80>
ServerName jmrberlin.ddnss.com
ServerAlias www.jmrberlin.ddnss.com

ProxyPass /nextcloud/ http://192.168.178.50/nextcloud/
ProxyPassReverse /nextcloud/ http://192.168.178.50/nextcloud/

ProxyPass /webmin/ http://192.168.178.50:10000/webmin/
ProxyPassReverse /webmin/ http://192.168.178.50:10000/webmin/
</VirtualHost>


Achte insbesondere auf die Angabe des Ports 10000 bei webmin! Das ist bei Dir total falsch, Du definierst stattdessen den VirtualHost auf Port 10000 (das würde bedeuten, dass Du von außen auf Port 10000 zugreifst) und läßt ihn bei webmin weg, das würde bedeuten, dass webmin auf Port 80 läuft. Es ist aber genau anders herum!

Jetzt fehlt im Prinzip noch der ganze SSL Teil, aber da gibt es auch tonnenweise Tutorials, insbesondere bekommst Du bei den Providern, die Zertifikate verkaufen, meistens ein Installations Tutorial mitgeliefert. Ich würde Dir empfehlen, den SSL Teil erst einmal unabhängig vom Reverse Proxy in einer eigenen Umgebung (ggf. eigener VirtualHost) zu testen, ob Du es ans Laufen bekommst. Erst wenn der Zugriff via https wasserdicht ist, würde ich die o.g. Konfiguration mit in den VirtualHost für *:443 packen und dann hast ist es komplett fertig.

Was ich jetzt nur nicht verstehe, wieso willst Du das so komisch mit dem ReverseProxy machen, ist das nicht sowieso der gleiche Rechner, auf dem alle Prozesse laufen? Es müßte doch genügen, einfach nur den VirtualHost anzulegen und dort den geeigneten DocumentRoot (wahrscheinlich /var/www/html oder so) und dann kann man direkt von außen zugreifen, Du musst lediglich in der Fritzbox die notwendigen Ports auch weiterleiten (Port 10000 vor allem). Wieso läuft webmin auf Port 10000 überhaupt? Ist das nicht auch ein ganz normales Script (ich kenne es nicht, aber ich dachte, das würde einfach auch unter Apache laufen)?

Code: Select all
<VirtualHost *>
ServerName jmrberlin.ddnss.com
ServerAlias www.jmrberlin.ddnss.com

DocumentRoot /var/www/html
</VirtualHost>


Da müßte doch auch http://jmrberlin.ddnss.com/nextcloud auf die nextcloud führen? Und entsprechend mit http://jmrberlin.ddnss.com/webmin (bzw. http://jmrberlin.ddnss.com:10000/webmin wenn es wirklich auf Port 10000 läuft). Da könntest Du sogar auf den VirtualHost verzichten und definierst generell ServerName als jmrberlin.ddnns.com.
Nobbie
 
Posts: 10155
Joined: 09. March 2008 13:04

Re: Apache Virtual Hosts - Anfängerfrage

Postby JMRBerlin » 10. May 2018 23:18

Hallo Nobbie,

erst mal tausend Dank für diese ausführliche Erläuterung und Geduld.
Ich bin vermutlich ein Stück weiter aber noch nicht bei der Lösung. Vielleicht kannst Du mir ja noch mal unter die Arme greifen, wäre toll, danke!

Erstmal zum Hintergrund:

Ich möchte auf dem Server mehrere Anwendungen laufen lassen. Ggf. will ich die später auch mal auf mehrere Server im LAN aufteilen.
Wichtig ist mir wegen der Sicherheit, nach außen möglichst nur einen Port, den 443 für alle Anwendungen zu öffnen. Höchstens noch einen individuellen SSH-Port sowie einen Port für ausgehende Mails (Logging, etc.).

Portfreischaltung
Aktuell habe ich in der FritzBox und im Kabel-Modem (davor) folgende Ports freigeschaltet und entsprechend weitergeleitet:

22, 80, 443, 587, 10000

Installation der Anwendungen

Ich habe jetzt erst mal alle Anwendungen zum Laufen gebracht, konkret:

Webmin
Nextcloud
phpMyAdmin

Zusätzlich habe ich mir im Verzeichnis /var/www/html/ noch die Dateien index.html (Apache2 Debian Default Page) und info.php (PHP Info Seite) angelegt. Eher für Testzwecke und weil es wenig Aufwand ist.

Neben der Port 80 Konfiguration habe ich auch eine Port 443 Konfiguration mit Zertifikaten von letsencrypt hergestellt und natürlich den Sever über DynDNS erreichbar gemacht, da er an einem privaten Anschluss mit dynamischer IP hängt.

Die aus meiner Sicht relevanten Verzeichnisse sehen derzeit wie folgt aus:

Code: Select all
root@raspi3-2:/var/www/html# ls
index.html  info.php  nextcloud


Code: Select all
root@raspi3-2:/etc/apache2/sites-available# ls
000-default.conf  000-default-le-ssl.conf  default-ssl.conf


root@raspi3-2:/etc/apache2/sites-available# nano 000-default.conf

Code: Select all
<VirtualHost *:80>

ServerName jmrberlin.ddnss.eu
ServerAlias www.jmrberlin.ddnss.eu
ServerAdmin root@localhost
DocumentRoot /var/www/html

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

#RewriteEngine on
#RewriteCond %{SERVER_NAME} =jmrberlin.ddnss.eu [OR]
#RewriteCond %{SERVER_NAME} =www.jmrberlin.ddnss.eu
#RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent]

</VirtualHost>

Anmerkung: Die Rewrite* Kommandos will ich später auskommentieren, um immer SSL zu erzwingen.

root@raspi3-2:/etc/apache2/sites-available# nano 000-default-le-ssl.conf

Code: Select all
<IfModule mod_ssl.c>
<VirtualHost *:443>

ServerName jmrberlin.ddnss.eu
ServerAlias www.jmrberlin.ddnss.eu
ServerAdmin root@localhost
DocumentRoot /var/www/html

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

SSLCertificateFile /etc/letsencrypt/live/jmrberlin.ddnss.eu/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/jmrberlin.ddnss.eu/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf

</VirtualHost>

</IfModule>


Test der Anwendungen

Über folgende URL´s waren die drei Anwendungen sowie die index.html und die info.php erreichbar:

Webmin: https://jmrberlin.ddnss.eu:10000 und https://192.168.178.50/nextcloud (http lässt Webmin als Anwendung nicht zu, normal)
Nextcloud: http://jmrberlin.ddnss.eu/nextcloud/ und https://jmrberlin.ddnss.eu/nextcloud/ und http://192.168.178.50/nextcloud
phpMyAdmin: http://jmrberlin.ddnss.eu/phpmyadmin/ und https://jmrberlin.ddnss.eu/phpmyadmin/ und http://192.168.178.50/phpmyadmin
index.html: http://jmrberlin.ddnss.eu/index.html und https://jmrberlin.ddnss.eu/index.html und http://192.168.178.50/index.html
info.php: http://jmrberlin.ddnss.eu/info.php und https://jmrberlin.ddnss.eu/info.php und http://192.168.178.50/info.php

Ergebnis: Läuft


Anpassung der Konfiguration

Jetzt habe ich die beiden *.conf-Dateien in /etc/apache2/sites-available editiert, auf Grundlage Deiner Hilfe, also wie folgt:

root@raspi3-2:/etc/apache2/sites-available# nano 000-default.conf

Code: Select all
<VirtualHost *:80>

ServerName jmrberlin.ddnss.eu
ServerAlias www.jmrberlin.ddnss.eu
ServerAdmin root@localhost
DocumentRoot /var/www/html

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

#RewriteEngine on
#RewriteCond %{SERVER_NAME} =jmrberlin.ddnss.eu [OR]
#RewriteCond %{SERVER_NAME} =www.jmrberlin.ddnss.eu
#RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent]

ProxyPass /nextcloud/ http://192.168.178.50/nextcloud/
ProxyPassReverse /nextcloud/ http://192.168.178.50/nextcloud/

ProxyPass /phpmyadmin/ http://192.168.178.50/phpmyadmin/
ProxyPassReverse /phpmyadmin/ http://192.168.178.50/phpmyadmin/

ProxyPass /webmin/ http://192.168.178.50:10000/webmin/
ProxyPassReverse /webmin/ http://192.168.178.50:10000/webmin/

</VirtualHost>


root@raspi3-2:/etc/apache2/sites-available# nano 000-default-le-ssl.conf

Code: Select all
<IfModule mod_ssl.c>
<VirtualHost *:443>

ServerName jmrberlin.ddnss.eu
ServerAlias www.jmrberlin.ddnss.eu
ServerAdmin root@localhost
DocumentRoot /var/www/html

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

SSLCertificateFile /etc/letsencrypt/live/jmrberlin.ddnss.eu/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/jmrberlin.ddnss.eu/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf

ProxyPass /nextcloud/ https://192.168.178.50/nextcloud/
ProxyPassReverse /nextcloud/ https://192.168.178.50/nextcloud/

ProxyPass /phpmyadmin/ https://192.168.178.50/phpmyadmin/
ProxyPassReverse /phpmyadmin/ https://192.168.178.50/phpmyadmin/

ProxyPass /webmin/ https://192.168.178.50:10000/webmin/
ProxyPassReverse /webmin/ https://192.168.178.50:10000/webmin/

</VirtualHost>

</IfModule>


Test der neuen Konfiguration

Anschließend Konfiguration getestet:

Code: Select all
root@raspi3-2:/etc/apache2/sites-available# apache2 -configtest
[Thu May 10 23:54:35.058566 2018] [core:warn] [pid 4728] AH00111: Config variable ${APACHE_RUN_DIR} is not defined
apache2: Syntax error on line 80 of /etc/apache2/apache2.conf: DefaultRuntimeDir must be a valid directory, absolute or relative to ServerRoot

Anmerkung: Diesen Fehler kriege ich leider auch nicht in den Griff aber laut meiner Web-Recherche kann man den vernachlässigen.

Und natürlich den Apache neu gestartet:

Code: Select all
root@raspi3-2:/etc/apache2/sites-available# systemctl restart apache2


Noch mal den Status geprüft:

Code: Select all
root@raspi3-2:/etc/apache2/sites-available# systemctl status apache2

Grüner Punkt, Active: active (running)

Nun erneuter Test der Anwendungen in neuer Konfiguration:

Webmin:
KEIN ZUGRIFF: https://jmrberlin.ddnss.eu/webmin/ und https://192.168.178.50/webmin/ (http lässt Webmin als Anwendung nicht zu, normal)
ZUGRIFF: https://jmr.ddnss.eu:10000/
ZUGRIFF: https://192.168.178.50:10000/

Nextcloud:
KEIN ZUGRIFF: http://jmrberlin.ddnss.eu/nextcloud/ und https://jmrberlin.ddnss.eu/nextcloud/ und http://192.168.178.50/nextcloud

phpMyAdmin:
KEIN ZUGRIFF: http://jmrberlin.ddnss.eu/phpmyadmin/ und https://jmrberlin.ddnss.eu/phpmyadmin/ und http://192.168.178.50/phpmyadmin

index.html:
KEIN ZUGRIFF: http://jmrberlin.ddnss.eu/index.html und https://jmrberlin.ddnss.eu/index.html und http://192.168.178.50/index.html

info.php:
KEIN ZUGRIFF: http://jmrberlin.ddnss.eu/info.php und https://jmrberlin.ddnss.eu/info.php und http://192.168.178.50/info.php


Fehlermeldungen:
500 Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.

oder

ERR_TIMED_OUT


Hoffe, diese Details helfen etwas, mein Problem konkreter nachzuvollziehen.

Herzlichen Dank vorab für Hilfe!

Viele Grüße

Jörg

P.S.:
Domain-Name und IP-Adresse über Suchen/Ersetzen aus Gründen der Sicherheit verändert.
JMRBerlin
 
Posts: 7
Joined: 14. April 2018 12:24
XAMPP version: 5.6
Operating System: Debian 9 (Raspbian)

Re: Apache Virtual Hosts - Anfängerfrage

Postby JMRBerlin » 11. May 2018 10:05

Ergänzung:
Eben rausgefunden, zumindest was webmin betrifft . Webmin kommt mit einem eigenen Webserver. Es ist nicht empfohlen, webmin auf Apache umzustellen.
https://doxfer.webmin.com/Webmin/Running_Webmin_Under_Apache
Note: Webmin includes a dedicated web server called miniserv.pl that is designed to run Webmin
Es sind zwei Alternativen beschrieben, den Zugriff über Apache laufen zu lassen, und trotzdem webmin mit dem eigenen Server zu betreiben:
1) Webmin Proxied Through Apache
2) Apache virtual Host for Webmin
Das was ich hier wohl versuche, ist vermutlich Nr. 1

Unabhängig von webmin würde ich dennoch gerne weiter die Lösung erarbeiten . Unterverzeichnisse oder Subdomains? Ich hadere ja noch immer, was aktuell und perspektivisch für mein Ziel am Sinnvollsten ist ....
JMRBerlin
 
Posts: 7
Joined: 14. April 2018 12:24
XAMPP version: 5.6
Operating System: Debian 9 (Raspbian)

Re: Apache Virtual Hosts - Anfängerfrage

Postby Nobbie » 11. May 2018 11:02

Erst noch mal in aller Deutlichkeit: Du bist hier eigentlich falsch. Das ist das Xampp/Apache Forum. Ich habe hier weder ein Debian Linux, noch habe ich einen Raspberry, noch habe ich ein Raspbian und sowieso habe ich keinen Apache installiert auf der nicht vorhandenen Umgebung. Zudem kenne ich webmin nicht, ich kenne die Verzeichnisse der Debian Apache Konfiguration nicht, die Xampp / Apache Konfiguration ist anders strukturiert. Deswegen ist es extremst schwer für mich, die Dinge nachzuvollziehen, leider baust Du auch noch Fehler in der Beschreibung ein:



Da stimmt etwas nicht, Webmin ist sicherlich NICHT via "https://192.168.178.50/nextcloud" (s.o.) erreichbar. Das soll wahrscheinlich "https://192.168.178.50/webmin" heißen.
Nächste Frage: hast Du nicht auch ggf. https://jmrberlin.ddns.eu/webmin getestet? Nach meinem Verständnis müßte das doch gehen (was wichtig ist)?

Wenn das geht, dann bist Du aus meiner Sicht doch an dieser Stelle fertig, Du erreichst alle Dienste via https://jmrberlin.ddnss.eu/...., dann schmeiße den Port 80 und den Port 10000 aus der Fritzbox aus den Weiterleitungen raus und fertig. Danach fängt nämlich der Teil an, wo ich immer mehr das Gefühl habe, dass Du Dich immer tiefer im Gestrüpp verirrst und den Wald vor lauter Bäumen nicht mehr siehst. So ist beispielsweise die (momentan auskommentierte) RewriteCond Abfrage auf den SERVER_NAME = jmrberlin.ddnss.eu völlig überflüssig, die Abfrage ist immer wahr, an dieser Stelle bist Du doch im Kontext des ServerName des VirtualHosts für jmrberlin.ddnns.eu. Und dann täte es auch eine stinknormale Redirect Anweisung - aber insgesamt ist das ganze Prozedere überflüssig, schmeiß die Weiterleitung des Port 80 aus der Fritzbox heraus und die Fritzbox fängt alles auf Port 80 ab.

Und wozu brauchst Du die Funktionalität, dass diese Dienste auch unter der LAN IP 192.168.178.50 abrufbar sein sollen? Das hat doch überhaupt keinen Wert, von außen ein Anwender kann es nicht eingeben und von innen weißt Du auch so, was Du eingeben kannst und was nicht. Ob der Zugriff auf diese LAN IP läuft oder nicht - wen interessierts?

Aus meiner Sicht bist Du mit dieser schlichten Konfiguration doch längst am Ziel, Du hast ein Zertifikat, einen geschützen VirtualHost jmrberlin.ddnss.eu und alle Dienste sind über ihre eigenen URLs abrufbar. Mehr kann man doch gar nicht verlangen? Wozu der Riesenaufwand mit den ReverseProxys?

Nur die Geschichte mit dem Fehler in der apache2.conf, wieso findest Du im Web nicht, wie man den behebt? Das ist ein ganz simpler Parameter in der Apache Konfiguration, die Dokumentaion (die sowieso zu Deiner Bibel werden sollte in der nächsten Zeit) befindet sich hier https://httpd.apache.org/docs/trunk/en/ ... runtimedir und demnach ist das ein Verzeichnis, wo Apache Laufzeitdaten ablegt. Ich würde vermuten, dass in Zeile 80 (da entsteht der Fehler laut Fehlermeldung) so etwas in der Art steht:

Code: Select all
DefaultRuntimeDir ${APACHE_RUN_DIR}


oder ähnlich. Und der Parameter ${APACHE_RUN_DIR} ist aus irgendeinem Grund nicht gefüllt (keine Ahnung warum, das ist ein Debian Ding), aber man kann ja selbst ein Verzeichnis angeben. Im Zweifel kannst Du auch die ganze Zeile auskommentieren, laut Doku verwendet Apache dann den Wert von "ServerRoot" (das sollte auch irgendwo weiter oben definiert sein) und ergänzt es um das Verzeichnis "logs/". Macht halbwegs Sinn, Du kannst auch selbst einfach etwas da eintragen, es muss existieren und Apache muss darauf lesen und schreiben können. Das ist doch wirklich nicht schwierig, dieses Problem aus der Welt zu kriegen?!
Nobbie
 
Posts: 10155
Joined: 09. March 2008 13:04

Re: Apache Virtual Hosts - Anfängerfrage

Postby JMRBerlin » 17. May 2018 21:40

Hallo zusammen, so, ich habe jetzt webmin (wenigstens) als virtual host unter apache2 zum Laufen gebracht. Hilfreich war dabei folgender Link

https://doxfer.webmin.com/Webmin/Running_Webmin_Under_Apache

Ich werde mich nun noch an die weiteren Aufgaben machen und dann versuchen, alle Web-Anwendungen auf meinem Raspberry als virtuelle Hosts erreichbar zu machen.

Wer eine Lösung für webmin sucht, kann das Nachfolgende gerne umsetzen oder es besser machen.

Proxy-Module im Apache aktivieren, sofern noch nicht erfolgt:

Code: Select all
sudo a2enmod proxy
sudo a2enmod proxy_http


Virtuellen Host anlegen:

Code: Select all
sudo nano /etc/apache2/sites-available/webmin.conf


Folgendes in die Datei einfügen und dann mit Strg+X und anschließend J + [Enter] speichern / beenden

Code: Select all
<IfModule mod_ssl.c>
<VirtualHost *:443>

ServerName webmin.jmrberlin.ddnss.eu
ProxyPass / http://localhost:10000/
ProxyPassReverse / http://localhost:10000/

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

SSLCertificateFile /etc/letsencrypt/live/jmrberlin.ddnss.eu/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/jmrberlin.ddnss.eu/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf

</VirtualHost>

</IfModule>


Virtual Host / Webseite aktivieren

Code: Select all
sudo a2ensite webmin.conf


Webmin und Apache neu starten

Code: Select all
sudo /etc/webmin/start
sudo systemctl reload apache2


Anschließend SSL Zertifikat erweitern

Code: Select all
certbot --authenticator webroot --installer apache
JMRBerlin
 
Posts: 7
Joined: 14. April 2018 12:24
XAMPP version: 5.6
Operating System: Debian 9 (Raspbian)

Re: Apache Virtual Hosts - Anfängerfrage

Postby Nobbie » 18. May 2018 10:38

Wenn Du wirklich jemandem einen Nutzen erweisen willst, publiziere den Beitrag in einem Raspbian Forum. Hier ist er wirklich "für die Katz". Hier ist das Xampp Apache Forum und da sieht die Konfiguration und die Umgebung inkl. der Shellscripts total anders aus, wer nicht Debian installiert hat und wer Xampp im Einsatz hat, fängt überhaupt nichts mit diesen Codezeilen an.
Nobbie
 
Posts: 10155
Joined: 09. March 2008 13:04

Re: Apache Virtual Hosts - Anfängerfrage

Postby JMRBerlin » 18. May 2018 12:50

Ich sehe das anders. Der Beitrag ist begonnen und ich habe ihn nun abgeschlossen, in dem ich fairerweise auch die Lösung zu meinem Problem gepostet habe. Findet jemand über Google mein Problem, findet er auch einen Lösungsansatz. Das finde ich wichtiger als dogmatische Strukturierung. Wenn es in diesem Forum nicht richtig ist, kann es ja ein Moderator auch in ein Forum Sonstiges schieben oder von mir aus auch löschen. Ich will ja keinen stören ... Und tschüss ...
JMRBerlin
 
Posts: 7
Joined: 14. April 2018 12:24
XAMPP version: 5.6
Operating System: Debian 9 (Raspbian)

Re: Apache Virtual Hosts - Anfängerfrage

Postby Nobbie » 18. May 2018 15:39

JMRBerlin wrote:Wenn es in diesem Forum nicht richtig ist, kann es ja ein Moderator auch in ein Forum Sonstiges schieben oder von mir aus auch löschen. Ich will ja keinen stören ... Und tschüss ...


Du verstehst es nicht. Es ist im GANZEN Forum falsch. Hier ist das XAMPP Forum. Hier sucht kein Raspbian Anwender etwas. Von mir aus kannst Du es stehen lassen, liest eh kein Mensch.
Nobbie
 
Posts: 10155
Joined: 09. March 2008 13:04


Return to Apache

Who is online

Users browsing this forum: No registered users and 1 guest

cron