From 3d2f5e2389e5f75131ae22f822a673b92cb12cca Mon Sep 17 00:00:00 2001 From: bunkerity Date: Thu, 2 Sep 2021 12:03:56 +0200 Subject: [PATCH] conf - add REVERSE_PROXY_KEEPALIVE --- confs/site/reverse-proxy.conf | 6 ++++-- docs/environment_variables.md | 7 +++++++ settings.json | 10 ++++++++++ 3 files changed, 21 insertions(+), 2 deletions(-) diff --git a/confs/site/reverse-proxy.conf b/confs/site/reverse-proxy.conf index 61aa87eba..4ad77c25c 100644 --- a/confs/site/reverse-proxy.conf +++ b/confs/site/reverse-proxy.conf @@ -6,6 +6,7 @@ {% set ws = all[k.replace("URL", "WS")] if k.replace("URL", "WS") in all else "" %} {% set headers = all[k.replace("URL", "HEADERS")] if k.replace("URL", "HEADERS") in all else "" %} {% set buffering = all[k.replace("URL", "BUFFERING")] if k.replace("URL", "BUFFERING") in all else "yes" %} + {% set keepalive = all[k.replace("URL", "KEEPALIVE")] if k.replace("URL", "KEEPALIVE") in all else "yes" %} location {{ url }} {% raw %}{{% endraw +%} etag off; set $backend "{{ host }}"; @@ -19,11 +20,12 @@ location {{ url }} {% raw %}{{% endraw +%} include {{ NGINX_PREFIX }}authelia-auth-request.conf; {% endif %} include {{ NGINX_PREFIX }}reverse-proxy-headers.conf; - proxy_http_version 1.1; {% if ws == "yes" +%} + proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; - {% else %} + {% elif keepalive == "yes" +%} + proxy_http_version 1.1; proxy_set_header Connection ""; {% endif %} {% if headers != "" %} diff --git a/docs/environment_variables.md b/docs/environment_variables.md index 576e5161b..9e308288e 100644 --- a/docs/environment_variables.md +++ b/docs/environment_variables.md @@ -220,6 +220,13 @@ Context : *global*, *multisite* Only valid when `USE_REVERSE_PROXY` is set to *yes*. Set it to *yes* then the [proxy_buffering](https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_buffering) directive will be set to `on` or `off` otherwise. You can set multiple url/host by adding a suffix number to the variable name like this : `REVERSE_PROXY_BUFFERING_1`, `REVERSE_PROXY_BUFFERING_2`, `REVERSE_PROXY_BUFFERING_3`, ... +`REVERSE_PROXY_KEEPALIVE` +Values : *yes* | *no* +Default value : *yes* +Context : *global*, *multisite* +Only valid when `USE_REVERSE_PROXY` is set to *yes*. Set it to *yes* to enable keepalive connections with the backend (needs a HTTP 1.1 backend) or *no* otherwise. +You can set multiple url/host by adding a suffix number to the variable name like this : `REVERSE_PROXY_KEEPALIVE_1`, `REVERSE_PROXY_KEEPALIVE_2`, `REVERSE_PROXY_KEEPALIVE_3`, ... + `REVERSE_PROXY_HEADERS` Values : *\* Default value : diff --git a/settings.json b/settings.json index 6a73cbd2f..fbb4e5ca5 100644 --- a/settings.json +++ b/settings.json @@ -1097,6 +1097,16 @@ "regex": "^(yes|no)$", "type": "checkbox" }, + { + "context": "multisite", + "default": "yes", + "env": "REVERSE_PROXY_KEEPALIVE", + "id": "reverse-proxy-keepalive", + "label": "Reverse proxy keepalive", + "multiple": "Reverse proxy", + "regex": "^(yes|no)$", + "type": "checkbox" + }, { "context": "multisite", "default": "",