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