Next: Servicios de certificados, Previous: Servicios LDAP, Up: Servicios [Contents][Index]
El módulo (gnu services web)
proporciona el servidor HTTP Apache, el
servidor web nginx y también un recubrimiento del daemon de fastcgi.
Tipo de servicio para el servidor Apache
HTTP (httpd). El valor para este tipo de servicio es un registro
httpd-configuration
.
Un ejemplo de configuración simple se proporciona a continuación.
(service httpd-service-type
(httpd-configuration
(config
(httpd-config-file
(server-name "www.example.com")
(document-root "/srv/http/www.example.com")))))
Otros servicios también pueden extender el tipo httpd-service-type
para añadir su contribución a la configuración.
(simple-service 'www.example.com-server httpd-service-type
(list
(httpd-virtualhost
"*:80"
(list (string-join '("ServerName www.example.com"
"DocumentRoot /srv/http/www.example.com")
"\n")))))
Los detalles de los tipos de registro httpd-configuration
,
httpd-module
, httpd-config-file
y httpd-virtualhost
se
proporcionan a continuación.
Este tipo de datos representa la configuración del servicio httpd.
package
(predeterminado: httpd
)El paquete httpd usado.
pid-file
(predeterminado: "/var/run/httpd"
)El archivo pid usado por el servicio de Shepherd.
config
(predeterminado: (httpd-config-file)
)The configuration file to use with the httpd service. The default value is
a httpd-config-file
record, but this can also be a different
G-expression that generates a file, for example a plain-file
. A file
outside of the store can also be specified through a string.
Este es el tipo de datos que representa un módulo para el servicio httpd.
name
El nombre del módulo.
file
The file for the module. This can be relative to the httpd package being
used, the absolute location of a file, or a G-expression for a file within
the store, for example (file-append mod-wsgi "/modules/mod_wsgi.so")
.
Una lista de objetos httpd-module
predeterminados.
Este tipo de datos representa un archivo de configuración para el servicio httpd.
modules
(predeterminados: %default-httpd-modules
)The modules to load. Additional modules can be added here, or loaded by additional configuration.
Por ejemplo, para manejar las peticiones de archivos PHP, puede usar el
módulo mod_proxy_fcgi
de Apache junto con
php-fpm-service-type
:
(service httpd-service-type (httpd-configuration (config (httpd-config-file (modules (cons* (httpd-module (name "modulo_proxy") (file "modules/mod_proxy.so")) (httpd-module (name "module_proxy_fcgi") (file "modules/mod_proxy_fcgi.so")) %default-httpd-modules)) (extra-config (list "\ <FilesMatch \\.php$> SetHandler \"proxy:unix:/var/run/php-fpm.sock|fcgi://localhost/\" </FilesMatch>")))))) (service php-fpm-service-type (php-fpm-configuration (socket "/var/run/php-fpm.sock") (socket-group "httpd")))
server-root
(predeterminado: httpd
)The ServerRoot
in the configuration file, defaults to the httpd
package. Directives including Include
and LoadModule
are
taken as relative to the server root.
server-name
(predeterminado: #f
)El campo ServerName
(nombre del servidor) en el archivo de
configuración, el cual se usa para especificar el esquema de peticiones,
nombre de máquina y puerto que el servidor usa para su propia
identificación.
This doesn’t need to be set in the server config, and can be specified in
virtual hosts. The default is #f
to not specify a ServerName
.
document-root
(predeterminado: "/srv/http"
)La raíz (DocumentRoot
) desde la que se proporcionan los archivos.
listen
(predeterminado: '("80")
)The list of values for the Listen
directives in the config file. The
value should be a list of strings, when each string can specify the port
number to listen on, and optionally the IP address and protocol to use.
pid-file
(predeterminado: "/var/run/httpd"
)The PidFile
to use. This should match the pid-file
set in the
httpd-configuration
so that the Shepherd service is configured
correctly.
error-log
(predeterminado: "/var/log/httpd/error_log"
)El archivo ErrorLog
en el que el servidor registrará los errores.
user
(predeterminada: "httpd"
)La usuaria como la que el servidor responderá a las peticiones.
group
(predeterminado: "httpd"
)El grupo como el que el servidor responderá a las peticiones.
extra-config
(predeterminadas: (list "TypesConfig etc/httpd/mime.types")
)Una lista de cadenas y expresiones-G que se añadirán al final del archivo de configuración.
Los valores con los que se extiende el servicio se añaden al final de esta lista.
Este tipo de datos representa un bloque de configuración de máquina virtual del servicio httpd.
Se deben añadir a la configuración adicional extra-config del servicio httpd-service.
(simple-service 'servidor-www.example.com httpd-service-type
(list
(httpd-virtualhost
"*:80"
(list (string-join '("ServerName "www.example.com"
"DocumentRoot /srv/http/www.example.com")
"\n")))))
addresses-and-ports
Las direcciones y puertos de la directiva VirtualHost
.
contents
El contenido de la directiva VirtualHost
; debe ser una lista de
cadenas y expresiones-G.
Tipo de servicio para el servidor web NGinx. El
valor para este tipo de servicio es un registro
<nginx-configuration>
.
Un ejemplo de configuración simple se proporciona a continuación.
(service nginx-service-type
(nginx-configuration
(server-blocks
(list (nginx-server-configuration
(server-name '("www.example.com"))
(root "/srv/http/www.example.com"))))))
Además de añadiendo bloques de servidor a la configuración del servicio de manera directa, este servicio puede extenderse con otros servicios para añadir bloques de servidor, como en este ejemplo:
(simple-service 'mi-servidor-adicional nginx-service-type
(list (nginx-server-configuration
(root "/srv/http/sitio-adicional")
(try-files (list "$uri" "$uri/index.html")))))
Durante su inicio, nginx
no ha leído todavía su archivo de
configuración, por lo que usa un archivo predeterminado para registrar los
mensajes de error. Si se produce algún fallo al cargar su archivo de
configuración, allí es donde se registran los mensajes de error. Tras la
carga del archivo de configuración, el archivo de registro de errores
predeterminado cambia al especificado allí. En nuestro caso, los mensajes de
error durante el inicio se pueden encontrar en
/var/run/nginx/logs/error.log, y tras la configuración en
/var/log/nginx/error.log. La segunda ruta puede cambiarse con las
opciones de configuración log-directory.
This data type represents the configuration for NGinx. Some configuration can be done through this and the other provided record types, or alternatively, a config file can be provided.
nginx
(predeterminado: nginx
)El paquete nginx usado.
shepherd-requirement
(default: '()
)This is a list of symbols naming Shepherd services the nginx service will depend on.
This is useful if you would like nginx
to be started after a
back-end web server or a logging service such as Anonip has been started.
log-directory
(predeterminado: "/var/log/nginx"
)Directorio en el que NGinx escribirá los archivos de registro.
log-level
(default: 'error
) (type: symbol)Logging level, which can be any of the following values: 'debug
,
'info
, 'notice
, 'warn
, 'error
, 'crit
,
'alert
, or 'emerg
.
run-directory
(predeterminado: "/var/run/nginx"
)Directorio en el que NGinx crea el archivo de PID, y escribe archivos temporales.
server-blocks
(predeterminados: '()
)Una lista de bloques de servidor que se crearán en el archivo de
configuración generado; los elementos deben ser del tipo
<nginx-server-configuration>
.
El ejemplo siguiente configura NGinx para proporcionar
www.example.com
a partir del directorio
/srv/http/www.example.com
, sin usar HTTPS.
(service nginx-service-type
(nginx-configuration
(server-blocks
(list (nginx-server-configuration
(server-name '("www.example.com"))
(root "/srv/http/www.example.com"))))))
upstream-blocks
(predeterminados: '()
)Una lista de bloques upstream creada en el archivo de configuración
generado, los elementos deben ser del tipo
<nginx-upstream-configuration>
.
La configuración de proveedores a través de upstream-blocks
puede ser
útil al combinarse con location
en los registros
<nginx-server-configuration>
. El siguiente ejemplo crea la
configuración de un servidor con una configuración de ruta, que hará de
intermediaria en las peticiones a la configuración de proveedores, que
delegarán las peticiones en dos servidores.
(service
nginx-service-type
(nginx-configuration
(server-blocks
(list (nginx-server-configuration
(server-name '("www.example.com"))
(root "/srv/http/www.example.com")
(locations
(list
(nginx-location-configuration
(uri "/ruta1")
(body '("proxy_pass http://servidor-proxy;"))))))))
(upstream-blocks
(list (nginx-upstream-configuration
(name "servidor-proxy")
(servers (list "servidor1.example.com"
"servidor2.example.com")))))))
file
(predeterminado: #f
)Si se proporciona un archivo de configuración con file, se usará este,
en vez de generar un archivo de configuración a partir de los parámetros
log-directory
, run-directory
, server-blocks
y
upstream-blocks
proporcionados. Para conseguir un funcionamiento
adecuado, estos parámetros deben corresponder con el contenido de
file, lo que asegura que los directorios se hayan creado durante la
activación del servicio.
Esto puede ser útil si ya dispone de un archivo de configuración, o no es posible hacer lo que necesita con el resto de opciones del registro nginx-configuration.
server-names-hash-bucket-size
(predeterminado: #f
)Tamaño del cubo para las tablas hash de los nombres de servidor, cuyo valor
predeterminado es #f
para que se use el tamaño de la línea de caché
de los procesadores.
server-names-hash-bucket-max-size
(predeterminado: #f
)Tamaño máximo del cubo para las tablas hash de nombres de servidor.
modules
(predeterminados: '()
)Lista de módulos dinámicos de nginx cargados. Debe ser una lista de nombres de archivo de módulos cargables, como en este ejemplo:
(modules
(list
(file-append nginx-accept-language-module "\
/etc/nginx/modules/ngx_http_accept_language_module.so")
(file-append nginx-lua-module "\
/etc/nginx/modules/ngx_http_lua_module.so")))
lua-package-path
(predeterminada: '()
)Lista de paquetes de lua para nginx cargados. Debe ser una lista de nombres de archivo de módulos cargables, como en este ejemplo:
(lua-package-path (list lua-resty-core
lua-resty-lrucache
lua-resty-signal
lua-tablepool
lua-resty-shell))
lua-package-cpath
(predeterminada: '()
)Lista de paquetes C de lua para nginx cargados. Debe ser una lista de nombres de archivo de módulos cargables, como en este ejemplo:
(lua-package-cpath (list lua-resty-signal))
global-directives
(predeterminadas: '((events . ()))
)Lista asociativa de directivas globales para el nivel superior de la configuración de nginx. Los valores en sí mismos pueden ser listas asociativas.
(global-directives
`((worker_processes . 16)
(pcre_jit . on)
(events . ((worker_connections . 1024)))))
extra-content
(predeterminado: ""
)Additional content to be appended to the http
block. Can either be a
value that can be lowered into a string or a list of such values. In the
former case, it is inserted directly. In the latter, it is prefixed with
indentation and suffixed with a newline. Nested lists are flattened into
one line.
(extra-content "include /etc/nginx/custom-config.conf;") (extra-content `("include /etc/nginx/custom-config.conf;" ("include " ,%custom-config.conf ";")))
Tipo de datos que representa la configuración de un bloque de servidor nginx. Este tipo tiene los siguientes parámetros:
listen
(predeterminadas: '("80" "443 ssl")
)Cada directiva listen
establece la dirección y el puerto para IP, o
la ruta para un socket de dominio de UNIX sobre el que el servidor acepta
peticiones. Se puede especificar tanto dirección y puerto como únicamente la
dirección o únicamente el puerto. Una dirección puede ser también un nombre
de máquina, por ejemplo:
'("127.0.0.1:8000" "127.0.0.1" "8000" "*:8000" "localhost:8000")
server-name
(predeterminados: (list 'default)
)Una lista de nombres de servidor que este servidor
representa. 'default
representa el servidor predeterminado para
conexiones que no correspondan a otro servidor.
root
(predeterminada: "/srv/http"
)Raíz del sitio web que nginx proporcionará.
locations
(predeterminado: '()
)Una lista de registros nginx-location-configuration o nginx-named-location-configuration usados dentro de este bloque de servidor.
index
(predeterminado: (list "index.html")
)Archivos de índice buscados cuando los clientes solicitan un directorio. Si no se encuentra ninguno, Nginx enviará la lista de archivos del directorio.
try-files
(predeterminado: '()
)Una lista de archivos cuya existencia se comprueba en el orden
especificado. nginx
usará el primer archivo que encuentre para
procesar la petición.
ssl-certificate
(predeterminado: #f
)Lugar donde se encuentra el certificado para conexiones seguras. Proporcione
#f
si no dispone de un certificado o no desea usar HTTPS.
ssl-certificate-key
(predeterminado: #f
)Lugar donde se encuentra la clave privada para conexiones
seguras. Proporcione #f
si no dispone de una clave o no desea usar
HTTPS.
server-tokens?
(predeterminado: #f
)Determina si el servidor debe añadir su configuración a las respuestas.
raw-content
(predeterminado: '()
)A list of strings or file-like objects to be appended to the server block. Each item is prefixed with indentation and suffixed with a new line. Nested lists are flattened.
Tipo de datos que representa la configuración de un bloque upstream
de nginx. Este tipo tiene los siguientes parámetros:
name
Nombre para este grupo de servidores.
servers
Especifica las direcciones de los servidores en el grupo. Las direcciones se pueden proporcionar mediante direcciones IP (por ejemplo ‘127.0.0.1’), nombres de dominio (por ejemplo ‘maquina1.example.com’) o rutas de socket de UNIX mediante el prefijo ‘unix:’. El puerto predeterminado para las direcciones IP o nombres de dominio es el 80, y se puede proporcionar un puerto de manera explícita.
extra-content
A string or list of strings to add to the upstream block.
Tipo de datos que representa la configuración de un bloque location
de nginx. Este tipo tiene los siguientes parámetros:
uri
URI a la que corresponde este bloque de location.
body
Body of the location block, specified as a list of strings or file-like objects. Each item is prefixed with indentation and suffixed with a new line. Nested lists are flattened.
For example, to pass requests to a upstream server group defined using an
nginx-upstream-configuration
block, the following directive would be
specified in the body ‘(list "proxy_pass http://upstream-name;")’.
Tipo de datos que representa la configuración de un bloque de localización con nombre de nginx. Los bloques de localizaciones con nombre se usan para la redirección de peticiones, y no se usan para el procesamiento regular de peticiones. Este tipo tiene los siguientes parámetros:
name
Nombre que identifica este bloque de dirección location
.
body
See cuerpo de nginx-location-configuration, como el cuerpo de los bloques
de localizaciones con nombre puede usarse de manera similar al cuerpo
de nginx-location-configuration
. Una restricción es que el cuerpo de una
localización con nombre no puede contener bloques de localizaciones.
Varnish es un servidor de caché rápida que se coloca entre aplicaciones web y usuarios finales. Redirige peticiones a los clientes y almacena en caché las URL a las que se accede de manera que múltiples peticiones al mismo recurso únicamente creen una petición al motor.
Tipo de servicio para el daemon Varnish.
Tipo de datos que representa la configuración del servicio
varnish
. Este tipo tiene los siguientes parámetros:
package
(predeterminado: varnish
)El paquete Varnish usado.
name
(predeterminado: "default"
)Un nombre para esta instancia de Varnish. Varnish creará un directorio en /var/varnish con este nombre y mantendrá allí los archivos temporales. Si el nombre comienza con una barra, se interpreta como un nombre absoluto de directorio.
Proporcione el parámetro -n
a otros programas de Varnish para que se
conecten a la instancia de dicho nombre, por ejemplo varnishncsa -n
default
.
backend
(predeterminado: "localhost:8080"
)Motor usado. Esta opción no tiene efecto si se usa vcl
.
vcl
(predeterminado: #f)El programa VCL (lenguaje de configuración de Varnish) ejecutado. Si
se proporciona #f
, Varnish llevará a cabo las redirecciones al motor
(backend
) usando la configuración predeterminada. En otro caso debe
ser un objeto “tipo-archivo” con sintaxis válida para VCL.
Por ejemplo, para proporcionar un espejo de www.gnu.org con VCL podría escribir algo parecido a esto:
(define %espejo-gnu (plain-file "gnu.vcl" "vcl 4.1; backend gnu { .host = \"www.gnu.org\"; }")) (operating-system ;; … (services (cons (service varnish-service-type (varnish-configuration (listen '(":80")) (vcl %espejo-gnu))) %base-services)))
La configuración de una instancia de Varnish ya en ejecución se puede
inspeccionar y cambiar mediante el uso de la orden varnishadm
.
Consulte la guía de usuaria de Varnish y el libro de Varnish para obtener la documentación completa de Varnish y su lenguaje de configuración.
listen
(predeterminada: '("localhost:80")
)Lista de direcciones en las que Varnish escucha.
storage
(predeterminado: '("malloc,128m")
)Lista de motores de almacenamiento que estarán disponibles en VCL.
parameters
(predeterminados: '()
)Lista de parámetros de tiempo de ejecución con la forma '(("parámetro"
. "valor"))
.
extra-options
(predeterminadas: '()
)Parámetros adicionales a proporcional al proceso varnishd
.
Whoogle Search is a
self-hosted, ad-free, privacy-respecting meta search engine that collects
and displays Google search results. By default, you can configure it by
adding this line to the services
field of your operating system
declaration:
As a result, Whoogle Search runs as local Web server, which you can access
by opening ‘http://localhost:5000
’ in your browser. The
configuration reference is given below.
Service type for Whoogle Search. Its value must be a
whoogle-configuration
record—see below.
Data type representing Whoogle Search service configuration.
package
(default: whoogle-search
)The Whoogle Search package to use.
host
(predeterminada: "127.0.0.1"
)The host address to run Whoogle on.
port
(default: 5000
)The port where Whoogle will be exposed.
environment-variables
(default: '()
)A list of strings with the environment variables to configure Whoogle. You can consult its environment variables template for the list of available options.
Patchwork es un sistema de seguimiento de parches. Puede recolectar parches enviados a listas de correo y mostrarlos en una interfaz web.
Tipo de servicio para Patchwork.
El siguiente ejemplo muestra un servicio mínimo para Patchwork, para el
dominio patchwork.example.com
.
(service patchwork-service-type
(patchwork-configuration
(domain "patchwork.example.com")
(settings-module
(patchwork-settings-module
(allowed-hosts (list domain))
(default-from-email "patchwork@patchwork.example.com")))
(getmail-retriever-config
(getmail-retriever-configuration
(type "SimpleIMAPSSLRetriever")
(server "imap.example.com")
(port 993)
(username "patchwork")
(password-command
(list (file-append coreutils "/bin/cat")
"/etc/getmail-patchwork-imap-password"))
(extra-parameters
'((mailboxes . ("Parches"))))))))
Existen tres registros para la configuración del servicio de Patchwork. El
registro <patchwork-configuration>
está relacionado con la
configuración de Patchwork dentro del servicio HTTPD.
El campo settings-module
dentro del registro
<patchwork-configuration>
puede rellenarse con un registro
<patchwork-settings-module>
, que describe un módulo de configuración
generado dentro del almacén de Guix.
En el campo database-configuration
dentro del registro
<patchwork-settings-module>
, debe usarse
<patchwork-database-configuration>
.
Tipo de datos que representa la configuración del servicio Patchwok. Este tipo tiene los siguientes parámetros:
patchwork
(predeterminado: patchwork
)El paquete Patchwork usado.
domain
Dominio usado por Patchwork, se usa en el servicio HTTPD como “virtual host”.
settings-module
The settings module to use for Patchwork. As a Django application,
Patchwork is configured with a Python module containing the settings. This
can either be an instance of the <patchwork-settings-module>
record,
any other record that represents the settings in the store, or a directory
outside of the store.
static-path
(predeterminada: "/static/"
)Ruta bajo la cual el servicio HTTPD proporciona archivos estáticos.
getmail-retriever-config
The getmail-retriever-configuration record value to use with Patchwork. Getmail will be configured with this value, the messages will be delivered to Patchwork.
Tipo de datos que representa un módulo de configuración de Patchwork. Algunas de estas opciones están directamente relacionadas con Patchwork, pero otras son relativas a Django, el entorno web usado Patchwork, o la biblioteca Django Rest Framework. Este tipo tiene los siguientes parámetros:
database-configuration
(predeterminada: (patchwork-database-configuration)
)La configuración de la conexión a la base de datos usada para
Patchwork. Véase el tipo de registro
<patchwork-database-configuration>
para más información.
secret-key-file
(predeterminado: "/etc/patchwork/django-secret-key"
)Patchwork, como una aplicación web Django, usa una clave secreta para firmar criptográficamente valores. Este archivo debe contener un valor único e impredecible.
Si este archivo no existe, el servicio de Shepherd patchwork-setup lo creará y rellenará con un valor aleatorio.
Esta configuración está relacionada con Django.
allowed-hosts
A list of valid hosts for this Patchwork service. This should at least
include the domain specified in the <patchwork-configuration>
record.
Esta es una opción de configuración de Django.
default-from-email
La dirección de correo desde de la que Patchwork debe enviar el correo de manera predeterminada.
Esta es una opción de configuración de Patchwork.
static-url
(predeterminada: #f
)The URL to use when serving static assets. It can be part of a URL, or a
full URL, but must end in a /
.
Si se usa el valor predeterminado, se usará el valor de static-path
del registro <patchwork-configuration>
.
Esta es una opción de configuración de Django.
admins
(predeterminadas: '()
)Direcciones de correo electrónico a las que enviar los detalles de los errores que ocurran. Cada valor debe ser una lista que contenga dos elementos, el nombre y la dirección de correo electrónico en dicho orden.
Esta es una opción de configuración de Django.
debug?
(predeterminado: #f
)Determina si se ejecuta Patchwork en modo de depuración. Si se proporciona
#t
, se mostrarán mensajes de error detallados.
Esta es una opción de configuración de Django.
enable-rest-api?
(predeterminado: #t
)Determina si se activa el API REST de Patchwork.
Esta es una opción de configuración de Patchwork.
enable-xmlrpc?
(predeterminado: #t
)Determina si se activa el API XML RPC.
Esta es una opción de configuración de Patchwork.
force-https-links?
(predeterminado: #t
)Determina si se usan enlaces HTTPS en las páginas de Patchwork.
Esta es una opción de configuración de Patchwork.
extra-settings
(predeterminado: ""
)Código adicional que colocar al final del módulo de configuración de Patchwork.
Tipo de datos que representa la configuración de base de datos de Patchwork.
engine
(predeterminado: "django.db.backends.postgresql_psycopg2"
)Motor de base de datos usado.
name
(predeterminado: "patchwork"
)Nombre de la base de datos usada.
user
(predeterminada: "httpd"
)Usuaria usada para la conexión a la base de datos.
password
(predeterminada: ""
)Contraseña usada para la conexión a la base de datos.
host
(predeterminada: ""
)Máquina usada para la conexión a la base de datos.
port
(predeterminado: ""
)Puerto en el que se conecta a la base de datos.
Mumi is a Web interface to the Debbugs bug tracker, by default for the GNU instance. Mumi is a Web server, but it also fetches and indexes mail retrieved from Debbugs.
El tipo de servicio para Mumi.
Tipo de datos que representa la configuración del servicio Mumi. Este tipo tiene los siguientes campos:
mumi
(predeterminado: mumi
)El paquete Mumi usado.
mailer?
(predeterminado: #true
)Determina si se activa o desactiva el componente de correo mailer
.
mumi-configuration-sender
La dirección de correo usada como remitente para los comentarios.
mumi-configuration-smtp
Una URI para las opciones de configuración de SMTP de Mailutils. Puede ser
algo parecido a sendmail:///ruta/de/bin/msmtp
o cualquier otra URI
implementada por Mailutils. See SMTP Mailboxes in GNU Mailutils.
FastCGI es una interfaz entre la presentación (front-end) y el motor (back-end) de un servicio web. Es en cierto modo una característica antigua; los nuevos servicios web generalmente únicamente se comunican con HTTP entre ambas partes. No obstante, existe cierto número de servicios de motor como PHP o el acceso HTTP optimizado para repositorios Git que usan FastCGI, por lo que debemos incluirlo en Guix.
Para usar FastCGI debe configurar el servidor web de entrada41 (por ejemplo, ngnix) para delegar un subconjunto de
sus peticiones al motor fastcgi, que escucha en un puerto TCP local o en un
socket de UNIX. Existe un programa de intermediación llamado fcgiwrap
que se posiciona entre el proceso del motor y el servidor web. El servidor
indica el programa del motor usado, proporcionando dicha información al
proceso fcgiwrap
.
El tipo de servicio para la pasarela FastCGI fcgiwrap
.
Tipo de datos que representa la configuración del servicio
fcgiwrap
. Este tipo tiene los siguientes parámetros:
package
(predeterminado: fcgiwrap
)El paquete fcgiwrap usado.
socket
(predeterminado: tcp:127.0.0.1:9000
)El socket donde el proceso fcgiwrap
deba escuchar, como una cadena.
Los valores adecuados para socket socket incluyen
unix:/ruta/al/socket/unix
,
tcp:dirección.ip.con.puntos:puerto
and
tcp6:[dirección_ipv6]:puerto
.
user
(predeterminado: fcgiwrap
)group
(predeterminado: fcgiwrap
)Los nombres de usuaria y grupo, como cadenas, con los que se ejecutará el
proceso fcgiwrap
. El servicio fastcgi
se asegura, en caso de
solicitar específicamente el uso de nombres de usuaria o grupo
fcgiwrap
, que la usuaria y/o grupo correspondientes se encuentren
presentes en el sistema.
Es posible configurar un servicio web proporcionado por FastCGI para que el
servidor de fachada proporcione la información de identificación HTTP al
motor, y para permitir que fcgiwrap
se ejecute en el proceso del
motor como la usuaria local correspondiente. Para activar esta funcionalidad
en el motor, ejecute fcgiwrap
mediante la usuaria y grupo
root
. Tenga en cuenta de que esta funcionalidad debe configurarse del
mismo modo en el servidor de fachada.
PHP-FPM (FastCGI Process Manager) es una implementación alternativa de FastCGI en PHP con algunas características adicionales útiles para sitios de cualquier tamaño.
Estas características incluyen:
... y muchas más.
Un tipo de servicio para php-fpm
.
Tipo de datos para la configuración del servicio php-fpm.
php
(predeterminado: php
)El paquete php usado.
socket
(predeterminado: (string-append "/var/run/php" (version-major (package-version php)) "-fpm.sock")
)La dirección desde la que FastCGI acepta peticiones. Las sintaxis válidas son:
"dir.ecc.ión.ip:puerto"
Escucha con un socket TCP en la dirección especificada en un puerto específico.
"puerto"
Escucha en un socket TCP en todas las direcciones sobre un puerto específico.
"/ruta/a/socket/unix"
Escucha en un socket Unix.
user
(predeterminada: php-fpm
)Usuaria que poseerá los procesos de trabajo de php.
group
(predeterminado: php-fpm
)Grupo de los procesos de trabajo.
socket-user
(predeterminado: php-fpm
)Usuaria que puede comunicarse con el socket de php-fpm.
socket-group
(predeterminado: nginx
)Grupo que puede comunicarse con el socket de php-fpm.
pid-file
(predeterminado: (string-append "/var/run/php" (version-major (package-version php)) "-fpm.pid")
)El identificador de proceso del proceso de php-fpm se escribe en este archivo cuando se ha iniciado el servicio.
log-file
(predeterminado: (string-append "/var/log/php" (version-major (package-version php)) "-fpm.log")
)Registro del proceso maestro de php-fpm.
process-manager
(predeterminado: (php-fpm-dynamic-process-manager-configuration)
)Configuración detallada para el gestor de procesos php-fpm. Debe ser uno de los siguientes tipos:
<php-fpm-dynamic-process-manager-configuration>
<php-fpm-static-process-manager-configuration>
<php-fpm-on-demand-process-manager-configuration>
display-errors
(predeterminado #f
)Determina si los errores y avisos de php deben enviarse a los clientes para que se muestren en sus navegadores. Esto es útil para la programación local con php, pero un riesgo para la seguridad de sitios públicos, ya que los mensajes de error pueden revelar contraseñas y datos personales.
timezone
(predeterminado: #f
)Especifica el parámetro php_admin_value[date.timezone]
.
workers-logfile
(predeterminado (string-append "/var/log/php" (version-major (package-version php)) "-fpm.www.log")
)Este archivo registrará las salidas por stderr
de los procesos de
trabajo de php. Puede proporcionarse #f
para desactivar el registro.
file
(predeterminado #f
)Sustituye opcionalmente la configuración al completo. Puede usar la función
mixed-text-file
o una ruta absoluta de un archivo para hacerlo.
php-ini-file
(predeterminado: #f
)Sustituye opcionalmente la configuración predeterminada de php. Puede ser
cualquier objeto “tipo-archivo” (see file-like
objects). Puede usar la función mixed-text-file
o una ruta absoluta
de un archivo para hacerlo.
Para el desarrollo local es útil proporcionar valores mayores para los plazos y límites de memoria de los procesos php lanzados. Esto puede obtenerse con el siguiente fragmento de la configuración de sistema operativo:
(define %php-ini-local (plain-file "php.ini" "memory_limit = 2G max_execution_time = 1800")) (operating-system ;; … (services (cons (service php-fpm-service-type (php-fpm-configuration (php-ini-file %php-ini-local))) %base-services)))
Consulte las directivas principales de php.ini para obtener una documentación extensa de las directivas aceptables en el archivo php.ini.
Data Type for the dynamic
php-fpm process manager. With the
dynamic
process manager, spare worker processes are kept around based
on its configured limits.
max-children
(predeterminados: 5
)Número máximo de procesos de trabajo.
start-servers
(predeterminados: 2
)Cuantos procesos de trabajo deben ejecutarse al inicio.
min-spare-servers
(predeterminado: 1
)Cuantos procesos de trabajo deben mantenerse disponibles como mínimo.
max-spare-servers
(predeterminados: 3
)Cuantos procesos de trabajo deben mantenerse disponibles como máximo.
Tipo de datos para el gestor de procesos static
de php-fpm. Con el
gestor de procesos static
, se crea un número fijo de procesos de
trabajo.
max-children
(predeterminados: 5
)Número máximo de procesos de trabajo.
Tipo de datos para el gestor de procesos on-demand
de php-fpm. Con el
gestor de procesos on-demand
, se crean procesos de trabajo únicamente
cuando se reciben peticiones.
max-children
(predeterminados: 5
)Número máximo de procesos de trabajo.
process-idle-timeout
(predeterminado: 10
)El tiempo en segundos tras el cual un proceso sin peticiones será eliminado.
php)) "-fpm.sock")]
Función auxiliar para añadir php a una configuración
nginx-server-configuration
rápidamente.
Una configuración simple de servicios para nginx con php puede ser más o menos así:
(services (cons* (service dhcp-client-service-type)
(service php-fpm-service-type)
(service nginx-service-type
(nginx-server-configuration
(server-name '("example.com"))
(root "/srv/http/")
(locations
(list (nginx-php-location)))
(listen '("80"))
(ssl-certificate #f)
(ssl-certificate-key #f)))
%base-services))
El generadores de avatares de gato es un servicio simple para demostrar el
uso de php-fpm en Nginx
. Se usa para generar un avatar de gato desde
una semilla, por ejemplo el hash de la dirección de correo de la usuaria.
cat-avatar-generator] [#:configuration (nginx-server-configuration)]
Devuelve una configuración de nginx-server-configuration que hereda de
configuration
. Extiende la configuración de nginx para añadir un
bloque de servidor que proporciona package
, una versión de
cat-avatar-generator. Durante su ejecución, cat-avatar-generator podrá usar
cache-dir
como su directorio de caché.
Una configuración simple para cat-avatar-generator puede ser más o menos así:
(services (cons* (cat-avatar-generator-service
#:configuration
(nginx-server-configuration
(server-name '("example.com"))))
...
%base-services))
El programa hpcguix-web es una interfaz web personalizable para buscar paquetes de Guix, diseñado inicialmente para usuarias de clusters de computación de alto rendimiento (HPC).
El tipo de servicio para hpcguix-web
.
El tipo de datos para la configuración del servicio hpcguix-web.
specs
(default: #f
)Either #f
or a gexp (see Expresiones-G) specifying the
hpcguix-web service configuration as an hpcguix-web-configuration
record. The main fields of that record type are:
title-prefix
(predeterminado: "hpcguix | "
)El prefijo del título de la página.
guix-command
(predeterminada: "guix"
)The guix
command to use in examples that appear on HTML pages.
package-filter-proc
(predeterminado: (const #t)
)Un procedimiento que especifica cómo filtrar los paquetes mostrados.
package-page-extension-proc
(predeterminado: (const '())
)Paquete de extensión para hpcguix-web
.
menu
(predeterminadas: '()
)Entradas adicionales en el menú de la página.
channels
(predeterminados: %default-channels
)Lista de canales desde los que se construye la lista de paquetes (see Canales).
package-list-expiration
(predeterminado: (* 12 3600)
)El tiempo de expiración, en segundos, tras el cual la lista de paquetes se reconstruye desde las últimas instancias de los canales proporcionados.
Véase el repositorio de hpcguix-web para un ejemplo completo.
package
(predeterminado: hpcguix-web
)El paquete hpcguix-web usado.
address
(default: "127.0.0.1"
)The IP address to listen to.
port
(default: 5000
)The port number to listen to.
Una declaración típica del servicio hpcguix-web es más o menos así:
(service hpcguix-web-service-type
(hpcguix-web-configuration
(specs
#~(hpcweb-configuration
(title-prefix "Guix-HPC - ")
(menu '(("/about" "ABOUT")))))))
Nota: El servicio hpcguix-web actualiza periódicamente la lista de paquetes que publica obteniendo canales con Git. Para ello, necesita acceder a certificados X.509 de manera que pueda validar los servidores Git durante la comunicación con HTTPS, y asume que /etc/ssl/certs contiene dichos certificados.
A certificate package,
nss-certs
, is provided by default as part of%base-packages
. Certificados X.509, for more information on X.509 certificates.
El programa gmnisrv es un servidor simple del protocolo Gemini.
Es el tipo del servicio gmnisrv, cuyo valor debe ser un objeto
gmniserv-configuration
como en este ejemplo:
(service gmnisrv-service-type
(gmnisrv-configuration
(config-file (local-file "./mi-gmnisrv.ini"))))
Tipo de datos que representa la configuración de gmnisrv.
package
(predeterminado: gmnisrv)El objeto paquete del servidor gmnisrv.
config-file
(predeterminado: %default-gmnisrv-config-file
)Objeto tipo-archivo del archivo de configuración de gmnisrv usado. La
configuración predeterminada escucha en el puerto 1965 y proporciona
archivos desde /srv/gemini. Los certificados se almacenan en
/var/lib/gemini/certs. Puede ejecutar las ordenes man
gmnisrv
y man gmnisrv.ini
para obtener más información.
The Agate (GitHub page over HTTPS) program is a simple Gemini protocol server written in Rust.
This is the type of the agate service, whose value should be an
agate-service-type
object, as in this example:
(service agate-service-type
(agate-configuration
(content "/srv/gemini")
(certificates "/srv/gemini-certs")))
The example above represents the minimal tweaking necessary to get Agate up and running. Specifying the path to the certificate and key directory is always necessary, as the Gemini protocol requires TLS by default.
If the specified certificates
path is writable by Agate, and contains
no valid pre-generated key and certificate, Agate will try to generate them
on the first start. In this case you should pass at least one hostname
using the hostnames
option. If the specified directory is read-only,
key and certificate should be pre-generated by the user.
To obtain a certificate and a key in DER format, you could, for example, use OpenSSL, running commands similar to the following example:
openssl genpkey -out key.der -outform DER -algorithm RSA \ -pkeyopt rsa_keygen_bits:4096 openssl req -x509 -key key.der -outform DER -days 3650 -out cert.der \ -subj "/CN=example.com"
Of course, you’ll have to replace example.com with your own domain name,
and then point the Agate configuration towards the path of the directory
with the generated key and certificate using the certificates
option.
Data type representing the configuration of Agate.
package
(default: agate
)The package object of the Agate server.
content
(default: "/srv/gemini")The directory from which Agate will serve files.
certificates
(default: "/srv/gemini-certs")Root of the certificate directory. Must be filled in with a value from the user.
addresses
(default: '("[::]:1965" "0.0.0.0:1965")
)A list of the addresses to listen on.
hostnames
(default: '()
)Virtual hosts for the Gemini server. If multiple values are specified,
corresponding directory names should be present in the content
directory. Optional.
languages
(default: #f
)RFC 4646 language code(s) for text/gemini documents. Optional.
only-tls13?
(default: #f
)Set to #t
to disable support for TLSv1.2.
serve-secret?
(default: #f
)Set to #t
to serve secret files (files/directories starting with a
dot).
central-configuration?
(default: #f
)Set to #t
to look for the .meta configuration file in the
content
root directory and will ignore .meta
files in other
directories
ed25519?
(default: #f
)Set to #t
to generate keys using the Ed25519 signature algorithm
instead of the default ECDSA.
skip-port-check?
(default: #f
)Set to #t
to skip URL port check even when a hostname
is
specified.
log-ip?
(default: #t
)Whether or not to output IP addresses when logging.
user
(default: "agate"
)Owner of the agate
process.
group
(default: "agate"
)Owner’s group of the agate
process.
log-file
(default: "/var/log/agate.log")The file which should store the logging output of Agate.
Next: Servicios de certificados, Previous: Servicios LDAP, Up: Servicios [Contents][Index]