Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Einsteigerfragen
  4. Installation
  5. ioBroker v6.3.5 über Apache reverse proxy zugänglich machen

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    14
    1
    389

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    607

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    1.8k

ioBroker v6.3.5 über Apache reverse proxy zugänglich machen

Geplant Angeheftet Gesperrt Verschoben Installation
5 Beiträge 5 Kommentatoren 662 Aufrufe 5 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • O Offline
    O Offline
    olterion
    schrieb am zuletzt editiert von
    #1

    Hallo,

    ich habe eine frische Installation von ioBroker v6.3.5 auf einem Ubuntu am laufen.
    Auf einem andern Server habe ich bereits einen Apache reverse proxy eingerichtet, den ich nun auch für ioBroker nutzen möchte.
    Dazu habe ich die folgende Hilfe gefunden:
    Zugriff auf ioBroker von außen über Reverse Proxy

    Leider scheint dieses veraltet zu sein, da ich hier den Hinweis auf die Nutzung von Websockets in neueren ioBroker Versionen gefunden habe: iobroker admin 5.1 via Apache Reverse Proxy

    Nun bekomme ich aber keine vollständige config hin, die alle Dinge (admin, vis, node-red....) einschließt.

    Mit der folgenden config bekomme ich nun wenigstens Zugriff auf den Admin (für mich vorerst am wichtigsten)

    <IfModule mod_ssl.c>
    <VirtualHost *:443>
     ServerName [ URL ]
    
     SSLEngine On
    
     ProxyPass /.well-known !
     SSLProxyEngine On
     SSLProxyVerify none
     SSLProxyCheckPeerCN off
     SSLProxyCheckPeerName off
    
     ProxyRequests off
     ProxyPreserveHost on
    
     RewriteEngine On
     RewriteCond %{HTTP:Upgrade} websocket [NC]
     RewriteRule /(.*) ws://192.168.178.30:8081/$1 [P,L]
     RewriteCond %{HTTP:Upgrade} !websocket [NC]
     RewriteRule /(.*) [ interne ip ]:8081/$1 [P,L]
    
     ProxyPass / [ interne ip ]:8081
     ProxyPassReverse / [ interne ip ]:8081
    
     SSLCertificateFile /etc/letsencrypt/live/[ URL ]/fullchain.pem
     SSLCertificateKeyFile /etc/letsencrypt/live/[ URL ]/privkey.pem
     Include /etc/letsencrypt/options-ssl-apache.conf
    
    </VirtualHost>
    </IfModule>
    

    Aber ich möchte natürlich am Besten alle Vorzüge von ioBroker nutzen können.

    Eventuell kann jemand die bestehende config aus dem Wiki den aktuellen Gegebenheiten anpassen?

    Grüße,
    Olli

    PercyP BananaJoeB 2 Antworten Letzte Antwort
    0
    • O olterion

      Hallo,

      ich habe eine frische Installation von ioBroker v6.3.5 auf einem Ubuntu am laufen.
      Auf einem andern Server habe ich bereits einen Apache reverse proxy eingerichtet, den ich nun auch für ioBroker nutzen möchte.
      Dazu habe ich die folgende Hilfe gefunden:
      Zugriff auf ioBroker von außen über Reverse Proxy

      Leider scheint dieses veraltet zu sein, da ich hier den Hinweis auf die Nutzung von Websockets in neueren ioBroker Versionen gefunden habe: iobroker admin 5.1 via Apache Reverse Proxy

      Nun bekomme ich aber keine vollständige config hin, die alle Dinge (admin, vis, node-red....) einschließt.

      Mit der folgenden config bekomme ich nun wenigstens Zugriff auf den Admin (für mich vorerst am wichtigsten)

      <IfModule mod_ssl.c>
      <VirtualHost *:443>
       ServerName [ URL ]
      
       SSLEngine On
      
       ProxyPass /.well-known !
       SSLProxyEngine On
       SSLProxyVerify none
       SSLProxyCheckPeerCN off
       SSLProxyCheckPeerName off
      
       ProxyRequests off
       ProxyPreserveHost on
      
       RewriteEngine On
       RewriteCond %{HTTP:Upgrade} websocket [NC]
       RewriteRule /(.*) ws://192.168.178.30:8081/$1 [P,L]
       RewriteCond %{HTTP:Upgrade} !websocket [NC]
       RewriteRule /(.*) [ interne ip ]:8081/$1 [P,L]
      
       ProxyPass / [ interne ip ]:8081
       ProxyPassReverse / [ interne ip ]:8081
      
       SSLCertificateFile /etc/letsencrypt/live/[ URL ]/fullchain.pem
       SSLCertificateKeyFile /etc/letsencrypt/live/[ URL ]/privkey.pem
       Include /etc/letsencrypt/options-ssl-apache.conf
      
      </VirtualHost>
      </IfModule>
      

      Aber ich möchte natürlich am Besten alle Vorzüge von ioBroker nutzen können.

      Eventuell kann jemand die bestehende config aus dem Wiki den aktuellen Gegebenheiten anpassen?

      Grüße,
      Olli

      PercyP Offline
      PercyP Offline
      Percy
      schrieb am zuletzt editiert von
      #2

      @olterion Wäre nginx statt apache eine Option? Da könnte ich ein paar Tipps geben.

      Synology 918+ 16GB - ioBroker in Docker v8.0.1 | KNX | Homematic | Homemanager | evcc | SMA WR

      L 1 Antwort Letzte Antwort
      0
      • PercyP Percy

        @olterion Wäre nginx statt apache eine Option? Da könnte ich ein paar Tipps geben.

        L Offline
        L Offline
        Labskausbaron
        schrieb am zuletzt editiert von
        #3

        Hallo,

        da ich vor dem selben Problem stehe, würde ich gerne diesen Thread nochmal zum Leben erwecken...

        Hat inzwischen jemand eine Lösung um den iobroker mittels Apache2-Reverse Proxy erreichbar zu machen? Egal was ich versuche, ich komme der Lösung einfach nicht näher. Auch die beschriebene Config aus dem ersten Post lässt mich mit dem iobroker keine Verbindung herstellen. Damit bekomme ich im Browser nur einen Ladebildschirm, in dem er hängen bleibt. Vielleicht hat auch jemand einen Weg gefunden, mittels Apache2 Reverse Proxy die CCU3 zu erreichen? Für Hilfe wäre ich dankbar...

        P 1 Antwort Letzte Antwort
        0
        • L Labskausbaron

          Hallo,

          da ich vor dem selben Problem stehe, würde ich gerne diesen Thread nochmal zum Leben erwecken...

          Hat inzwischen jemand eine Lösung um den iobroker mittels Apache2-Reverse Proxy erreichbar zu machen? Egal was ich versuche, ich komme der Lösung einfach nicht näher. Auch die beschriebene Config aus dem ersten Post lässt mich mit dem iobroker keine Verbindung herstellen. Damit bekomme ich im Browser nur einen Ladebildschirm, in dem er hängen bleibt. Vielleicht hat auch jemand einen Weg gefunden, mittels Apache2 Reverse Proxy die CCU3 zu erreichen? Für Hilfe wäre ich dankbar...

          P Offline
          P Offline
          picky
          schrieb am zuletzt editiert von
          #4

          @labskausbaron Hier meine ssl apache2 config, vielleicht hilft es euch ja etwas. Ob CCU3 damit machbar ist keine Ahnung. In Vis/VIS2 sollte sich nur ein Projekt befinden. Benutzen natürlich auf eigene Gefahr, auf jeden Fall dann die Seiten per Password schützen ;-)

          # Folgende Module müssen in Apache mindestens installiert und aktiviert sein:
          # - ssl
          # - proxy
          # - rewrite
          # - proxy_wstunnel
          # - mpm_prefork
          # - mod_auth_basic
          # - mod_authn_file  -- oder andere Authentifizierungsquelle
          #
          # Alle Einträge in eckigen Klammern [] sind durch die eigenen Daten zu ersetzen.
          #
          # Die Berechtigungsprüfung erfolgt durch Apache mittels HTTP-Basic Authentication oder Parameter an der URL.  Dies hat den Vorteil, das unberechtigte Anfragen erst gar nicht zu den Systemen gelangen.
          # Da die Verbindung mit SSL/TLS gesichert ist, ist basic-Authentication vollständig ausreichend und am schnellsten.
          # In den lokalen Systemen ist die Authentifizierung auszuschalten, da die Authentifizierungsdaten nicht durchgereicht werden.
          # Die Skripte gehen davon aus, dass die lokalen Systeme mittels http angesprochen werden. Falls nicht, müssen die Zeilen entsprechend angepasst werden.
          
          # Folgender Teil ist nur erforderlich, wenn man einen lokalen Bereich auf dem Webserver haben möchte, der unter der gleichen URL erreichbar ist (z.B. um statische Daten abzulegen) und bei dem ein Caching durch den Webserver erfolgen soll.
          <IfModule mod_cache.c>
              LoadModule cache_disk_module modules/mod_cache_disk.so
              <IfModule mod_cache_disk.c>
                  CacheRoot "/var/www/html"
                  CacheEnable disk  "/"
                  CacheDirLevels 5
                  CacheDirLength 3
              </IfModule>
          
              # When acting as a proxy, don't cache the list
          #    CacheDisable "/ccu/"
              CacheDisable "/vis/"
          
               CacheDisable "/vis-2/"
              CacheDisable "/iobroker/"
              CacheDisable "/node-red/"
          </IfModule>
          
          
          
          
          # Oberste Modul-Deklaration für den kompletten durch ssl gesicherten Service
          <IfModule mod_ssl.c>
             # Festlegung des Ports, über den der Server erreichbar sein soll.
             <VirtualHost _default_:443>
          
                ServerAdmin admin@xxxxxxx.de
                ServerName www.xxxxxxx.de
          
                # Stammverzeichnis des Webservers für lokale Inhalte
                DocumentRoot /var/www/html
              <Proxy *>
                  Order deny,allow
                  Allow from all
                  Authtype Basic
                  Authname "Password Required"
                  AuthUserFile /etc/apache2/.htpasswd
                  Require valid-user
              </Proxy>
          
          
                  # Festlegung der Eigenschaften für das Root-Directory auf dem Webserver und alle Unterverzeichnisse
                <Directory />
                   Options FollowSymLinks
                   AllowOverride None
          
                      # Festlegung der Authentifizierungseigenschaften
                   # Hier wird basic-Authentification mit Liste der berechtigten User konfiguriert.
                   # Anleitung zur Konfiguration von Benutzern siehe https://httpd.apache.org/docs/current/howto/auth.html
          #         AuthType basic
          #         AuthName "home"
          #         AuthBasicProvider file
          #         <proxy *="">Order deny,allow
          #        Allow from all
          #        Authtype Basic
          #        Authname "Password Required"
          #        AuthUserFile /etc/apache2/.htpasswd
          #        Require valid-user  </proxy>     
          #     AuthUserFile /etc/apache2/.htpasswd
          
                   # Festlegung, dass die Authentifizierung erfordlich ist. Speziell für die App kann kein Basic-Authentication verwendet werden, da diese Teile im Protokoll nicht enthalten sind.
                   # Für die App kann alternativ auf die dort angegeben Daten für User und Password geprüft werden. Diese Werte werden in der URL als Parameter übertragen.
                   # Die Werte werden nicht aus der Passwort-Datei ausgelesen sondern müssen hier statisch konfiguriert werden.
                   # Wichtig: Nur der erste Request muss beim Öffnen der Verbindung authentifizieren.
                   # Alle nachfolgenden Request über die gleiche http-Verbindung verwenden automatisch die gleichen Credentials. Deswegen ist beim Zugriff auf VIS die http-Authentifizierung für index.html ausreichend.
                   <RequireAny>
                      # Zugriff über URL-Authentifizierung
              #        <RequireAll> # Erlaubt auch noch die Einschänkung auf andere Eigenschaften
              #           Require expr %{QUERY_STRING} =~ /user=r&pass=a/
              #        </RequireAll>
                          # Für alle anderen Zugriffe ist http-Authentifizierung erforderlich
                      Require valid-user
                   </RequireAny>
                </Directory>
          
                  # Eintrag falls noch lokale Scripte wie z.B. PHP unterstützt werden sollen (muss natürlich getrennt installiert und eingerichtet werden)
          #      ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
          #      <Directory "/usr/lib/cgi-bin">
          #         AllowOverride None
          #         Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
          #         Order allow,deny
          #         Allow from all
          #      </Directory>
          
                # Einrichtung der Zertifikate für die Verschlüsselung
                # Weitere Informationen siehe z.B. https://thomas-leister.de/apache2-webserver-ssl-verschluesselte-verbindungen-ermoeglichen/
               ## SSLCertificateFile /etc/apache2/ssl/[ Name der Zertifikatdatei ].crt
               ## SSLCertificateKeyFile /etc/apache2/ssl/[ Name der Datei mit dem privaten Schnlüssel ].key
               ## SSLCertificateChainFile /etc/apache2/ssl/[ evtl Name der Datei mit der Key Chain bis zum Root-Zertifikat ].crt
              
               Include /etc/letsencrypt/options-ssl-apache.conf
              ServerAlias xxxxxxx.de
              SSLCertificateFile /etc/letsencrypt/live/xxxxxxx.de/fullchain.pem
              SSLCertificateKeyFile /etc/letsencrypt/live/xxxxxxx.de/privkey.pem
          
          
                # Rewrite-Regeln
                # Wichtig: Bei den nachfolgenden Mod-Proxy-Einträgen ist die Reihenfolge relevant. Die Auswertung erfolgt von oben nach unten. Das erste passende ProxyPass-Statement gilt.
          
          
                  # Weiterleitung für Node-Red
                # Wichtig: Damit die Websocket-Verbindung korrekt weitergeleitet werden kann, muss in den Adapter-Einstellungen von Node-Red in "http root directory" "node-red" eingetragen werden.
                # Ohne Websocket-Verbindung kann man trotzdem auf die IDE zugreifen, bekommt jedoch keine Debug-Information angezeigt.
                # Der Zugriff auf Node-erfolgt dann intern http://[ interne IP ]:1880/node-red und extern über https://[ externe URL ]/node-red
                <IfModule mod_proxy.c>
                   RewriteEngine On
                   redirectmatch ^/node-red$ /node-red/
          
                   # Spezieller Eintrag für websocket-Verbindung
                   RewriteCond %{REQUEST_URI} ^/node-red/comms [NC]
                   RewriteRule /(.*) ws://192.168.178.27:1880/$1 [P,L]
          
                   ProxyPass /node-red/ http://192.168.178.27:1880/node-red/
                   ProxyPassReverse /node-red/ http://192.168.178.27:1880/node-red/
                </IfModule>
          
                # Prototyp für Foscam Webcam
                # Der Zugriff auf die Webcam dann extern über https://[ externe URL ]/video1
          
          #      <IfModule mod_proxy.c>
          #         ProxyRequests off
          #         RewriteEngine On
          #         redirectmatch ^/video1$ /video1/
          #         rewritecond %{REQUEST_URI} ^/video1/
          #         rewriterule (.*) $1 [PT]
          #
          #         # Referer Auswertung, falls eine lokale absolute Referenz auf den Seiten ist. In diesem Fall wird /video1 ergänzt, damit ProxyPass matched.
          #         rewritecond %{HTTP_REFERER} https://[ externe URL ]/video1/
          #         rewriterule ^/(.*) /video1/$1 [PT]
          #
          #         ProxyPass /video1/ http://[ interne IP ]/
          #         ProxyPassReverse /video1/ http://[ interne IP ]/
          #      </IfModule>
          
          
                # Rewrite-Regeln für Homematic CCU
                # Stammt ursprünglich aus Homematic Forum
                # Der Zugriff auf die CCU efolgt intern weiterhin über http://[ interne IP ] und extern über https://[ externe URL ]/ccu
          
          #      <IfModule mod_proxy.c>
          #         ProxyRequests off
          #         RewriteEngine On
          #         redirectmatch ^/ccu$ /ccu/
          #         rewritecond %{REQUEST_URI} ^/ccu/
          #         rewriterule (.*) $1 [PT]
          #
          #         # Referer Auswertung, falls eine lokale absolute Referenz auf den Seiten ist. In diesem Fall wird /ccu ergänzt, damit ProxyPass matched.
          #         rewritecond %{HTTP_REFERER} https://[ externe URL ]/ccu/ [OR]
          #         rewritecond %{HTTP_REFERER} https://[ externe URL ]/webui/ [OR]
          #         rewritecond %{HTTP_REFERER} https://[ externe URL ]/pda/ [OR]
          #         rewritecond %{HTTP_REFERER} https://[ externe URL ]/api/ [OR]
          #         rewritecond %{HTTP_REFERER} https://[ externe URL ]/addons/xmlapi/ [OR]
          #         rewritecond %{HTTP_REFERER} https://[ externe URL ]/addons/cuxd/
          #         rewritecond %{HTTP_REFERER} \?sid\=\@.+\@ [OR]
          #         rewritecond %{THE_REQUEST} \?sid\=\@.+\@
          #         rewriterule ^/(.*) /ccu/$1 [PT]
          #         rewriterule ^/pda/(.*) /ccu/pda/$1
          #         rewriterule ^/webui/(.*) /ccu/webui/$1
          #         rewriterule ^/addons/db/(.*) /ccu/addons/db/$1
          #         rewriterule ^/addons/xmlapi/(.*) /ccu/addons/xmlapi/$1
          #         rewriterule ^/addons/cuxd/(.*) /ccu/addons/cuxd/$1
          #         ProxyPass /ccu/ http://[ interne IP ]/ timeout=1200
          #         ProxyPassReverse /ccu/ http://[ interne IP ]/ timeout=1200
          #      </IfModule>
          
          
                # Rewrite-Regeln für ioBroker Admin
                # ToDo: Websocket-Kommunikation für Parameter in den Einstellungen fehlt.
                # Der Zugriff auf die Admin-Seite efolgt intern weiterhin über http://[ interne IP ]:8081 und extern über https://[ externe URL ]/iobroker
                <IfModule mod_proxy.c>
                   ProxyRequests off
                   RewriteEngine On
                   redirectmatch ^/iobroker$ /iobroker/
                   rewritecond %{REQUEST_URI} ^/iobroker/
                   rewriterule (.*) $1 [PT]
                   rewritecond %{HTTP_REFERER} https://www.xxxxxxx.de/iobroker/
                   rewriterule ^/(.*) /iobroker/$1 [PT]
          
                   ProxyPass /iobroker/ http://192.168.178.27:8081/ timeout=1200
                   ProxyPassReverse /iobroker/ http://192.168.178.27:8081/ timeout=1200
                </IfModule>
          
                # Rewrite-Regeln für ioBroker VIS
                # Die socket.io-Kommunikation und der Zugriff auf /lib wird nachfolgend getrennt geregelt (geht bestimmt auch einfacher hier lokal)
                # Wichtig: Im web-Adapter mit "Socket.IO Instance" auf integriert stehen.
                # Der Zugriff auf die Admin-Seite efolgt intern weiterhin über http://[ interne IP ]:8082/vis/index.html und extern über https://[ externe URL ]/vis/vis/index.html.
                <IfModule mod_proxy.c>
                   ProxyRequests off
                   RewriteEngine On
                   redirectmatch ^/vis$ /vis/
                   rewritecond %{REQUEST_URI} ^/vis/
                   rewriterule (.*) $1 [PT]
          
                   # Referer Auswertung, falls eine lokale absolute Referenz auf den Seiten ist. In diesem Fall wird /vis ergänzt, damit ProxyPass matched.
                   # Referenzen auf node-red, static und socket.io werden explizit ausgeschlossen.
                   rewritecond %{HTTP_REFERER} https://www.xxxxxxx.de/vis/
                   rewritecond %{REQUEST_URI} !^/node-red/
                   rewritecond %{REQUEST_URI} !^/static/
                   rewritecond %{REQUEST_URI} !^/socket.io/
                   rewriterule ^/(.*) /vis/$1 [PT]
          
                   ProxyPass /vis/ http://192.168.178.27:8082/ timeout=60
                   ProxyPassReverse /vis/ http://192.168.178.27:8082/ timeout=60
                   </IfModule> 
          
          ################
          
                  # Rewrite-Regeln für ioBroker VIS-2
                # Die socket.io-Kommunikation und der Zugriff auf /lib wird nachfolgend getrennt geregelt (geht bestimmt auch einfacher hier lokal)
                # Wichtig: Im web-Adapter mit "Socket.IO Instance" auf integriert stehen.
                # Der Zugriff auf die Admin-Seite efolgt intern weiterhin über http://[ interne IP ]:8082/vis/index.html und extern über https://[ externe URL ]/vis/vis/index.html.
                <IfModule mod_proxy.c>
                   ProxyRequests off
                   RewriteEngine On
                   redirectmatch ^/vis-2$ /vis-2/
                   rewritecond %{REQUEST_URI} ^/vis-2/
                   rewriterule (.*) $1 [PT]
          
                   # Referer Auswertung, falls eine lokale absolute Referenz auf den Seiten ist. In diesem Fall wird /vis ergänzt, damit ProxyPass matched.
                   # Referenzen auf node-red, static und socket.io werden explizit ausgeschlossen.
                   rewritecond %{HTTP_REFERER} https://www.xxxxxxx.de/vis-2/
                   rewritecond %{REQUEST_URI} !^/node-red/
                   rewritecond %{REQUEST_URI} !^/static/
                   rewritecond %{REQUEST_URI} !^/socket.io/
                   rewriterule ^/(.*) /vis-2/$1 [PT]
          
                   ProxyPass /vis-2/ http://192.168.178.27:8082/ timeout=10
                   ProxyPassReverse /vis-2/ http://192.168.178.27:8082/ timeout=10
                   </IfModule>
          
          
                # Rewrite-Regeln für einen direkten Zugriff auf das Verzeichnis /lib des Web-Servers von ioBroker VIS ohne Referer
                # Dürfte normalerweise nicht benötigt werden.
                <IfModule mod_proxy.c>
                   ProxyRequests off
                   RewriteEngine On
                   redirectmatch ^/lib$ /lib/
                   rewritecond %{REQUEST_URI} ^/lib/
                   rewriterule (.*) $1 [PT]
                   ProxyPass /lib/ http://192.168.178.27:8082/lib/ timeout=60
                   ProxyPassReverse /lib/ http://192.168.178.27:8082/lib/ timeout=60
                </IfModule>
          
          
                # Rewrite-Regeln für einen direkten Zugriff auf auf flot ohne VIS
                <IfModule mod_proxy.c>
                   ProxyRequests off
                   RewriteEngine On
                   redirectmatch ^/flot$ /flot/
                   rewritecond %{REQUEST_URI} ^/flot/
                   rewriterule (.*) $1 [PT]
                   ProxyPass /flot/ http://192.168.178.27/flot/ timeout=10
                   ProxyPassReverse /flot/ http://192.168.178.27:8082/flot/ timeout=10
                </IfModule>
          
                # Rewrite-Regeln für einen direkten Zugriff auf auf rickshaw ohne VIS
                <IfModule mod_proxy.c>
                   ProxyRequests off
                   RewriteEngine On
                   redirectmatch ^/rickshaw$ /rickshaw/
                   rewritecond %{REQUEST_URI} ^/rickshaw/
                   rewriterule (.*) $1 [PT]
                   ProxyPass /rickshaw/ http://192.168.178.27:8082/rickshaw/ timeout=10
                   ProxyPassReverse /rickshaw/ http://192.168.178.27/rickshaw/ timeout=10
                </IfModule>
          
          
                # Rewrite-Regeln für die socket.io Websocket-Verbindung von VIS und APP
                # Wichtig: Da socket.io im Webadapter auf intern steht, sollte hier auch auf den Web-Adapter und nicht auf einen separaten socket.io-Adapter referenziert werden.
                # Setzt externes WSS (Verschlüsselte Websocket-Verbindung) auf internen WS (ohne SSL/TLS) um.
                <IfModule mod_proxy.c>
                   RewriteEngine On
                   Redirectmatch ^/socket.io$ /socket.io/
                   RewriteCond %{REQUEST_URI} ^/socket.io/
                   RewriteCond %{QUERY_STRING} transport=websocket
                   RewriteRule ^/(.*) /wss/$1 [PT]
                   ProxyPass /wss/ ws://192.168.178.27:8082/ timeout=1200 Keepalive=On
                   # ProxyPassReverse / ws://192.168.178.27:8082/              #
                </IfModule>
          
                # Rewrite-Regeln für die Datei _socket im Hauptverzeichnis vom Web-Server
                <IfModule mod_proxy.c>
                   ProxyRequests off
                   RewriteEngine On
                   Redirectmatch ^/_socket$ /_socket/
                   RewriteCond %{REQUEST_URI} ^/_socket/
          
                   RewriteRule (.*) $1 [PT]
                   ProxyPass /_socket/ http://192.168.178.27:8082/_socket/
                   ProxyPassReverse /_socket http://192.168.178.27:8082/_socket/
                </IfModule>
          
                # Rewrite-Regeln für die socket.io Verbindung im Polling-Modus über HTTPS von VIS und APP
                # Wichtig: Da socket.io im Webadapter auf intern steht, sollte hier auch auf den Web-Adapter und nicht auf einen separaten socket.io-Adapter referenziert werden.
                <IfModule mod_proxy.c>
                   ProxyRequests off
                   RewriteEngine On
                   Redirectmatch ^/socket.io$ /socket.io/
                   RewriteCond %{REQUEST_URI} ^/socket.io/
                   RewriteCond %{QUERY_STRING} transport=polling
                   RewriteRule (.*) $1 [PT]
          
                   ProxyPass /socket.io/ http://192.168.178.27:8082/socket.io/
                   ProxyPassReverse /socket.io/ http://192.168.178.27:8082/socket.io/
                </IfModule>
           
          
          
          
          
          
          #interne ip frei geben #######################################################
          
          # simple-api extern
                <IfModule mod_proxy.c>
                   ProxyRequests off
                   RewriteEngine On
                   redirectmatch ^/extern$ /extern/
                   rewritecond %{REQUEST_URI} ^/extern/
                   rewriterule (.*) $1 [PT]
          #         # Referer Auswertung, falls eine lokale absolute Referenz auf den Seiten ist. In diesem Fall wird /video1 ergänzt, damit ProxyPass matched.
                   rewritecond %{HTTP_REFERER} https://www.xxxxxxx.de/extern/
                   rewriterule ^/(.*) /extern/$1 [PT]
                   ProxyPass /extern/ http://192.168.178.27:8087/
                   ProxyPassReverse /extern/ http://192.168.178.27:8087/
                </IfModule>
          
           # echarts extern
          #      <IfModule mod_proxy.c>
          #         ProxyRequests off
          #         RewriteEngine On
          #         redirectmatch ^/echarts$ /echarts/
          #         rewritecond %{REQUEST_URI} ^/echarts/
          #         rewriterule (.*) $1 [PT]
          #         RewriteRule /(.*) ws://192.168.178.27:1882/$1 [P,L]
          #         # Referer Auswertung, falls eine lokale absolute Referenz auf den Seiten ist. In diesem Fall wird /video1 ergänzt, damit ProxyPass matched.
          #         rewritecond %{HTTP_REFERER} https://www.xxxxxxx.de/echarts/
          #         rewriterule ^/(.*) /echarts/$1 [PT]
          #         ProxyPass /echarts/ http://192.168.178.27:8082/echarts/
          #         ProxyPassReverse /echarts/ http://192.168.178.27:8082/echarts/
          #      </IfModule>
          
          
          #entfeuchter intern
                <IfModule mod_proxy.c>
                   ProxyRequests off
                   RewriteEngine On
                   redirectmatch ^/entfeuchter$ /entfeuchter/
                   rewritecond %{REQUEST_URI} ^/entfeuchter/
                   rewriterule (.*) $1 [PT]
          #         # Referer Auswertung, falls eine lokale absolute Referenz auf den Seiten ist. In diesem Fall wird /video1 ergänzt, damit ProxyPass matched.
                   rewritecond %{HTTP_REFERER} https://www.xxxxxxx.de/entfeuchter/
                   rewriterule ^/(.*) /entfeuchter/$1 [PT]
                   ProxyPass /entfeuchter/ http://192.168.178.23/
                   ProxyPassReverse /entfeuchter/ http://192.168.178.23/
                </IfModule>
          
          
          
          #energiefluss
                <IfModule mod_proxy.c>
                   ProxyRequests off
                   RewriteEngine On
                   redirectmatch ^/energiefluss$ /energiefluss/
                   rewritecond %{REQUEST_URI} ^/energiefluss/
                   rewriterule (.*) $1 [PT]
                   rewritecond %{HTTP_REFERER} https://www.xxxxxxx.de/vis/energiefluss/
                   rewriterule ^/(.*) /energiefluss/$1 [PT]
                   ProxyPass /energiefluss/ http://192.168.178.27:8082/energiefluss/index.html?instance=0
                   ProxyPassReverse /energiefluss/ http://192.168.178.27:8082/energiefluss/index.html?instance=0
          
          #         ProxyPass /energiefluss/ http://192.168.178.27:8082/energiefluss/
          #         ProxyPassReverse /energiefluss/ http://192.168.178.27:8082/energiefluss/
          #  https://r:a@www.xxxxxxx.de/energiefluss/index.html?instance=0
          
                </IfModule>
          
          
          #shelly3em
                <IfModule mod_proxy.c>
                   ProxyRequests off
                   RewriteEngine On
                   redirectmatch ^/shelly3em$ /shelly3em/
                   rewritecond %{REQUEST_URI} ^/shelly3em/
                   rewriterule (.*) $1 [PT]
                   rewritecond %{HTTP_REFERER} https://www.xxxxxxx.de/shelly3em/
                   rewriterule ^/(.*) /shelly3em/$1 [PT]
                   ProxyPass /shelly3em/ http://192.168.178.54/
                   ProxyPassReverse /shelly3em/ http://192.168.178.54/
                </IfModule>
          
          #solar
                <IfModule mod_proxy.c>
                   ProxyRequests off
                   RewriteEngine On
                   redirectmatch ^/solar$ /solar/
                   rewritecond %{REQUEST_URI} ^/solar/
                   rewriterule (.*) $1 [PT]
                   rewritecond %{HTTP_REFERER} https://www.xxxxxxx.de/solar/
                   rewriterule ^/(.*) /solar/$1 [PT]
                   ProxyPass /solar/ http://192.168.178.32/
                   ProxyPassReverse /rolltor/ http://192.168.178.32/
                </IfModule>
                
          #zigbee0
                <IfModule mod_proxy.c>
                   ProxyRequests off
                   RewriteEngine On
                   redirectmatch ^/zigbee0$ /zigbee0/
                   rewritecond %{REQUEST_URI} ^/zigbee0/
                   rewriterule (.*) $1 [PT]
                   rewritecond %{HTTP_REFERER} https://www.xxxxxxx.de/zigbee0/
                   rewriterule ^/(.*) /solar/$1 [PT]
                   ProxyPass /zigbee0/ http://192.168.178.32/
                   ProxyPassReverse /zigbee0/ http://192.168.178.48/
                </IfModule>
                
          
          ######################### LK      
          
          #rolltor
                <IfModule mod_proxy.c>
                   ProxyRequests off
                   RewriteEngine On
                   redirectmatch ^/rolltor$ /rolltor/
                   rewritecond %{REQUEST_URI} ^/rolltor/
                   rewriterule (.*) $1 [PT]
                   rewritecond %{HTTP_REFERER} https://www.xxxxxxx.de/rolltor/
                   rewriterule ^/(.*) /rolltor/$1 [PT]
                   ProxyPass /rolltor/ http://192.168.1.26/
                   ProxyPassReverse /rolltor/ http://192.168.1.26/
                </IfModule>
          
          
          #kartoffel
                <IfModule mod_proxy.c>
                   ProxyRequests off
                   RewriteEngine On
                   redirectmatch ^/kartoffel$ /kartoffel/
                   rewritecond %{REQUEST_URI} ^/kartoffel/
                   rewriterule (.*) $1 [PT]
                   rewritecond %{HTTP_REFERER} https://www.xxxxxxx.de/kartoffel/
                   rewriterule ^/(.*) /kartoffel/$1 [PT]
                   ProxyPass /kartoffel/ http://192.168.1.42/
                   ProxyPassReverse /kartoffel/ http://192.168.1.42/
                </IfModule>
          
          #Wera
                <IfModule mod_proxy.c>
                   ProxyRequests off
                   RewriteEngine On
                   redirectmatch ^/Wera$ /Wera/
                   rewritecond %{REQUEST_URI} ^/Wera/
                   rewriterule (.*) $1 [PT]
                   rewritecond %{HTTP_REFERER} https://www.xxxxxxx.de/Wera/
                   rewriterule ^/(.*) /Wera/$1 [PT]
                   ProxyPass /Wera/ http://192.168.1.44/
                   ProxyPassReverse /Wera/ http://192.168.1.42/
                </IfModule>
          
          #Tora
                <IfModule mod_proxy.c>
                   ProxyRequests off
                   RewriteEngine On
                   redirectmatch ^/Tora$ /Tora/
                   rewritecond %{REQUEST_URI} ^/Tora/
                   rewriterule (.*) $1 [PT]
                   rewritecond %{HTTP_REFERER} https://www.xxxxxxx.de/Tora/
                   rewriterule ^/(.*) /Tora/$1 [PT]
                   ProxyPass /Tora/ http://192.168.1.43/
                   ProxyPassReverse /Tora/ http://192.168.1.43/
                </IfModule>
          
          #ziegen1
                <IfModule mod_proxy.c>
                   ProxyRequests off
                   RewriteEngine On
                   redirectmatch ^/ziegen1$ /ziegen1/
                   rewritecond %{REQUEST_URI} ^/ziegen1/
                   rewriterule (.*) $1 [PT]
                   rewritecond %{HTTP_REFERER} https://www.xxxxxxx.de/ziegen1/
                   rewriterule ^/(.*) /ziegen1/$1 [PT]
                   ProxyPass /ziegen1/ http://192.168.1.40/
                   ProxyPassReverse /ziegen1/ http://192.168.1.40/
                </IfModule>
          
          #zigbee1
                <IfModule mod_proxy.c>
                   ProxyRequests off
                   RewriteEngine On
                   redirectmatch ^/zigbee1$ /zigbee1/
                   rewritecond %{REQUEST_URI} ^/zigbee1/
                   rewriterule (.*) $1 [PT]
                   rewritecond %{HTTP_REFERER} https://www.xxxxxxx.de/zigbee1/
                   rewriterule ^/(.*) /zigbee1/$1 [PT]
                   ProxyPass /zigbee1/ http://192.168.1.32/
                   ProxyPassReverse /zigbee1/ http://192.168.1.32/
                </IfModule>
          
          
                # Parameter für die Steuerung der Log-Ausgabe beim Rewrite
                # Die Logausgabe kann durch Entfernen der # aktiviert werden
                #LogLevel warn
                #LogLevel alert rewrite:trace8
                #CustomLog ${APACHE_LOG_DIR}/ssl_access2.log combined
                  ErrorLog ${APACHE_LOG_DIR}/error.log
                  CustomLog ${APACHE_LOG_DIR}/access.log combined
          
          
                # Generelles Anschalten von SSL
                SSLEngine on
          
          
                # Sonderregeln für Scripte
                <FilesMatch "\.(shtml|phtml|php)$">
                   SSLOptions +StdEnvVars
                </FilesMatch>
                <Directory /usr/lib/cgi-bin>
                   SSLOptions +StdEnvVars
                </Directory>
             </VirtualHost>
          </IfModule>
          
          1 Antwort Letzte Antwort
          0
          • O olterion

            Hallo,

            ich habe eine frische Installation von ioBroker v6.3.5 auf einem Ubuntu am laufen.
            Auf einem andern Server habe ich bereits einen Apache reverse proxy eingerichtet, den ich nun auch für ioBroker nutzen möchte.
            Dazu habe ich die folgende Hilfe gefunden:
            Zugriff auf ioBroker von außen über Reverse Proxy

            Leider scheint dieses veraltet zu sein, da ich hier den Hinweis auf die Nutzung von Websockets in neueren ioBroker Versionen gefunden habe: iobroker admin 5.1 via Apache Reverse Proxy

            Nun bekomme ich aber keine vollständige config hin, die alle Dinge (admin, vis, node-red....) einschließt.

            Mit der folgenden config bekomme ich nun wenigstens Zugriff auf den Admin (für mich vorerst am wichtigsten)

            <IfModule mod_ssl.c>
            <VirtualHost *:443>
             ServerName [ URL ]
            
             SSLEngine On
            
             ProxyPass /.well-known !
             SSLProxyEngine On
             SSLProxyVerify none
             SSLProxyCheckPeerCN off
             SSLProxyCheckPeerName off
            
             ProxyRequests off
             ProxyPreserveHost on
            
             RewriteEngine On
             RewriteCond %{HTTP:Upgrade} websocket [NC]
             RewriteRule /(.*) ws://192.168.178.30:8081/$1 [P,L]
             RewriteCond %{HTTP:Upgrade} !websocket [NC]
             RewriteRule /(.*) [ interne ip ]:8081/$1 [P,L]
            
             ProxyPass / [ interne ip ]:8081
             ProxyPassReverse / [ interne ip ]:8081
            
             SSLCertificateFile /etc/letsencrypt/live/[ URL ]/fullchain.pem
             SSLCertificateKeyFile /etc/letsencrypt/live/[ URL ]/privkey.pem
             Include /etc/letsencrypt/options-ssl-apache.conf
            
            </VirtualHost>
            </IfModule>
            

            Aber ich möchte natürlich am Besten alle Vorzüge von ioBroker nutzen können.

            Eventuell kann jemand die bestehende config aus dem Wiki den aktuellen Gegebenheiten anpassen?

            Grüße,
            Olli

            BananaJoeB Offline
            BananaJoeB Offline
            BananaJoe
            Most Active
            schrieb am zuletzt editiert von
            #5

            @olterion kann es gerade auf die schnelle nicht testen, hatte das aber schon mal in einem anderen Projekt (Guacamole):

            https://httpd.apache.org/docs/2.4/mod/mod_proxy_wstunnel.html

            Die WebSockets kann man damit auch durch den Proxy schicken. Ich hatte das schon hier benutzt:
            https://znil.net/index.php?title=Ubuntu_20.04.x_LTS_-_Guacamole_HTML5_Remotedesktop_Gateway_installieren_mit_Apache_Reverse_Proxy#Apache_.vhost_anpassen

            Soweit ich das sehe hast du in deiner Config zwar ein Rewrite drin, aber kein ProxyPass für ws

            Die Kunst ist nur die richtigen Pfade zu finden.
            ABER! das wird dann oft durch viele Firmenfirewalls nicht funktionieren, diese blockieren WebSockets oft bzw. haben keine passende Regel in der Firewall/Proxy welche diese durchlässt.

            ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 9 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 48TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=160 Tasmota/Shelly || >=95 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV 750W kaskadiert || Creality CR-10 SE 3D-Drucker

            1 Antwort Letzte Antwort
            0
            Antworten
            • In einem neuen Thema antworten
            Anmelden zum Antworten
            • Älteste zuerst
            • Neuste zuerst
            • Meiste Stimmen


            Support us

            ioBroker
            Community Adapters
            Donate

            850

            Online

            32.6k

            Benutzer

            81.9k

            Themen

            1.3m

            Beiträge
            Community
            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
            ioBroker Community 2014-2025
            logo
            • Anmelden

            • Du hast noch kein Konto? Registrieren

            • Anmelden oder registrieren, um zu suchen
            • Erster Beitrag
              Letzter Beitrag
            0
            • Home
            • Aktuell
            • Tags
            • Ungelesen 0
            • Kategorien
            • Unreplied
            • Beliebt
            • GitHub
            • Docu
            • Hilfe