diff options
author | Christian Breunig <christian@breunig.cc> | 2024-05-01 08:12:43 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-05-01 08:12:43 +0200 |
commit | 3580bbb054a522133b150e63b9a8d125a3b4dfb5 (patch) | |
tree | 42640a6a6a7f549bc4e825512760e982fa5ec821 /data | |
parent | b111c6c1bc552dba7fdb5373ea9108ba336daedf (diff) | |
parent | 0be0cdb932ca2d7399c026f1f601b56e179cc9c3 (diff) | |
download | vyos-1x-3580bbb054a522133b150e63b9a8d125a3b4dfb5.tar.gz vyos-1x-3580bbb054a522133b150e63b9a8d125a3b4dfb5.zip |
Merge pull request #3382 from nvollmar/T6179
haproxy: T6179: fix rule generation
Diffstat (limited to 'data')
-rw-r--r-- | data/templates/load-balancing/haproxy.cfg.j2 | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/data/templates/load-balancing/haproxy.cfg.j2 b/data/templates/load-balancing/haproxy.cfg.j2 index e8622ba7b..7917c8257 100644 --- a/data/templates/load-balancing/haproxy.cfg.j2 +++ b/data/templates/load-balancing/haproxy.cfg.j2 @@ -85,7 +85,7 @@ frontend {{ front }} {% if front_config.rule is vyos_defined %} {% for rule, rule_config in front_config.rule.items() %} # rule {{ rule }} -{% if rule_config.domain_name is vyos_defined and rule_config.set.backend is vyos_defined %} +{% if rule_config.domain_name is vyos_defined %} {% set rule_options = 'hdr(host)' %} {% if rule_config.ssl is vyos_defined %} {% set ssl_rule_translate = {'req-ssl-sni': 'req_ssl_sni', 'ssl-fc-sni': 'ssl_fc_sni', 'ssl-fc-sni-end': 'ssl_fc_sni_end'} %} @@ -94,16 +94,20 @@ frontend {{ front }} {% for domain in rule_config.domain_name %} acl {{ rule }} {{ rule_options }} -i {{ domain }} {% endfor %} - use_backend {{ rule_config.set.backend }} if {{ rule }} {% endif %} {# path url #} -{% if rule_config.url_path is vyos_defined and rule_config.set.redirect_location is vyos_defined %} +{% if rule_config.url_path is vyos_defined %} {% set path_mod_translate = {'begin': '-i -m beg', 'end': '-i -m end', 'exact': ''} %} {% for path, path_config in rule_config.url_path.items() %} {% for url in path_config %} acl {{ rule }} path {{ path_mod_translate[path] }} {{ url }} {% endfor %} {% endfor %} +{% endif %} +{% if rule_config.set.backend is vyos_defined %} + use_backend {{ rule_config.set.backend }} if {{ rule }} +{% endif %} +{% if rule_config.set.redirect_location is vyos_defined %} http-request redirect location {{ rule_config.set.redirect_location }} code 301 if {{ rule }} {% endif %} {# endpath #} |