~ruther/guix-local

4d14808af4c01b4fb0a4564584aa68f0e53c4ef4 — Oleg Pykhalov 8 years ago 80c3f4d
services: web: Add try-files for the nginx-service-type.

* gnu/services/web.scm (<nginx-server-configuration>): Add
  nginx-server-configuration-try-files.
(emit-nginx-server-config): Use it.
* doc/guix.texi (Web Services): Document it.
2 files changed, 12 insertions(+), 1 deletions(-)

M doc/guix.texi
M gnu/services/web.scm
M doc/guix.texi => doc/guix.texi +6 -1
@@ 14263,7 14263,8 @@ blocks, as in this example:
                        (https-port #f)
                        (ssl-certificate #f)
                        (ssl-certificate-key #f)
                        (root "/srv/http/extra-website"))))
                        (root "/srv/http/extra-website")
                        (try-files (list "$uri" "$uri/index.html")))))
@end example
@end deffn



@@ 14394,6 14395,10 @@ server block.
Index files to look for when clients ask for a directory.  If it cannot be found,
Nginx will send the list of files in the directory.

@item @code{try-files} (default: @code{'()})
A list of files whose existence is checked in the specified order.
@code{nginx} will use the first file it finds to process the request.

@item @code{ssl-certificate} (default: @code{"/etc/nginx/cert.pem"})
Where to find the certificate for secure connections.  Set it to @code{#f} if
you don't have a certificate or you don't want to use HTTPS.

M gnu/services/web.scm => gnu/services/web.scm +6 -0
@@ 99,6 99,8 @@
                       (default '()))
  (index               nginx-server-configuration-index
                       (default (list "index.html")))
  (try-files           nginx-server-configuration-try-files
                       (default '()))
  (ssl-certificate     nginx-server-configuration-ssl-certificate
                       (default "/etc/nginx/cert.pem"))
  (ssl-certificate-key nginx-server-configuration-ssl-certificate-key


@@ 179,6 181,7 @@ of index files."
         (nginx-server-configuration-ssl-certificate-key server))
        (root (nginx-server-configuration-root server))
        (index (nginx-server-configuration-index server))
        (try-files (nginx-server-configuration-try-files server))
        (server-tokens? (nginx-server-configuration-server-tokens? server))
        (locations (nginx-server-configuration-locations server)))
    (define-syntax-parameter <> (syntax-rules ()))


@@ 207,6 210,9 @@ of index files."
     (and/l ssl-certificate-key "      ssl_certificate_key " <> ";\n")
     "      root " root ";\n"
     "      index " (config-index-strings index) ";\n"
     (if (not (nil? try-files))
         (and/l (config-index-strings try-files) "      try_files " <> ";\n")
         "")
     "      server_tokens " (if server-tokens? "on" "off") ";\n"
     "\n"
     (map emit-nginx-location-config locations)