HAproxy - Condition "Path contains subdir"?

Started by viragomann, March 28, 2025, 12:59:03 PM

Previous topic - Next topic
Hallo,

die HAproxy Konfiguration hat mir wieder mal eine Stunde extra gekostet, weil die GUI eine für mich logische Eingabe nicht akzeptiert. Aber vielleicht habe ich was falsch gemacht.
Kann mir jemand erklären, wie die Condition "Path contains subdir" korrekt anzuwenden ist?

Als Subdir Wert hätte ich einen Namen für ein Unterverzeichnis an beliebiger Stelle des Pfades gehalten. Meines heißt "Data_intern", und das hatte ich so ohne Anführungszeichen eingegeben. Doch die GUI liefert einen Fehler bei "Test syntax": No such ACL
Wenn ich mir die Config ansehe, fehlt die ACL auch tatsächlich. Stattdessen steht da
    # ERROR: missing parameters
    # ACL INVALID: Data_intern_path (ef0d8b72-55bc-435b-9f73-283e1b1bc3eb)
wovon ich auch nicht schlauer werde. Was soll da fehlen? Die Condition hat einen Namen, einen Type und einen Wert. Mehr sollte es nicht brauchen, denke ich.

Den Verzeichnisnamen zwischen Slashes zu setzen, befriedigt die OPNsense auch nicht.

Wenn ich die Condition auf "Path contains string" ändere und den Verzeichnisnamen als Wert zwischen Slashes setze, also "/Data_intern/", akzeptiert OPNsense die Eingabe, abgesehen von den nicht nachvollziehbaren Warnungen "http-request' rule placed after a 'use_backend' rule will still be processed before.", die ich schon mal hier angesprochen hatte.

Für mich bewirkt diese Condition dasselbe, aber was ist mit "Path contains subdir"? Was kann da an meiner Eingabe fehlen oder falsch sein?
Es wäre ja logisch, diesen Typ für meinen Zweck zu nehmen.

Grüße

Ja, da ist ein Vertipper hier: https://github.com/opnsense/plugins/blob/69f283109c494cf404bf76c98f365b6284ccf8c2/net/haproxy/src/opnsense/service/templates/OPNsense/HAProxy/haproxy.conf#L184 - nämlich "path_dur" statt "path_dir".

Du kannst einen Bug-Report auf github machen. Eine Lösung wäre "path contains string" zu nutzen - ich sehe sowieso nicht, wo der Unterschied sein soll...
Intel N100, 4* I226-V, 2* 82559, 16 GByte, 500 GByte NVME, ZTE F6005

1100 down / 800 up, Bufferbloat A+

Alles klar.
Ja, mit "path contains string" und die Subdir zwischen "/" gesetzt habe ich es dann eh gelöst. Aber das Problem müsste mit "Path contains subdir" man kennen.

Danke!

Grüße