vhost: Allow setting proxy headers

This commit is contained in:
uumas
2025-04-05 04:38:14 +03:00
parent d9f8733c39
commit 3cd66c54a7
4 changed files with 16 additions and 1 deletions

View File

@@ -14,6 +14,7 @@ vhost_basicauth_users: {}
vhost_proxy_target_netproto: tcp
vhost_proxy_target_protocol: http
vhost_proxy_target_host: localhost
vhost_proxy_headers: {}
vhost_proxy_delete_headers: []
vhost_proxy_pass_host_header: true

View File

@@ -103,6 +103,11 @@ argument_specs:
- Only applicable if vhost_type is reverse_proxy and vhost_proxy_target_netproto is unix.
type: str
required: false
vhost_proxy_headers:
description: Dict of request headers and their values to set for proxied requests
type: dict
required: false
default: {}
vhost_proxy_delete_headers:
description: List of headers to delete from proxied requests
type: list
@@ -229,6 +234,11 @@ argument_specs:
type: str
required: false
default: "{{ vhost_proxy_target_socket if vhost_type == 'reverse_proxy' and vhost_proxy_target_netproto == 'unix' else '' }}"
proxy_headers:
description: Dict of request headers and their values to set for proxied requests
type: dict
required: false
default: "{{ vhost_proxy_headers }}"
proxy_delete_headers:
description: List of request headers to delete from proxied requests
type: list

View File

@@ -33,7 +33,10 @@
{% for header in location.proxy_delete_headers %}
header_up -{{ header }}
{% endfor %}
{% if not location.proxy_pass_host_header %}
{% for header in location.proxy_headers | dict2items %}
header_up {{ header.key }} `{{ header.value }}`
{% endfor %}
{% if (not location.proxy_pass_host_header) and ('host' not in location.proxy_headers | map('lower')) %}
header_up Host {upstream_hostport}
{% endif %}
}

View File

@@ -14,6 +14,7 @@ _vhost_location_defaults:
vhost_type == 'reverse_proxy' and vhost_proxy_target_netproto == 'tcp' else '' }}"
proxy_target_socket: "{{ vhost_proxy_target_socket if
vhost_type == 'reverse_proxy' and vhost_proxy_target_netproto == 'unix' else '' }}"
proxy_headers: "{{ vhost_proxy_headers }}"
proxy_delete_headers: "{{ vhost_proxy_delete_headers }}"
proxy_pass_host_header: "{{ vhost_proxy_pass_host_header }}"