From f91d44f43d9c80654afdf126e5d0f85d0a8380f8 Mon Sep 17 00:00:00 2001 From: Fabian Franz Date: Sun, 9 Jun 2019 12:33:35 +0200 Subject: [PATCH] www/nginx: support for ip_hash option --- .../mvc/app/controllers/OPNsense/Nginx/forms/upstream.xml | 6 ++++++ .../src/opnsense/mvc/app/models/OPNsense/Nginx/Nginx.xml | 7 +++++++ .../service/templates/OPNsense/Nginx/upstream.conf | 5 +++++ 3 files changed, 18 insertions(+) diff --git a/www/nginx/src/opnsense/mvc/app/controllers/OPNsense/Nginx/forms/upstream.xml b/www/nginx/src/opnsense/mvc/app/controllers/OPNsense/Nginx/forms/upstream.xml index 6a9bf5905..65ba0b573 100644 --- a/www/nginx/src/opnsense/mvc/app/controllers/OPNsense/Nginx/forms/upstream.xml +++ b/www/nginx/src/opnsense/mvc/app/controllers/OPNsense/Nginx/forms/upstream.xml @@ -10,6 +10,12 @@ select_multiple + + upstream.load_balancing_algorithm + + + dropdown + upstream.proxy_protocol diff --git a/www/nginx/src/opnsense/mvc/app/models/OPNsense/Nginx/Nginx.xml b/www/nginx/src/opnsense/mvc/app/models/OPNsense/Nginx/Nginx.xml index c4d108a23..446692207 100644 --- a/www/nginx/src/opnsense/mvc/app/models/OPNsense/Nginx/Nginx.xml +++ b/www/nginx/src/opnsense/mvc/app/models/OPNsense/Nginx/Nginx.xml @@ -82,6 +82,13 @@ Y Y + + + IP Hash + + Weighted Round Robin + N + 0 Y diff --git a/www/nginx/src/opnsense/service/templates/OPNsense/Nginx/upstream.conf b/www/nginx/src/opnsense/service/templates/OPNsense/Nginx/upstream.conf index 2076809e3..b5226fa90 100644 --- a/www/nginx/src/opnsense/service/templates/OPNsense/Nginx/upstream.conf +++ b/www/nginx/src/opnsense/service/templates/OPNsense/Nginx/upstream.conf @@ -7,6 +7,11 @@ {% endfor %} {% for upstream_uuid, upstream in upstreamlist.items() %} upstream upstream{{ upstream_uuid.replace('-','') }} { +{% if upstream.load_balancing_algorithm is defined and upstream.load_balancing_algorithm != '' %} +{% if upstream.load_balancing_algorithm == 'ip_hash' %} +ip_hash; +{% endif %} +{% endif %} {% for upstream_serveruuid in upstream.serverentries.split(',') %} {% set upstream_server = helpers.getUUID(upstream_serveruuid) %} server {% if ':' in upstream_server.server %}[{% endif %}{{ upstream_server.server }}{% if ':' in upstream_server.server %}]{% endif