Ankündigung

Einklappen
Keine Ankündigung bisher.

opnehab und ReverseProxy

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    opnehab und ReverseProxy

    Hallo,

    hat jemand schon openhab hinter einen Apache Reverse Proxy am Laufen?
    Sieht so aus, als wäre openhab nicht bzw. nur eingeschränkt reverseproxyfähig, da im generieren HTML absolute Pfade verwendet werden.

    Gruß,
    thoern

    #2
    Ja habe ich! Funktioniert wunderbar - welches konkrete Problem hast Du?

    Grüße,
    Kai

    Kommentar


      #3
      Hallo Kai,

      habe dir mal meine Demo-App freigeschaltet. Unter folgendem Link zu erreichen:
      https://hoerndlein.dyndns.org/openha...map=demo#_0001

      Damit ich verschiedene Applikationen hinter dem RevProxy ansprechen kann, habe ich nochmals eine Unterscheidung, hier "/openhab-demo/" in den URL-Pfad eingefügt. Leider funzt die Anwendung nicht mehr. Einfach mal was anklicken.

      Hier die Apache-Konfig

      Code:
              <Location /openhab-demo/>
                      Allow from all
                      ProxyPass http://localhost:7080/
              </Location>
              ProxyPassReverse /openhab-demo/ http://localhost:7080/
      Gruß,

      thoern

      Kommentar


        #4
        Danke! Verstehe, da war ich wohl etwas vorschnell - ich betreibe es zwar auch hinter einem Apache Reverse-Proxy, allerdings habe ich die relativen Pfade belassen:
        Code:
        ProxyPass /openhab.app http://192.168.0.4:8080/openhab.app
        ProxyPass /rrdchart.png http://192.168.0.4:8080/rrdchart.png
        ProxyPass /CMD http://192.168.0.4:8080/CMD
        ProxyPass /rest http://192.168.0.4:8080/rest
        ProxyPass /images http://192.168.0.4:8080/images
        Es wird also leider doch mit absoluten Pfaden gearbeitet, so dass Dein Setting nicht funktioniert. Ich kann gerade nicht abschätzen, ob es leicht zu ändern sein sollte oder nicht. Ich fürchte aber, es gab irgendeinen Grund, warum es so ist, wie es derzeit ist...

        Grüße,
        Kai

        Kommentar


          #5
          Zitat von kkreuzer Beitrag anzeigen
          Danke! Verstehe, da war ich wohl etwas vorschnell - ich betreibe es zwar auch hinter einem Apache Reverse-Proxy, allerdings habe ich die relativen Pfade belassen:
          Code:
          ProxyPass /openhab.app http://192.168.0.4:8080/openhab.app
          ProxyPass /rrdchart.png http://192.168.0.4:8080/rrdchart.png
          ProxyPass /CMD http://192.168.0.4:8080/CMD
          ProxyPass /rest http://192.168.0.4:8080/rest
          ProxyPass /images http://192.168.0.4:8080/images
          Es wird also leider doch mit absoluten Pfaden gearbeitet, so dass Dein Setting nicht funktioniert. Ich kann gerade nicht abschätzen, ob es leicht zu ändern sein sollte oder nicht. Ich fürchte aber, es gab irgendeinen Grund, warum es so ist, wie es derzeit ist...

          Grüße,
          Kai
          Ja, und ich wollte es mir ersparen für jedes Unterverzeichnis wie "/rest" oder "/images" eine eigene Regel zu definieren, zumal ich sowieso nicht weiss, was es alles gib - wird ja u.U. dynamisch generiert.

          Naja, evtl. mach ich für openhab und einen eigenen vHost, wo nur openhab bedient wird. Dann muss ich nichts im Pfad einfügen. Damit ginge es auch, allerdings muss ich dann auf mein https verzichten :-(

          gruss

          Kommentar


            #6
            Hallo thoem,

            das Problem kannst du mit mod_substitute beheben. Schau mal hier: https://httpd.apache.org/docs/2.2/mo...ubstitute.html

            Für Apache 2.4 gibt es mod_sed.

            Grüße
            Robert

            Kommentar


              #7
              Zitat von suexec Beitrag anzeigen
              Hallo thoem,

              das Problem kannst du mit mod_substitute beheben. Schau mal hier: https://httpd.apache.org/docs/2.2/mo...ubstitute.html

              Für Apache 2.4 gibt es mod_sed.

              Grüße
              Robert
              Hallo Robert,

              klasse! Das kannte ich noch gar nicht. Ich hab es mit mod_proxy_html probiert. Das klappte aber nicht, weil dieses zum Parsen ein sauberes HTML voraussetzt.

              Mein Problem hab ich jetzt mit dedizierten name-based-virual-hosts gelöst und statt Basic-Auth benutze für die openhab-vHosts jetzt Digest-Auth.

              Aber mod_substitute werde ich mir merken - kann man ja öfters brauchen. Und ist vor allem viel einfacher, da es bereits mit Apache mitgeliefert wird...

              Gruß,
              thoern

              Kommentar


                #8
                opnehab und ReverseProxy

                Kannst du für deine Lösung eine Anleitung machen ? Wäre für mich und andere User von Vorteil

                Kommentar


                  #9
                  Hallo,

                  Zitat von milymat Beitrag anzeigen
                  Kannst du für deine Lösung eine Anleitung machen ? Wäre für mich und andere User von Vorteil
                  du legst in deiner httpd.conf einfach einen namensbasierenden virutellen Host an. Für die Authentifizierung wird Digest-Authentication verwendet, damit Passwortinformationen schön verschlüsselt werden. Die IP-Adressen, die bei "Allow from" aufgeführt sind, dürfen ohne Authentifizierung drauf:

                  Code:
                  <VirtualHost *:80>
                          # In order to encrypt the password sent by the clients, this vHost
                          # uses digest instead of basic authentication
                  
                          ServerName openhab.yourdomain.de
                          ServerAdmin webmaster@localhost
                  
                          ProxyRequests Off
                          <Location />
                                  Deny from all
                                  Allow from 10.0.0.101 10.0.0.102 10.0.0.118
                                  AuthType Digest
                                  AuthName "Privater Bereich"
                                  AuthDigestProvider file
                                  AuthDigestDomain / http://openhab.yourdomain.de/
                                  AuthUserFile /etc/apache2/passwd/passwords_digest
                                  Require user admin
                                  Satisfy Any
                  
                                  RedirectMatch permanent ^/$ http://openhab.yourdomain.de/openhab.app?sitemap=yoursitemap
                  
                                  ProxyPass http://localhost:8080/
                                  ProxyPassReverse http://localhost:8080/
                          </Location>
                  
                          ErrorLog ${APACHE_LOG_DIR}/openhab-error.log
                          LogLevel warn
                          CustomLog ${APACHE_LOG_DIR}/openhab-access.log combined
                  </VirtualHost>
                  Ach ja, natürlich musst du die Passwortdatei mit dem User "admin" (oder irgendeinen anderen) noch anlegen. Das geht mit dem Kommando "htpasswd".

                  Gruß,
                  thoern

                  Kommentar


                    #10
                    Muss ich erst Apache ? oder kann ich den Webservices von OpenHAB verwenden ?

                    Kommentar


                      #11
                      Hi,


                      Zitat von milymat Beitrag anzeigen
                      Muss ich erst Apache ? oder kann ich den Webservices von OpenHAB verwenden ?
                      verstehe die Frage nicht. Vielleicht erläuterst du kurz mal, was du vor hast zu tun?

                      Gruß,
                      thoern

                      Kommentar


                        #12
                        ich hab die httpd.conf nicht gefunden. Deshalb war die Frage ob die Datei von Apache oder von Openhab ist.

                        Ich hab jetzt einfach einen VPN Server auf dem Raspberry installiert und gut ist.

                        Kommentar


                          #13
                          Zitat von milymat Beitrag anzeigen
                          ich hab die httpd.conf nicht gefunden. Deshalb war die Frage ob die Datei von Apache oder von Openhab ist.

                          Ich hab jetzt einfach einen VPN Server auf dem Raspberry installiert und gut ist.
                          Ach so, ok. Die httpd.conf ist die Konfigurationsdatei des Apache-Webservers. Linux-Distributionen gehen da aber oft eigene Wege und splitten sie häufig in meherere Konfigs auf (die heissen dann auch nicht mehr httpd.conf).

                          Wenn du einen Distributionsapache verwendest, solltest du in folgenden Verzeichnissen fündig werden:

                          /etc/apache2/ (Debian, etc)
                          /etc/httpd/ (Suse - bin mir aber nicht sicher) oder ähnlich


                          Gruß,
                          thoern

                          Kommentar


                            #14
                            Ich habe es mit der Anleitung geschaft den Proxy einzurichten ich kann von extern darauf zugreifen.

                            Jetzt habe ich aber noch das Problem das ich Iframes habe die auf andere lokale IP Adressen verweisen nicht angezeigt bekomme.

                            Wie kann man das noch umbiegen?

                            Kommentar


                              #15
                              Zitat von napoleonmm83 Beitrag anzeigen
                              Ich habe es mit der Anleitung geschaft den Proxy einzurichten ich kann von extern darauf zugreifen.

                              Jetzt habe ich aber noch das Problem das ich Iframes habe die auf andere lokale IP Adressen verweisen nicht angezeigt bekomme.

                              Wie kann man das noch umbiegen?
                              Hi,
                              am besten, du richtest für diese zusätzliche lokalen IP's ebenfalls ReverseProxies ein, so dass diese auch aus dem Internet erreichbar sind. Im IFrame verwendest du dann den öffentlichen Namen (und nicht mehr den lokalen).

                              Gruß,
                              Thoern

                              Kommentar

                              Lädt...
                              X