[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#32771] [PATCH 2/2] services: Add Varnish service.
From: |
Christopher Baines |
Subject: |
[bug#32771] [PATCH 2/2] services: Add Varnish service. |
Date: |
Sat, 22 Sep 2018 20:53:11 +0100 |
User-agent: |
mu4e 1.0; emacs 26.1 |
Hey Marius,
I've not got much experience with Varnish, but this patch applies, and
the system test passes :)
Marius Bakke <address@hidden> writes:
> address@hidden Varnish Cache
> address@hidden Varnish
> +Varnish is a fast cache server that sits in between web applications
> +and end users. It proxies requests from clients and caches the
> +accessed URLs such that multiple requests for the same resource only
> +creates one request to the back-end.
> +
> address@hidden {Scheme Variable} varnish-service-type
> +A service type for the Varnish daemon.
> address@hidden defvr
Given there are not other service types for Varnish in Guix, "The
service type ..." would probably be clearer here, or just "Service type
...".
> address@hidden {Data Type} varnish-configuration
> +Data type representing the @code{varnish} service configuration.
> +This type has the following parameters:
> +
> address@hidden @asis
> address@hidden @code{package} (default: @code{varnish})
> +The Varnish package to use.
> +
> address@hidden @code{name} (default: @code{"default"})
> +A name for this Varnish instance. Varnish will create a directory in
> address@hidden/var/varnish/} with this name and keep temporary files there.
> If
> +the name starts with a forward slash, it is interpreted as an absolute
> +directory name.
Most services in Guix use /var/lib for data, would this work for
Varnish?
Also, I wonder if you'd considered supporing running multiple instances
of varnishd, I guess the "name" might come in useful then.
> address@hidden Varnish does not support HTTPS, so keep this URL to avoid
> confusion.
> +For example, to mirror @url{http://www.gnu.org,www.gnu.org} with VCL you
> +can do something along these lines:
Does "@c" mean a comment?
> +(define %varnish-accounts
> + (list (user-group
> + (name "varnish")
> + (system? #t))
> + (user-account
> + (name "varnish")
> + (group "varnish")
> + (system? #t)
> + (comment "Varnish Cache User")
> + (home-directory "/var/varnish")
> + (shell (file-append shadow "/sbin/nologin")))))
> +
> +(define %varnish-activation
> + #~(begin
> + (use-modules (guix build utils))
> + (let ((home-dir "/var/varnish")
> + (user (getpwnam "varnish")))
> + (mkdir-p home-dir)
> + (chown home-dir (passwd:uid user) (passwd:gid user))
> + (chmod home-dir #o755))))
Is this necessary, as I think the users home directory might be
automatically created?
Anyway, this looks pretty much good to me.
Thanks,
Chris
signature.asc
Description: PGP signature