guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

02/03: services: Make it possible to include dynamic modules in nginx.


From: guix-commits
Subject: 02/03: services: Make it possible to include dynamic modules in nginx.
Date: Thu, 7 Nov 2019 17:16:24 -0500 (EST)

pelzflorian pushed a commit to branch master
in repository guix.

commit 00e680a411652e30d18839fa9ec86cf4068164de
Author: Florian Pelz <address@hidden>
Date:   Wed Nov 6 19:15:57 2019 +0100

    services: Make it possible to include dynamic modules in nginx.
    
    * gnu/services/web.scm (<nginx-configuration>): Add modules field.
    (nginx-configuration-modules): New field accessor.
    (emit-load-module): New procedure.
    (default-nginx-config): Add support for the modules field.
    * doc/guix.texi (NGINX): Document it.
---
 doc/guix.texi        | 11 +++++++++++
 gnu/services/web.scm |  8 ++++++++
 2 files changed, 19 insertions(+)

diff --git a/doc/guix.texi b/doc/guix.texi
index 3b8e593..4df928e 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -19765,6 +19765,17 @@ use the size of the processors cache line.
 @item @code{server-names-hash-bucket-max-size} (default: @code{#f})
 Maximum bucket size for the server names hash tables.
 
+@item @code{modules} (default: @code{'()})
+List of nginx dynamic modules to load.  This should be a list of file
+names of loadable modules, as in this example:
+
+@lisp
+(modules
+ (list
+  (file-append nginx-accept-language-module "\
+/etc/nginx/modules/ngx_http_accept_language_module.so")))
+@end lisp
+
 @item @code{extra-content} (default: @code{""})
 Extra content for the @code{http} block.  Should be string or a string
 valued G-expression.
diff --git a/gnu/services/web.scm b/gnu/services/web.scm
index 9320da5..f13e864 100644
--- a/gnu/services/web.scm
+++ b/gnu/services/web.scm
@@ -9,6 +9,7 @@
 ;;; Copyright © 2018 Pierre-Antoine Rouby <address@hidden>
 ;;; Copyright © 2017, 2018, 2019 Christopher Baines <address@hidden>
 ;;; Copyright © 2018 Marius Bakke <address@hidden>
+;;; Copyright © 2019 Florian Pelz <address@hidden>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -95,6 +96,7 @@
             nginx-configuration-upstream-blocks
             nginx-configuration-server-names-hash-bucket-size
             nginx-configuration-server-names-hash-bucket-max-size
+            nginx-configuration-modules
             nginx-configuration-extra-content
             nginx-configuration-file
 
@@ -522,6 +524,7 @@
                                  (default #f))
   (server-names-hash-bucket-max-size 
nginx-configuration-server-names-hash-bucket-max-size
                                      (default #f))
+  (modules nginx-configuration-modules (default '()))
   (extra-content nginx-configuration-extra-content
                  (default ""))
   (file          nginx-configuration-file         ;#f | string | file-like
@@ -542,6 +545,9 @@ of index files."
         ((? string? str) (list str " ")))
       names))
 
+(define (emit-load-module module)
+  (list "load_module " module ";\n"))
+
 (define emit-nginx-location-config
   (match-lambda
     (($ <nginx-location-configuration> uri body)
@@ -615,12 +621,14 @@ of index files."
                  server-blocks upstream-blocks
                  server-names-hash-bucket-size
                  server-names-hash-bucket-max-size
+                 modules
                  extra-content)
    (apply mixed-text-file "nginx.conf"
           (flatten
            "user nginx nginx;\n"
            "pid " run-directory "/pid;\n"
            "error_log " log-directory "/error.log info;\n"
+           (map emit-load-module modules)
            "http {\n"
            "    client_body_temp_path " run-directory "/client_body_temp;\n"
            "    proxy_temp_path " run-directory "/proxy_temp;\n"



reply via email to

[Prev in Thread] Current Thread [Next in Thread]