Hi all,
ich nutze HAProxy als reverse-Proxy auf pfsense und bekomme regelmäßig die Meldung "Connection lost, trying a reconnect every 5 seconds". Parameter für HAProxy sind default, sprich ich habe hier noch keine Anpassung gemacht.
Was genau verursacht die Meldung, hat vielleicht jemand mit HAProxy das Problem gehabt und mit Parameter xxxx=yyyy gelöst?
Mein Setup
Portforwarding eines externen Ports (ungleich 443) an pfsense-Host --> HAProxy --> HTTP-Port in Fhem (8083)
Browser Chrome, IE, Edge auf Windows ... kein Apple device ...
Fhem-server hat keine Authentifizierung, kein allowfrom (oder wie heißt der Parameter?). Das ist in HAProxy konfiguriert.
Da scheint das longpoll nicht richtig zu laufen. Mach mal bitte ein list vom WEB Device in FHEM
HI Cooltux,
longpoll ist auf websocket, habe auch schon longpoll 1 getestet. Selbes Verhalten.
List s. u.
Internals:
CONNECTS 71032
CSRFTOKEN csrf_263715870161682
DEF 8083 global
FD 5
FUUID 5c575e13-f33f-4fe4-2eac-fa6c4f8027ee8e43
NAME WEB
NR 3
NTFY_ORDER 50-WEB
PORT 8083
STATE Initialized
TYPE FHEMWEB
READINGS:
2019-11-28 18:13:27 state Initialized
Attributes:
Css 1
JavaScripts codemirror/fhem_codemirror.js
comment xxxxx
JavaScripts
codemirror/fhem_codemirror.js
codemirrorParam
{ "theme":"eclipse" }
confirmDelete 0
confirmJSError 0
defaultRoom Wohnzimmer
editConfig 1
hiddenroom Remote doc,Unsorted,ProfileRoom
iconPath default:fhemSVG:openautomation
longpoll websocket
menuEntries restart,cmd=shutdown+restart,update,cmd=update,updatecheck,cmd=update+check,reloadMyUtils,cmd=reload+99_myUtils
ploteditor always
plotfork 1
reverseLogs 1
room Server
showUsedFiles 1
styleData {
"f18": {
"Pinned.menu": "true",
"cols.bg": "F8F8F8",
"cols.fg": "465666",
"cols.link": "4C9ED9",
"cols.evenrow": "E8E8E8",
"cols.oddrow": "F0F0F0",
"cols.header": "DDDDDD",
"cols.menu": "EEEEEE",
"cols.sel": "CAC8CF",
"cols.inpBack": "FFFFFF",
"savePinChanges": true,
"rightMenu": true,
"hideLogo": true,
"hidePin": true
}
}
stylesheetPrefix f18
viewport width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no
Websocket habe ich auch. Ich verwende allerdings OPNSense. Denke aber nicht das es so einen großen Unterschied macht.
Kannst Du mal Deine Backend und Frontend Konfig zeigen.
habe mal Front- und Backend komplett neu angelegt damit die Besonderheiten (die das File groß machen) raus sind. Meldung immer noch vorhanden ... Config s. u. . Default, keine Anpassung bis jetzt.
Mir geht es jetzt auch nicht darum eine fertige Config zu bekommen, dachte ggf. kennt jemand das Problem und hat ein "Parameterset" auf das ich aufsetzen kann. Wenn nicht teste ich die Websocket und HAProxy Configs die im Inet rumschwirren ...
Die Hostname:Port-Informationen habe ich durch <--xxx--> ersetzt. Sonst auf pfsense rauskopiert...
# Automaticaly generated, dont edit manually.
# Generated on: 2019-11-30 11:22
global
maxconn 50
log /var/run/log local0 info
stats socket /tmp/haproxy.socket level admin expose-fd listeners
uid 80
gid 80
nbproc 1
nbthread 1
hard-stop-after 15m
chroot /tmp/haproxy_chroot
daemon
tune.ssl.default-dh-param 2048
log-send-hostname HaproxyMasterNode
server-state-file /tmp/haproxy_server_state
frontend Fronend
bind 192.168.0.222:<--port--> name 192.168.0.222:<--port--> ssl crt-list /var/etc/haproxy/Fronend.crt_list
mode http
log global
option http-keep-alive
timeout client 30000
acl aclcrt_Fronend var(txn.txnhost) -m reg -i ^<--domainname-->\.spdns\.de(:([0-9]){1,5})?$
http-request set-var(txn.txnhost) hdr(host)
use_backend FHEM_ipvANY if aclcrt_Fronend
backend FHEM_ipvANY
mode http
id 100
log global
timeout connect 30000
timeout server 30000
retries 3
option httpchk OPTIONS /
server FHEM 192.168.1.100:8083 id 101 check inter 1000
Sieht nicht anders aus wie bei mir.
Okay. Danke dir. Dann liegst vermutlich nicht an haproxy ... welche Version von haproxy nutzt du?
Gesendet von meinem SM-G960F mit Tapatalk
Ich habe Version 2.19
Würde mich hier gern einklinken,
Ich selbst nutze weder opnsense noch haproxy und auch kein Fhemweb sondern ftui, habe aber selbes Problem.
In regelmäßigen Abständen taucht die genannte Meldung auf und mir ist aufgefallen, dass genau zu dieser Zeit ein ,, 2019.11.30 19:05:24 4: WEB: /fhem?cmd=jsonlist2..." läuft.
Hier noch das List von Web
Internals:
CONNECTS 1251
CSRFTOKEN csrf_953303423590172
DEF 8083 global
FD 5
FUUID 5d0ccea5-f33f-7903-527d-11e93c18c6eddf26
NAME WEB
NR 3
NTFY_ORDER 50-WEB
PORT 8083
STATE Initialized
TYPE FHEMWEB
READINGS:
2019-11-28 09:34:31 state Initialized
Attributes:
CssFiles hausautomatisierung-com/styles.css
DbLogExclude .*
JavaScripts codemirror/fhem_codemirror.js
codemirrorParam { "theme": "blackboard", "lineNumbers":true, "lineWrapping": true, "height": "auto" }
editConfig 0
longpoll 1
room System
roomIcons Save.config:message_attention Everything:it_i-net System:edit_settings Unsorted:unknown Heizung:sani_heating Garage:fts_garage Communication:mqtt_device Logging:time_note Wetter:weather Tablet-UI:kindle Homematic:sani_heating_automatic Everything:system_fhem Radio:it_radio
stylesheetPrefix hausautomatisierung_com
title { if ($FW_room) { "LIVE: $FW_room" } elsif ($FW_detail) { "LIVE: $FW_detail" } else { "LIVE FHEM" } }
@Knallpopp_02 ... teste mal attibut longpoll = websocket im WEB device
Hallo kadettilac89,
Die Änderung hat leider nichts gebracht, hatte das glaube auch schon mal getestet. Alle 5 Minuten wenn auch das jasonlist2... kommt erscheint auch die Meldung.
Trotzdem danke für die Hilfe
Gruß Knallkopp_02
hat bei mir geringe Prio, hab die Frage gestellt für den Fall, dass jemand auf die Schnelle das Problem kennt ... vielleicht wenn ich im Dezember Urlaub hab .. aber FHEM läuft bei mir im Hintergrund.
Wie ist deine Config, ist dein Problem nur über internes Netz, hast du reverse Proxy oder irgend welche anderen Netzwerk-"Weiterleitungen" ...
Hast Du mittlerweile herausgefunden woran das liegt? Ich habe das gleiche Problem, seit ich fhem von aussen via Portforwarding und mod_proxy_http (Apache) verfügbar gemacht habe.
Problem tritt übrigens nur bei Chrome auf, bei Safari nicht! Bis auf die Meldung auch keine Funktionseinschränkungen.
Zitat von: schmadde am 22 März 2020, 10:20:02
Hast Du mittlerweile herausgefunden woran das liegt? Ich habe das gleiche Problem, seit ich fhem von aussen via Portforwarding und mod_proxy_http (Apache) verfügbar gemacht habe.
Problem tritt übrigens nur bei Chrome auf, bei Safari nicht! Bis auf die Meldung auch keine Funktionseinschränkungen.
ich habe noch ein bischen mit Parametern rumgespielt aber dann nicht mehr weiter gesucht.
Welchen Wert hat dein WEB-Devide im Attribut "longpoll"? Wert 1, sprich aktiv? Kannst auch mal "websocket" testen?
Bei mir tritt die Meldung im Chrome auf seit ich pfsense einsetze. Ich hatte vorher nginx als reverse Proxy im Einsatz, da trat es nicht auf. Wobei ich beim Umzug auch mehr an der Architektur geändert habe.
Du könntest mal suchen ob du eine Apache Config für reverse Proxy im Forum findest und die Parameter durchtesten.
Nutze selbst auch Opnsense und hatte intern vor "langer Zeit" dann auf direkten Zugriff gesetzt um das Problem zu umgehen.
Folgende Modifikationen verbessert / behebt das Problem (auf den ersten Blick) bei mir:
Public Service:
Type: SSL/HTTPS(TCP mode) statt HTTP(Layer7)!!
Backend Pool:
Mode: TCP(Layer 4) statt HTTP / HTTPS (SSL offloading)!!
Daraus resultiert in der Config "mode tcp" statt "mode http"
# Frontend: Frontend_Intern (interner Zugriff auf den Reverseproxy)
frontend Frontend_Intern
....
mode tcp
default_backend BK_FHEM
....
# Backend: BK_FHEM ()
backend BK_FHEM
mode tcp
...
Man findet im Web noch Hinweise darauf verschiedene Client/Server/Connection Timeouts teilweise extrem zu erhöhen und in den Default Parameters "option http-server-close" zu setzen.
Diese Einstellungen waren mir aber zu heiss und ich habe sie nach und nach zurückgerüstet und keine Beeinträchtigung festgestellt.
Zitat von: stefanpf am 29 März 2020, 17:02:22
Daraus resultiert in der Config "mode tcp" statt "mode http"
Das wollte ich schon vor einer Weile testen. Im tcp-Mode kann ich aber meine ACL nicht mehr setzen (Prüfung auf SSL-Zert, Hostname, Sub-Path ...). Aber danke für den Input. Damit weiß ich ... wenn ich mich von meiner aktuellen Config trenne wäre das Problem ggf. behoben. Vielleich finde ich mal Zeit das ncohmal näher zu testen.
Ich hatte ein ähnliches Problem mit Nextcloud Talk. Geholfen hat bei mir den globalen Server Timeout hoch zu setzen.
Zitat von: CoolTux am 12 April 2020, 10:20:48
Ich hatte ein ähnliches Problem mit Nextcloud Talk. Geholfen hat bei mir den globalen Server Timeout hoch zu setzen.
Problem solved, nachdem ich server timeout + connection timeout auf eine Stunde gesetzt habe ist die Meldung weg. Thx
Ja so kann man es machen. Aber vielleicht solltest du lieber 1 Minute machen und schauen was passiert.
Ansonsten geht Deine Firewall bald in die Knie
Zitat von: CoolTux am 12 April 2020, 17:09:52
Ja so kann man es machen. Aber vielleicht solltest du lieber 1 Minute machen und schauen was passiert.
Ansonsten geht Deine Firewall bald in die Knie
valider einwand. genau genommen habe ich die beiden settings explizit im fhem backend gesetzt. alle andere service laufen mit den "normalen" defaults auf 30sec. dieses backend nutze nur ich ...
Es dauert eine Stunde bis der Socket auf der Firewall geschlossen wird wenn nicht ein sauberes Close vom Client kommt. So können sich sie Sockets schnell summieren. Musst halt probieren.
ist mir bewusst, ich habe ein dashboard in grafana, wenn die states, cpu oder irgend was ausreißt sehe ich das wahrscheinlich lange bevor es zu problemen mit der verbindung kommt.
Wo werden die Timeouts genau gesetzt?
Bei mir läuft Fhem auf einem Raspi3 und nur mit meinem Tablet (Android 6) bekomme ich diese Timeouts.
Bei longpoll ist websocket gesetzt.
Grüße Bernd
Zitat von: frober am 13 April 2020, 09:30:15
Wo werden die Timeouts genau gesetzt?
Bei mir läuft Fhem auf einem Raspi3 und nur mit meinem Tablet (Android 6) bekomme ich diese Timeouts.
Bei longpoll ist websocket gesetzt.
Grüße Bernd
Die werden in der HAProxy Konfig gesetzt.
Zitat von: frober am 13 April 2020, 09:30:15
Wo werden die Timeouts genau gesetzt?
welchen reverse-proxy und hardware nutzt du? pfsense und haproxy?
In Pfsense-HA-Proxy ... worum es in meiner Frage geht ...
Services->HAProxy->Backend-> <Name des FHEM-Backends, z. B. FHEM > -> Timeout / retry settings
Connection timeout
--------->>> 72000000 <<<<--------------------
The time (in milliseconds) we give up if the connection does not complete within (default 30000).
Server timeout
--------->>> 72000000 <<<<--------------------
The time (in milliseconds) we accept to wait for data from the server, or for the server to accept data (default 30000).
Achso, aktuell habe ich noch keinen Proxy.
Bin von aussen nicht erreichbar.
Hab es aber trotzdem vor, sobald es die Zeit erlaubt.
Ich hatte gehofft, dass ich in Fhem oder am Tablet ( Firefox) etwas anpassen kann.
Trotzdem Danke für die Antworten.
Nachtrag: Ich benutze OpenWRT auf dem Router mit IPTables und Adblock.