Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Iobroker über ReverseProxy (NGINX)

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Iobroker über ReverseProxy (NGINX)

    This topic has been deleted. Only users with topic management privileges can see it.
    • Alexander Peter
      Alexander Peter last edited by

      Re: IoBroker (und vis) über ReverseProxy

      Hallo zusammen, ich bin ziemlich am verzweifeln da ich den iobroker nicht über einen reverse proxy bekomme.
      Ich verwende den neuen Admin adapter und bekomm nur die Ladeanimitation zu sehen. Am Proxy bzw. im Browser ist nachvollziehbar das socket.io anfragen versendet werden (Http Status 200) die URL passt leider garnicht.

      Für meine Tests habe ich kein SSL und keine weitere Authentifizierung eingebaut.

      map $http_upgrade $connection_upgrade {
      default upgrade;
      ''close;
      }
      
      
      upstream iobroker.peter-net.local {
      server iobroker.peter-net.local:8081;
      }
      
      
      
      location /iobroker/{
      
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Host $host;
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "upgrade";
      
      
      proxy_set_headerHost $host;
      proxy_set_headerX-Real-IP $remote_addr;
      proxy_set_headerX-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_headerX-Forwarded-Proto $scheme;
      proxy_pass http://iobroker.peter-net.local/;
      proxy_read_timeout  90;
      
      }
      

      Die Requests die meines Erachtens nicht passen sind:
      requests.jpg
      bzw.:

      194.XXX.XXX.XXX- admin [19/Nov/2021:08:45:53 +0000] "GET /?sid=XXXXXXXX&name=admin HTTP/1.1" 200 1071 -" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Firefox/78.0"
      

      meine Vermutung ist dass ich nginx beibringen muss dass die requests nicht an "/?sid=XXXXXX&name=admin" gehen sollen sondern an "/iobroker/?sid=XXXXXX&name=admin"

      Hat jemand einen Tipp für mich? Ich bin leider ziemlich ratlos.🤔

      mickym 2 Replies Last reply Reply Quote 0
      • mickym
        mickym Most Active @Alexander Peter last edited by mickym

        gelöscht

        mickym 1 Reply Last reply Reply Quote 0
        • mickym
          mickym Most Active @mickym last edited by mickym

          gelöscht

          1 Reply Last reply Reply Quote 0
          • mickym
            mickym Most Active @Alexander Peter last edited by mickym

            @alexander-peter Vergiss es meine Konfig - funktioniert mit dem Admin5 auch nicht mehr. Bleibe auch im Ladebildschirm hängen. - Stecke da aber keinen Aufwand mehr rein.
            Lediglich mein NodeRed Dashboard und Zugang zu NodeRed an sich funktioniert noch über nginx.

            Sorry dass ich nicht mehr helfen kann. 😞

            Alexander Peter 1 Reply Last reply Reply Quote 0
            • Alexander Peter
              Alexander Peter @mickym last edited by

              @mickym Danke auf jeden fall für deine Mühe.

              JLeg 1 Reply Last reply Reply Quote 0
              • JLeg
                JLeg @Alexander Peter last edited by

                @alexander-peter Hi, ich hatte mir das auch mal konfiguriert, allerdings dann doch nicht benutzt; gerade mal mit dem aktuellen Admin5 getestet - bei mir funktionierts augenscheinlich.
                Meine Config sieht bissel anders aus, da ich da basic auth und letsencrypt mit drin habe, die entscheidenden Zeilen dürften aber sein:

                root         /opt/iobroker/iobroker-data/files/admin.admin/;
                        location ~ ^/(.*) { 
                            proxy_pass https://127.0.0.1:8081/$1$is_args$args;
                            proxy_http_version 1.1;
                            proxy_set_header Upgrade $http_upgrade;
                            proxy_set_header Connection "Upgrade";
                            proxy_set_header Host $host;
                        }
                
                
                Alexander Peter 1 Reply Last reply Reply Quote 0
                • Alexander Peter
                  Alexander Peter @JLeg last edited by

                  @jleg

                  danke für das Beispiel, stupide kopiert klappts leider - aber natürlich - nicht

                  nachdem das root bei dir so angegeben ist - vermute ich der nginx läuft auf der selben maschine wie der iobroker?
                  Und die definition der Location bezieht sich per regex auf alles. Somit kommen die websockt anfragen natürlich auch dort an wo sie hin sollen.

                  In meinem Case hilft mir das leider nicht wirklich - trozdem danke

                  1 Reply Last reply Reply Quote 0
                  • JLeg
                    JLeg last edited by

                    @alexander-peter sagte in Iobroker über ReverseProxy (NGINX):

                    @jleg

                    danke für das Beispiel, stupide kopiert klappts leider - aber natürlich - nicht

                    nachdem das root bei dir so angegeben ist - vermute ich der nginx läuft auf der selben maschine wie der iobroker?

                    Yep.

                    Und die definition der Location bezieht sich per regex auf alles. Somit kommen die websockt anfragen natürlich auch dort an wo sie hin sollen.

                    In meinem Case hilft mir das leider nicht wirklich - trozdem danke

                    da hilft meistens ‚debuggen‘ 😉 - eigentlich sollte der nginx im log andeuten, was er macht oder nicht macht; dazu am besten den error-loglevel des nginx auf ‚info‘ setzen…

                    Je nachdem wie dein Fehlerbild ist, vielleicht auch mal in der Browserkonsole schauen, was passiert (F12).

                    Alexander Peter 1 Reply Last reply Reply Quote 0
                    • Alexander Peter
                      Alexander Peter @JLeg last edited by

                      @jleg
                      ja danke für den tipp 😉 mit dem reverse geproxy bin ich nicht so wirklich fit.

                      ich habe eine config zusammengebastelt die jetzt akutell funzt (- aber hässlich ist:)
                      Tatsächlich waren es die im 1. Beitrag genannten socket.io anfragen. Diese habe ich in der Location "/" in den Argumenten abgeprüft uns schreibe sie um nach /iobroker/.....
                      (weiß jemand wie ich das in der location "/iobroker/" abfrühstücken kann? )
                      Vermutlich werden noch andere Probleme auftauchen. Was mir schon aufgefallen ist bei eingeschaltener auth über den iobroker wird auch wieder auf das root verzeichniss verwiesen

                      vll hilft es ja jemandem:

                      map $http_upgrade $connection_upgrade {
                        default upgrade;
                        ''      close;
                      }
                      
                      
                      
                      upstream iobroker.mein-heim.netz {
                            server iobroker.mein-heim.netz:8081;
                         }
                         
                       
                      
                      
                      server {
                        listen 80;
                        listen [::]:80;
                        server_name bla-blub.de;
                      
                        location /grafana {
                           proxy_pass         http://grafana.mein-heim.netz:3000;
                           rewrite  ^/grafana/(.*)  /$1 break;
                           proxy_set_header   Host $host;
                           auth_basic "Log in to continue";
                           auth_basic_user_file /etc/nginx/.htpasswd;
                        }
                      
                        location /cams/ {
                          proxy_pass http://motioneye.mein-heim.netz:8765/;
                          proxy_read_timeout 120s;
                           auth_basic "Log in to continue";
                           auth_basic_user_file /etc/nginx/.htpasswd;
                          
                        }
                      
                        location /nas/ {
                          proxy_pass http://diskstation.mein-heim.netz:5000/;
                          auth_basic "Log in to continue";
                          auth_basic_user_file /etc/nginx/.htpasswd;
                      
                        }
                      
                      location /guacamole {
                      	proxy_pass http://guacamole.mein-heim.netz:8080/guacamole;
                      	proxy_buffering off;
                      	access_log off;
                      	tcp_nodelay on;
                      	tcp_nopush off;
                      	sendfile on;
                      	client_body_buffer_size 10K;
                      	#client_header_buffer_size 1k;
                      	client_max_body_size 8m;
                      	#large_client_header_buffers 2 1k;
                      	client_body_timeout 12;
                      	#client_header_timeout 12;
                      	keepalive_timeout 15;
                      	send_timeout 10;
                      	proxy_http_version 1.1;
                      	proxy_set_header Upgrade $http_upgrade;
                      	proxy_set_header Connection "upgrade";
                      	auth_basic "Log in to continue";
                          auth_basic_user_file /etc/nginx/.htpasswd;
                      }
                      
                        
                        location / {
                        
                          if ($args ~* "/?sid=") {
                              rewrite ^ /iobroker/$args last;
                          }
                      	   
                        proxy_pass http://apache.mein-heim.netz/;
                        
                      }
                      
                      location /iobroker/ {
                          #proxy_pass http://iobroker.mein-heim.netz:8081/;
                      	proxy_pass http://iobroker.mein-heim.netz/;
                      	proxy_set_header Host $host;
                          proxy_http_version 1.1;
                          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                          proxy_set_header Upgrade $http_upgrade;
                          proxy_set_header Connection $connection_upgrade;
                          auth_basic "Log in to continue";
                          auth_basic_user_file /etc/nginx/.htpasswd;
                        
                      }
                      
                      
                        
                      }
                      
                      
                      Christoph1337 1 Reply Last reply Reply Quote 0
                      • Christoph1337
                        Christoph1337 @Alexander Peter last edited by

                        @alexander-peter

                        Klasse, dass du die Config geteilt hast.

                        Gibt es hier mittlerweile Neuerungen?

                        1 Reply Last reply Reply Quote 0
                        • First post
                          Last post

                        Support us

                        ioBroker
                        Community Adapters
                        Donate
                        FAQ Cloud / IOT
                        HowTo: Node.js-Update
                        HowTo: Backup/Restore
                        Downloads
                        BLOG

                        625
                        Online

                        31.6k
                        Users

                        79.6k
                        Topics

                        1.3m
                        Posts

                        4
                        10
                        1237
                        Loading More Posts
                        • Oldest to Newest
                        • Newest to Oldest
                        • Most Votes
                        Reply
                        • Reply as topic
                        Log in to reply
                        Community
                        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                        The ioBroker Community 2014-2023
                        logo