diff options
author | Christopher Baines <mail@cbaines.net> | 2022-06-23 12:38:37 +0100 |
---|---|---|
committer | Christopher Baines <mail@cbaines.net> | 2022-07-01 09:45:28 +0100 |
commit | b5c6062bcec9530a9c4044a1bd1091fdebf9bc74 (patch) | |
tree | 5c8e017bbc00a4e000e72537b1d86c1486268420 | |
parent | 9a2a77b6ada212e5c47d0e9fe8446130ba632afe (diff) |
services: nginx: Add support for extra content in upstream blocks.
I'm looking at this as I'd like to use the keepalive functionality.
* gnu/services/web.scm (nginx-upstream-configuration-extra-content): New
procedure.
(emit-nginx-upstream-config): Include the extra-content if applicable.
* doc/guix.texi (NGINX): Document this.
-rw-r--r-- | doc/guix.texi | 3 | ||||
-rw-r--r-- | gnu/services/web.scm | 14 |
2 files changed, 16 insertions, 1 deletions
diff --git a/doc/guix.texi b/doc/guix.texi index 814965b22c..cf373b6cbd 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -28531,6 +28531,9 @@ prefix @samp{unix:}. For addresses using an IP address or domain name, the default port is 80, and a different port can be specified explicitly. +@item @code{extra-content} +A string or list of strings to add to the upstream block. + @end table @end deftp diff --git a/gnu/services/web.scm b/gnu/services/web.scm index 4f06d4e0bb..4434fecf02 100644 --- a/gnu/services/web.scm +++ b/gnu/services/web.scm @@ -120,6 +120,7 @@ nginx-upstream-configuration? nginx-upstream-configuration-name nginx-upstream-configuration-servers + nginx-upstream-configuration-extra-content nginx-location-configuration nginx-location-configuration? @@ -517,7 +518,9 @@ nginx-upstream-configuration make-nginx-upstream-configuration nginx-upstream-configuration? (name nginx-upstream-configuration-name) - (servers nginx-upstream-configuration-servers)) + (servers nginx-upstream-configuration-servers) + (extra-content nginx-upstream-configuration-extra-content + (default '()))) (define-record-type* <nginx-location-configuration> nginx-location-configuration make-nginx-location-configuration @@ -643,6 +646,15 @@ of index files." (map (lambda (server) (simple-format #f " server ~A;\n" server)) (nginx-upstream-configuration-servers upstream)) + (let ((extra-content + (nginx-upstream-configuration-extra-content upstream))) + (if (and extra-content (not (null? extra-content))) + (cons + "\n" + (map (lambda (line) + (simple-format #f " ~A\n" line)) + (flatten extra-content))) + '())) " }\n")) (define (flatten . lst) |