Connection lost, trying a reconnect every 5 seconds -- pfsense -- haproxy

Begonnen von kadettilac89, 29 November 2019, 11:16:07

Vorheriges Thema - Nächstes Thema

kadettilac89

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.

CoolTux

Da scheint das longpoll nicht richtig zu laufen. Mach mal bitte ein list vom WEB Device in FHEM
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

kadettilac89

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

CoolTux

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.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

kadettilac89

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

CoolTux

Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

kadettilac89

Okay. Danke dir. Dann liegst vermutlich nicht an haproxy ... welche Version von haproxy nutzt du?

Gesendet von meinem SM-G960F mit Tapatalk


CoolTux

Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Knallkopp_02

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" } }
Ich bin kein Programmierer und habe keine Ahnung.

Raspberry PI 3B+ mit HM-MOD-RPI-PCB,     
HM-TC-IT-WM-W-EU, HM-CC-RT-DN, HM-SEC-SCo
Raspberry PI 3B+ mit 7" Touchdisplay

kadettilac89

@Knallpopp_02 ... teste mal attibut     longpoll = websocket      im WEB device

Knallkopp_02

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
Ich bin kein Programmierer und habe keine Ahnung.

Raspberry PI 3B+ mit HM-MOD-RPI-PCB,     
HM-TC-IT-WM-W-EU, HM-CC-RT-DN, HM-SEC-SCo
Raspberry PI 3B+ mit 7" Touchdisplay

kadettilac89

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" ...

schmadde

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.

kadettilac89

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.

stefanpf

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.