Problembeschreibung ist unten. teilweise Lösung habe ich nach kurzer Durchsicht des von FHEM generierten Sourcecode selbst gefunden und hier hat Marvin absolut recht:
Zitat@bugster_de: Das Attribut webname von FHEMWEB müsste dein Freund sein.
zumindest einer der beiden FHEMs benötigt einen anderen webnamen, danach den Apache Proxy ganz normal straight forward konfigurieren und es geht !
*******************************************************************************************
Hi,
ggf. ist das etwas offtopic, aber vielleicht hat ja jemand einen Denkanstoß für mich.
Setup
Ich habe zwei RPi bei mir im Haus. Einmal der Haupt-FHEM und einmal einer für die Heizung. Auf meinen Server läuft Apache als Webserver und nur dieser ist nach außen im Internetz sichtbar. Alle Dienste im Haus werden durch diesen Apache als HTML-Proxy bereit gestellt und auch die Passowrt Absicherung wird dort gemacht. Das klapp mit meinem Haupt-FHEM auch; ich mit meiner externen Adresse https://meine-adresse.com/fhem auf mein Haupt FHEM zugreifen. Dies wird dann durch die ProxyHTMLURLMap dargestellt. Wenn ich nun aber den zweiten FHEM auch nach außen sichtbar machen möchte z.B. durch https://meine-adresse.com/heizung, dann klappt das für den initialen Seitenaufruf. Sobald ich aber einen anderen Raum anklicke, dann wird die Adresse auf https://meine-adresse.com/fhem umgebogen und ich sehe wieder den ersten FHEM.
Die entsprechende Apache Conf sieht so aus:
<Location /heizung>
# ProxyPass/ProxyPassReverse leitet HTTP requests auf eine andere URL um
ProxyPass http://192.168.2.12:8084/fhem
ProxyPassReverse http://192.168.2.12:8084/fhem
ProxyHTMLEnable On
# ProxyHTMLURLMap passt Links im HTML/JavaScript Source an
ProxyHTMLURLMap /heizung/ /fhem/
AuthType Basic
AuthName "Password Required"
AuthUserFile /etc/apache2/passwords/fhem-htpasswd
Require valid-user
Order deny,allow
Allow from all
SetOutputFilter INFLATE;proxy-html;DEFLATE
</Location>
Mache ich am Apache was falsch?
Die einfachste Lösung wäre aber auch, die Adresse des FHEM anstelle
http://192.168.2.12:8084/fhem
auf
http://192.168.2.12:8084/heizung
umzubiegen. Geht das?
Danke, ich probiere es nachher mal aus. Ich habe zzt. selbst das Problem, dass ich zwei FHEM-Instanzen (für Port 8083 und 8084) umleiten möchte, sodass ich keine Ports mehr angeben muss. Dort funktioniert aber auch nur die erste Umleitung (von Port 8083 auf das Verzeichnis /fhem). Der Port 8084 leitet nicht auf /mobile weiter. Vielleicht kann ich es ja mit deiner Lösung begleichen.
Zu den SVG-Grafiken. Das hat Apache bei mir zu Beginn auch nicht gemacht. Ich musste zwei Codezeilen ergänzen. Ich poste sie nachher, sobald ich wieder zu Hause bin.
Hallo,
da meine Probleme fast identisch sind möchte ich mich hier gerne anschliessen.
Istsituation: Apache2 mit letsencrypt und DYNDNS auf RasPi und Port 443 geht auf gesichert auf Port 8083/fhem. Klappt problemlos.
Zwei Raspi mit je einem fhem im Heimnetzwerk von außen anzusprechen funktioniert auch, aber nur mit zwei verschiedenen dezidierten Portangaben nach der DYNDNS Adresse. Aufruf dann "xxxxxxxx.xxx:port" oder einer ohne Portangabe geht dann auf 443 und zweiter Raspi mit dezidierten "xxxxxxxxx.xxx:port".
Meine Vorstellung ist aber, dass beide Raspi's über port 443 angesprochen werden und die Unterscheidung dann nach dem slash angegeben wird. Z.B.: RasPi1 "xxxxxxxxxxx.xxx/fhem1 und Raspi2 "xxxxxxxxxx.xxx/fhem2".
Das schaffe ich leider noch nicht!
LG
@bugster_de: vielleicht bitte das GELÖST aus Überschrift nehmen.
Zitat von: bugster_de am 16 Januar 2017, 11:51:51
Problembeschreibung ist unten. teilweise Lösung habe ich nach kurzer Durchsicht des von FHEM generierten Sourcecode selbst gefunden
muß man im Apache Config File folgende, zwei Zeilen ergänzen
ProxyHTMLExtended On
ProxyHTMLEvents onclick
@bugster_de
Hi,
bin nun meiner Zielsetzung (s.o.) schon sehr nahe gekommen. Leider habe ich dasselbe Problem wie du gepostet hast, jedoch die Lösung mit
ProxyHTMLExtended On
ProxyHTMLEvents onclick
funktioniert bei mir nicht - oder ich mache wahrscheinlich noch etwas falsch.
Daher meine Bitte, könntest du die gesamte Apache Config posten.Danke und LG
@raimundl:
Wie hast Du das in deiner Config gelöst? Hast Du in der Definition des Virtual-Hosts zwei Location-Angaben gemacht (für die beiden Pfade / FHEM-Installationen)? Denn das war bei mir zunächst das Problem, da ich das nicht tat - ich hatte für jeden Pfad einen eigenen Virtual-Host. Seitdem ich das umgeändert habe klappt bei mir alles (4 Instanzen auf Unterverzeichnisse gemapt, keine Portangaben mehr nötig, onclick und Plots funktionieren). Lediglich SSL muss noch nachgereicht werden. Das kommt aber später, wenn ich mal Zeit habe - im Prinzip habe ich die Vorgehensweise dafür schon.
Hallo Grinsekatze,
danke für die rasche Antwort. SSL hat rasch und problemlos geklappt, mit den Einstellungen für fhem Weiterleitungen experimentiere ich seit einiger Zeit herum. Bin zwar schon weit gekommen , aber noch nicht am Ziel.
Meine große Bitte:
Könntest du mir eine Kopie deiner Konfig posten, damit ich mich besser orientieren kann. Bin eigentlich noch Neuling in dieser Materie.
Vielen Dank und LG
@bugster_de: Das Attribut webname von FHEMWEB müsste dein Freund sein.
Zitat von: marvin78 am 23 Januar 2017, 14:43:49
@bugster_de: Das Attribut webname von FHEMWEB müsste dein Freund sein.
Hallo marvin78,
ich glaube, das ist auch die Lösung für mich. Habe es eben rasch so konfiguriert und schaut sehr gut aus - funktioniert!
Ich stelle daher meine Konfiguration hier vor, mit der Bitte, einen fachmännischen Blick darauf zu werfen und mir feedback zu geben:
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName xxxxxxxxxxx.ddns.net
ServerAdmin xxxxxxxxx@hotmail.com
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLCertificateFile /etc/letsencrypt/live/xxxxxxxxx.ddns.net/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/xxxxxxxxxx.ddns.net/privkey.p$
Include /etc/letsencrypt/options-ssl-apache.conf
ProxyRequests Off
ProxyVia Off
ProxyPreserveHost On
<Location /fhem122>
ProxyPass http://10.0.0.122:8083/fhem122
ProxyPassReverse http://10.0.0.122:8083/fhem122
</Location>
<Location /fhem124>
ProxyPass http://10.0.0.124:8083/fhem124
ProxyPassReverse http://10.0.0.124:8083/fhem124
</Location>
<Location /fhem126>
ProxyPass http://10.0.0.126:8083/fhem126
ProxyPassReverse http://10.0.0.126:8083/fhem126
</Location>
<Proxy *>
AuthType Basic
AuthName "FHEM"
AuthUserFile /etc/fhem-htpasswd
Require valid-user
Order deny,allow
Allow from all
</Proxy>
</VirtualHost>
</IfModule>
Danke und LG
So siehts sonst bei mir vorerst aus (ohne SSL): https://forum.fhem.de/index.php/topic,63598.msg568762.html#msg568762
ich habe meinen ersten Beitrag oben mal geändert. Am WEB das attribut webname setzen und den Apache Proxy (mit oder ohne SSL) entsprechend konfigurieren.
Ich erreiche mein Haus jetzt unter
https://<meinhaus.de>/haus
und die Heizung unter
https://<meinhaus.de>/heizung
Genau so soll es sein