diff options
| author | Indrajit Raychaudhuri <irc@indrajit.com> | 2026-05-26 19:50:02 -0500 |
|---|---|---|
| committer | Indrajit Raychaudhuri <irc@indrajit.com> | 2026-06-19 03:08:06 -0500 |
| commit | ed8f6f0b3527dfb68713fd88cf660e323868d8a0 (patch) | |
| tree | 929bae5765544178f91e6c622be7995ca520f3a0 | |
| parent | 8a334590daa3104be0519bab8d73557304d8572c (diff) | |
| download | vyos-1x-ed8f6f0b3527dfb68713fd88cf660e323868d8a0.tar.gz vyos-1x-ed8f6f0b3527dfb68713fd88cf660e323868d8a0.zip | |
haproxy: T8931: Add option http-server-close in backend sections
| -rw-r--r-- | data/templates/load-balancing/haproxy.cfg.j2 | 3 | ||||
| -rw-r--r-- | interface-definitions/load-balancing_haproxy.xml.in | 6 | ||||
| -rw-r--r-- | src/conf_mode/load-balancing_haproxy.py | 7 |
3 files changed, 15 insertions, 1 deletions
diff --git a/data/templates/load-balancing/haproxy.cfg.j2 b/data/templates/load-balancing/haproxy.cfg.j2 index c6729fda4..438796cee 100644 --- a/data/templates/load-balancing/haproxy.cfg.j2 +++ b/data/templates/load-balancing/haproxy.cfg.j2 @@ -206,6 +206,9 @@ backend {{ back }} option forwardfor http-request set-header X-Forwarded-Port %[dst_port] http-request add-header X-Forwarded-Proto https if { ssl_fc } +{% if back_config.http_server_close is vyos_defined %} + option http-server-close +{% endif %} {% endif %} {% if back_config.logging is vyos_defined %} {% for facility, facility_config in back_config.logging.facility.items() %} diff --git a/interface-definitions/load-balancing_haproxy.xml.in b/interface-definitions/load-balancing_haproxy.xml.in index e9d42ef90..8111d7506 100644 --- a/interface-definitions/load-balancing_haproxy.xml.in +++ b/interface-definitions/load-balancing_haproxy.xml.in @@ -225,6 +225,12 @@ </constraint> </properties> </leafNode> + <leafNode name="http-server-close"> + <properties> + <help>Enable HTTP/1.x connection closing on the server side</help> + <valueless/> + </properties> + </leafNode> #include <include/haproxy/rule-backend.xml.i> <tagNode name="server"> <properties> diff --git a/src/conf_mode/load-balancing_haproxy.py b/src/conf_mode/load-balancing_haproxy.py index 0f31880ba..f95d05151 100644 --- a/src/conf_mode/load-balancing_haproxy.py +++ b/src/conf_mode/load-balancing_haproxy.py @@ -149,7 +149,12 @@ def verify(lb): for group in ['service', 'backend']: for config_name, config in lb[group].items(): if 'http_response_headers' in config and config['mode'] != 'http': - raise ConfigError(f'{group} {config_name} must be set to http mode to use http_response_headers!') + raise ConfigError(f'{group} {config_name} must be set to http mode to use http-response headers!') + + # Check if http-server-close is configured in any backend where mode != http + for config_name, config in lb['backend'].items(): + if 'http_server_close' in config and config['mode'] != 'http': + raise ConfigError(f'backend {config_name} must be set to http mode to use http-server-close!') def generate(lb): |
