ngnix 1.11.10 + fhem (latest) -> keine Plotausgabe via proxy

Begonnen von connaisseur, 20 März 2017, 12:32:30

Vorheriges Thema - Nächstes Thema

connaisseur

Servus!

Habe einen nginx mit https-redirect und proxy_pass + fhem (latest) am Start. FHEM zeigt im lokalen Netz also mit http://<hostname>:8083/fhem alle Plots schön gemütlich und korrekt an.

Über den extern geführten Zugriff funktioniert auch alles fast volltständig. Alle Icons, z.B. der Schalter, FHEM-Logo kommen korrekt über den proxy_pass rüber. Nur die Anzeige der Plots aus dem room plots bringt keine Graphen! Da bleibt alles schwarz. Nur der Geräte-Definitions-Link unter den Graphen erscheint als Text.

Hier eine Plot-Definition:

efine Plot_TempAussen SVG sql3log:temphumdb_aussen:HISTORY
attr Plot_TempAussen label "Außensensor (Ost) Min: $data{min1}, Max: $data{max1}, Aktuell: $data{currval1}"
attr Plot_TempAussen plotfunction OS_Aussensensor
attr Plot_TempAussen room Plots


Hier die location-Definition im ngnix:


location /fhem {
          auth_basic "Restricted Access";
          auth_basic_user_file /etc/nginx/.htpasswd;

          proxy_pass       http://localhost:8083/fhem;
          proxy_set_header X-Real-IP          $remote_addr;
          proxy_set_header X-Forwarded-For    $proxy_add_x_forwarded_for;
          proxy_set_header Host               $http_host;
          proxy_set_header X-Forwarded-Host   $host;
          proxy_set_header X-Forwarded-Server $host;
          # 'off' is default; prevents changes to the Expires and Cache-Control headers
          #expires off;
}


Ist vielleicht was total offensichtliches, so dass ich den Wald vor Bäumen nicht mehr sehe...

Jemand mal einen Tipp / Hinweis für mich?

Grüße,
--volker

farion

Hi,

interessant wäre der nginx log. Da würdest du sehen ob die Plots korrekt vom Browser angefragt werden.
Ich vermute keinen Fehler in FHEM, da es lokal funktioniert. Die Plot-Urls sind auch unter /fhem erreichbar?
Gibt es eventuell einen anderen server, eine andere location in nginx wo evtl. die Plots abgegriffen werden? Ich habe z.B. eine location für Bilder auf CDNs.

Ich habe noch
proxy_set_header        Accept-Encoding     $ae;
in der nginx-Config stehen. Evtl. gibt es da einen Fehler.

Siehst du einen Fehler im Browser? Mach mal im Chrome z.B. den Netzwerk-Debugger auf, ist da was rot?

Gruss Frieder
Fhem5.8@Raspi3|~70xHomematic|KM271|1Wire|DoorPi mit DoorPiBoard|GarageDoorSingleButton|Graphite

connaisseur

Naja, die line von Dir brachte beim "nginx -t" das hier

2017/03/20 14:34:45 [emerg] 18595#18595: unknown "ae" variable
nginx: configuration file /etc/nginx/nginx.conf test failed


Errlog muss ich mal leeren, und den Server restarten; damit ich was aussagekräftiges bekomme.

farion

Hi,

ah ja stimmt ... du brauchst vorher noch.


set $ae "";
if ($http_accept_encoding ~* gzip) {
  set $ae "gzip";
}


Ist aber nur ein Schuss ins Blaue. Also Error-Log gucken.

Gruss Frieder

Fhem5.8@Raspi3|~70xHomematic|KM271|1Wire|DoorPi mit DoorPiBoard|GarageDoorSingleButton|Graphite

micky0867

Bei mir funktioniert das:

location /fhem {
proxy_pass https://localhost:8083/fhem;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_buffering off;
proxy_ignore_client_abort off;
break;
}


Micky

connaisseur

Hhhhmmm,

bin gerade beim Ansehen des Sourcecode der Seite auf was eigenartiges gestossen. Der Code sieht komisch aus... Müßten nicht die ganzen "&amp;" nicht echte "&" sein?

Code-Schnipsel meiner Seite - wie gesagt FHEM latest aus dem SVN:


<script type='text/javascript' src='/fhem/pgm2/svg.js'></script>&nbsp;&nbsp;<a href="/fhem?room=Plots&amp;pos=zoom=qday;off=0&fwcsrf=csrf_355789616015539"><img class=' Zoom-in' src="/fhem/images/default/Zoom-in.png" alt="zoom in" title="zoom in"></a>&nbsp;&nbsp;<a href="/fhem?room=Plots&amp;pos=zoom=week;off=0&fwcsrf=csrf_355789616015539"><img class=' Zoom-out' src="/fhem/images/default/Zoom-out.png" alt="zoom out" title="zoom out"></a>&nbsp;&nbsp;<a href="/fhem?room=Plots&amp;pos=zoom=0;off=-1&fwcsrf=csrf_355789616015539"><img class=' Prev' src="/fhem/images/default/Prev.png" alt="prev" title="prev"></a><br><div class="SVGplot SVG_Plot_TempAussen"><embed src="/fhem/SVG_showLog?dev=Plot_TempAussen&amp;logdev=sql3log&amp;gplotfile=temphumdb_aussen&amp;logfile=HISTORY&amp;pos=" type="image/svg+xml" width="800" height="160" name="Plot_TempAussen"/>
</div><div class="SVGlabel SVG_Plot_TempAussen"><a href="/fhem?detail=Plot_TempAussen">Plot_TempAussen</a></div><br>
<div class="SVGplot SVG_Plot_TempAussen_Balkon"><embed src="/fhem/SVG_showLog?dev=Plot_TempAussen_Balkon&amp;logdev=sql3log&amp;gplotfile=temphumdb_balkon&amp;logfile=HISTORY&amp;pos=" type="image/svg+xml" width="800" height="160" name="Plot_TempAussen_Balkon"/>
</div><div class="SVGlabel SVG_Plot_TempAussen_Balkon"><a href="/fhem?detail=Plot_TempAussen_Balkon">Plot_TempAussen_Balkon</a></div><br>
<div class="SVGplot SVG_Plot_TempHumBad"><embed src="/fhem/SVG_showLog?dev=Plot_TempHumBad&amp;logdev=sql3log&amp;gplotfile=temphumdb_bad&amp;logfile=HISTORY&amp;pos=" type="image/svg+xml" width="800" height="160" name="Plot_TempHumBad"/>


connaisseur

#6
Hab's gefunden. Es war PEBKAC (Problem exists between Keyboard and Chair).

Hatte in der nginx SSL-Konfig diese Zeile drinnen:

add_header X-Frame-Options DENY;

was prinzipiell eine gute Idee ist.

Nach dem ich das auf

add_header X-Frame-Options SAMEORIGIN;

geändert hatte, funktionieren die SVG-Plots wie sie sollen.

Hatte gestern Abend extensiv mir den HTML-Code angesehen. Zwei kleinere (kosmetische) Sachen im SVG-Modul gefunden, die Rudolf Koenig auch schon gefixed hat.

Dann habe ich mal final die Windows-Schachtel angeschaltet und meine Seiten auf allen Wegen mit dem IE angeschaut. Da kamen dann häßliche Fehlerseiten hoch.

Ist also jetzt durch und gelöst.