diff --git a/net/haproxy/src/opnsense/mvc/app/controllers/OPNsense/HAProxy/forms/dialogBackend.xml b/net/haproxy/src/opnsense/mvc/app/controllers/OPNsense/HAProxy/forms/dialogBackend.xml index 0af01e120..380bcd365 100644 --- a/net/haproxy/src/opnsense/mvc/app/controllers/OPNsense/HAProxy/forms/dialogBackend.xml +++ b/net/haproxy/src/opnsense/mvc/app/controllers/OPNsense/HAProxy/forms/dialogBackend.xml @@ -31,6 +31,13 @@ HAProxy documentation for a full description.]]> Choose a load balancing algorithm. + + backend.random_draws + + text + + true + backend.proxyProtocol diff --git a/net/haproxy/src/opnsense/mvc/app/models/OPNsense/HAProxy/HAProxy.xml b/net/haproxy/src/opnsense/mvc/app/models/OPNsense/HAProxy/HAProxy.xml index bb080b736..97ccc299f 100644 --- a/net/haproxy/src/opnsense/mvc/app/models/OPNsense/HAProxy/HAProxy.xml +++ b/net/haproxy/src/opnsense/mvc/app/models/OPNsense/HAProxy/HAProxy.xml @@ -763,8 +763,16 @@ Static Round Robin Least Connections URI Hash (only HTTP mode) + Random Algorithm + + Y + 2 + 2 + 1000 + Please specify a value between 2 and 1000. + N diff --git a/net/haproxy/src/opnsense/service/templates/OPNsense/HAProxy/haproxy.conf b/net/haproxy/src/opnsense/service/templates/OPNsense/HAProxy/haproxy.conf index b6401e74d..e503234d0 100644 --- a/net/haproxy/src/opnsense/service/templates/OPNsense/HAProxy/haproxy.conf +++ b/net/haproxy/src/opnsense/service/templates/OPNsense/HAProxy/haproxy.conf @@ -1269,7 +1269,12 @@ backend {{backend.name}} {# # Hence we can't automatically set the mode and thus need a #} {# # (redundant) GUI option for this. #} mode {{backend.mode}} +{# # balancing algorithm #} +{% if backend.algorithm|default("") == 'random' %} + balance {{backend.algorithm}}({{backend.random_draws}}) +{% else %} balance {{backend.algorithm}} +{% endif %} {# # call macro to evaluate stickiness config #} {{ StickTableConfig(backend,true) }} # tuning options