6. Canfiguración avanzada

6.1. Registro

Para registrar las solicitudes enviadas al servidor, debe configurar la siguiente variable de entorno:

Con las siguientes variables, el registro se puede personalizar aún más:

6.2. Variables de entorno

Puede configurar algunos aspectos de QGIS Server configurando ** variables de entorno **.

Según el servidor HTTP y cómo ejecute QGIS Server, hay varias formas de definir estas variables. Esto se describe completamente en Servidor HTTP Apache.

Nombre

Descripción

Predeterminada

Servicios

QGIS_OPTIONS_PATH

Especifica la ruta al directorio con la configuración. Funciona de la misma manera que la opción --optionspath de la aplicación QGIS. Está buscando un archivo de configuración en <QGIS_OPTIONS_PATH>/QGIS/QGIS3.ini.

“”

Todo

QGIS_PLUGINPATH

Útil si está utilizando complementos de Python para el servidor, esto establece la carpeta en la que se buscan complementos de Python.

“”

Todo

QGIS_PROJECT_FILE

El archivo de proyecto .qgs o .qgz, normalmente pasado como un parámetro en la cadena de consulta (con MAP), también puede configurarlo como una variable de entorno (por ejemplo, usando el módulo Apache mod_rewrite).

Tenga en cuenta que también puede indicar un proyecto almacenado en PostgreSQL, p. Ej. postgresql://localhost:5432?sslmode=disable&dbname=mydb&schema=myschema&project=myproject.

“”

Todo

QGIS_SERVER_ALLOWED_EXTRA_SQL_TOKENS

Lista separada por comas de cadenas que representan los tokens SQL adicionales permitidos que se aceptan como componentes de un filtro de características.

“”

WMS

QGIS_SERVER_API_RESOURCES_DIRECTORY

Directorio base para todos los recursos estáticos de la API OGC (como OAPIF / WFS3) (plantillas HTML, CSS, JS, …)

dependiente del empaquetado

OAPIF/WFS3

QGIS_SERVER_API_WFS3_MAX_LIMIT

Máximo valor para limite en una petición de características OAPIF/WFS3.

10000

OAPIF/WFS3

QGIS_SERVER_CACHE_DIRECTORY

Especifica el directorio de caché de red en el sistema de archivos.

cache en directorio de perfil

Todo

QGIS_SERVER_CACHE_SIZE

Establece el tamaño de la caché de la red en MB.

50 MB

Todo

QGIS_SERVER_DISABLE_GETPRINT

Esta es una opción a nivel de proyecto para mejorar el tiempo de lectura del proyecto al deshabilitar la carga de diseños.

La activación de esta opción desactiva la solicitud GetPrint de QGIS WMS. Configure esta bandera de proyecto QGIS para que no cargue diseños.

falso

WMS

QGIS_SERVER_FORCE_READONLY_LAYERS

Forzar QGIS Server para abrir todas las capas en un modo de sólo lectura

falso

Todo

QGIS_SERVER_IGNORE_BAD_LAYERS

Las capas «malas» son capas que no se pueden cargar. El comportamiento predeterminado de QGIS Server es considerar el proyecto como no disponible si contiene una capa incorrecta.

El comportamiento predeterminado se puede anular estableciendo esta variable en 1 o verdadero. En este caso, las capas «malas» simplemente se ignorarán y el proyecto se considerará válido y disponible.

falso

Todo

QGIS_SERVER_LANDING_PAGE_PREFIX

Prefijo del componente de la ruta de la URL base de la página de destino

«»

Todo

QGIS_SERVER_LANDING_PAGE_PROJECTS_DIRECTORIES

Directorios utilizados por el servicio de página de destino para encontrar proyectos .qgs y .qgz

«»

Todo

QGIS_SERVER_LANDING_PAGE_PROJECTS_PG_CONNECTIONS

Cadenas de conexión de PostgreSQL utilizadas por el servicio de página de destino para encontrar proyectos

«»

Todo

QGIS_SERVER_LOG_FILE

Especifique la ruta y el nombre del archivo. Asegúrese de que el servidor tenga los permisos adecuados para escribir en el archivo. El archivo debe crearse automáticamente, solo envíe algunas solicitudes al servidor. Si no está allí, verifique los permisos.

Advertencia

QGIS_SERVER_LOG_FILE está en desuso desde QGIS 3.4, use QGIS_SERVER_LOG_STDERR en su lugar. La compatibilidad con el registro de archivos se eliminará en QGIS 4.0.

“”

Todo

QGIS_SERVER_LOG_LEVEL

Especifique el nivel de registro deseado. Los valores disponibles son:

  • 0 o INFO (registrar todas las solicitudes)

  • 1 o WARNING

  • 2 o CRITICAL (registrar solo errores críticos, adecuados para fines de producción)

0

Todo

QGIS_SERVER_LOG_PROFILE

Agregue información de perfil detallada a los registros, solo efectivo cuando QGIS_SERVER_LOG_LEVEL=0

falso

Todo

QGIS_SERVER_LOG_STDERR

Active el registro en stderr. Esta variable no tiene efecto cuando``QGIS_SERVER_LOG_FILE`` está establecido.

  • 0 o falso (caso no sensitivo)

  • 1 or verdadero (caso no sensitivo)

falso

Todo

QGIS_SERVER_MAX_THREADS

Número de subprocesos que se utilizarán cuando se active la representación en paralelo. Si el valor es -1, utiliza el número de núcleos del procesador.

-1

Todo

QGIS_SERVER_OVERRIDE_SYSTEM_LOCALE

Establece LOCALE para que lo utilice el servidor QGIS. El valor predeterminado está vacío (sin anulación).

Ejemplo: de_CH.utf8

“”

Todo

QGIS_SERVER_PARALLEL_RENDERING

Activa la representación en paralelo para las solicitudes WMS GetMap. Está deshabilitado (falsE) de forma predeterminada. Los valores disponibles son:

  • 0 o falso (caso no sensitivo)

  • 1 or verdadero (caso no sensitivo)

falso

WMS

QGIS_SERVER_PROJECT_CACHE_CHECK_INTERVAL

Controla el intervalo de la estrategia periódica para la invalidación de la caché

Todo

QGIS_SERVER_PROJECT_CACHE_STRATEGY

Define el método para invalidar la caché del proyecto. Las estrategias disponibles son:

  • filesystem: utiliza la estrategia de vigilancia del sistema de archivos

  • periodic: utiliza el último valor modificado de un proyecto para comprobar los cambios en la configuración del proyecto. Conveniente en sistemas de archivos atípicos, como NFS, o cuando el archivo del proyecto se almacena en un sistema de base de datos como PostgreSQL.

  • off: desactiva completamente la invalidación de la caché interna

filesystem

Todo

QGIS_SERVER_SERVICE_URL

Esta es una opción para establecer la URL del servicio si o está presente en el proyecto.

La URL del servicio se establece desde (en orden de preferencia):

  • Valor definido en el proyecto por servicio

  • La variable de entorno QGIS_SERVER_<service>_SERVICE_URL environment variable

  • La variable de entorno QGIS_SERVER_SERVICE_URL

  • La cabecera X-Qgis-<service>-Service-Url header

  • La cabecera X-Qgis-Service-Url

  • Construido desde la cabecera Forwarded

  • Construido desde las cabeceras X-Forwarded-Host y X-Forwarded-Proto

  • Construido desde la cabecera Host y el protocolo servidor

  • Construido desde el nombre del servidor y el protocolo del servidor.

En los últimos cuatro casos, el Servicio URL resultante se basa en el parámetro MAP proporcionado en la cadena de consulta y en la solicitud de ruta entrante.

“”

Todo

QGIS_SERVER_SHOW_GROUP_SEPARATOR

Define si se debe utilizar un separador de grupo (por ejemplo, un separador de miles) para valores numéricos (por ejemplo, en las respuestas GetFeatureInfo). El valor predeterminado es 0.

  • 0 o falso (caso no sensitivo)

  • 1 or verdadero (caso no sensitivo)

falso

WMS

QGIS_SERVER_TRUST_LAYER_METADATA

Esta es una opción a nivel de proyecto para mejorar el tiempo de lectura del proyecto mediante el uso de las extensiones de la capa vectorial definidas en los metadatos del proyecto y deshabilitando la verificación de la unicidad de la clave primaria de la capa PostgreSQL/PostGIS.

La confianza en los metadatos de la capa se puede forzar estableciendo esta variable en 1 o verdadero. La extensión de la capa vectorial será entonces la definida en el proyecto, y la clave principal de la capa PostgreSQL/PostGIS definida en la fuente de datos se considera única sin una verificación.

No lo use si la extensión de las capas no se fija durante el uso del proyecto.

falso

Todo

QGIS_SERVER_WCS_SERVICE_URL

Esta es una opción para establecer la URL del servicio si no está presente en el proyecto. Vea QGIS_SERVER_SERVICE_URL para más información.

“”

WCS

QGIS_SERVER_WFS_SERVICE_URL

Esta es una opción para establecer la URL del servicio si no está presente en el proyecto. Vea QGIS_SERVER_SERVICE_URL para más información.

“”

WFS

QGIS_SERVER_WMS_MAX_HEIGHT / QGIS_SERVER_WMS_MAX_WIDTH

Altura/anchura máxima para una solicitud WMS. Se utiliza el más conservador entre este y el del proyecto. Si el valor es -1, significa que no hay un ajuste máximo.

-1

WMS

QGIS_SERVER_WMS_SERVICE_URL

Esta es una opción para establecer la URL del servicio si no está presente en el proyecto. Vea QGIS_SERVER_SERVICE_URL para más información.

“”

WMS

QGIS_SERVER_WMTS_SERVICE_URL

Esta es una opción para establecer la URL del servicio si no está presente en el proyecto. Vea QGIS_SERVER_SERVICE_URL para más información.

“”

WMTS

QUERY_STRING

La cadena de consulta, normalmente pasada por el servidor web. Esta variable puede ser útil al probar el binario del servidor QGIS desde la línea de comandos.

Por ejemplo, para probar una solicitud GetCapabilities en la línea de comando para un proyecto que también requiere una conexión PostgreSQL definida en un archivo pg_service.conf:

PGSERVICEFILE=/etc/pg_service.conf \
QUERY_STRING="MAP=/home/projects/world.qgs&SERVICE=WMS&REQUEST=GetCapabilities" \
/usr/lib/cgi-bin/qgis_mapserv.fcgi

El resultado debe ser el contenido de la respuesta GetCapabilities o, si algo está mal, un mensaje de error.

“”

Todo

6.3. Resumen de configuración

Cuando QGIS Server se está iniciando, tiene un resumen de todos los parámetros configurables gracias a las variables de entorno. Además, también se muestra el valor utilizado actualmente y el origen.

Por ejemplo con spawn-fcgi:

export QGIS_OPTIONS_PATH=/home/user/.local/share/QGIS/QGIS3/profiles/default/
export QGIS_SERVER_LOG_STDERR=1
export QGIS_SERVER_LOG_LEVEL=2
spawn-fcgi -f /usr/lib/cgi-bin/qgis_mapserv.fcgi -s /tmp/qgisserver.sock -U www-data -G www-data -n

 QGIS Server Settings:

   - QGIS_OPTIONS_PATH / '' (Override the default path for user configuration): '/home/user/.local/share/QGIS/QGIS3/profiles/default/' (read from ENVIRONMENT_VARIABLE)

   - QGIS_SERVER_PARALLEL_RENDERING / '/qgis/parallel_rendering' (Activate/Deactivate parallel rendering for WMS getMap request): 'true' (read from INI_FILE)

   - QGIS_SERVER_MAX_THREADS / '/qgis/max_threads' (Number of threads to use when parallel rendering is activated): '4' (read from INI_FILE)

   - QGIS_SERVER_LOG_LEVEL / '' (Log level): '2' (read from ENVIRONMENT_VARIABLE)

   - QGIS_SERVER_LOG_STDERR / '' (Activate/Deactivate logging to stderr): '1' (read from ENVIRONMENT_VARIABLE)

   - QGIS_PROJECT_FILE / '' (QGIS project file): '' (read from DEFAULT_VALUE)

   - MAX_CACHE_LAYERS / '' (Specify the maximum number of cached layers): '100' (read from DEFAULT_VALUE)

   - QGIS_SERVER_CACHE_DIRECTORY / '/cache/directory' (Specify the cache directory): '/root/.local/share/QGIS/QGIS3/profiles/default/cache' (read from DEFAULT_VALUE)

   - QGIS_SERVER_CACHE_SIZE / '/cache/size' (Specify the cache size): '52428800' (read from INI_FILE)

 Ini file used to initialize settings: /home/user/.local/share/QGIS/QGIS3/profiles/default/QGIS/QGIS3.ini

En este caso particular, sabemos que QGIS_SERVER_MAX_THREADS y QGIS_SERVER_PARALLEL_RENDERING los valores se leen del archivo ini que se encuentra en QGIS_OPTIONS_PATH directorio (que se define a través de una variable de entorno). Las entradas correspondientes en el archivo ini son /qgis/max_threads y /qgis/parallel_rendering y sus valores son true y 4 hilos.

6.4. Conexión a archivo servicio

Para que apache conozca el archivo de servicio PostgreSQL (consulte la sección :ref: pg-service-file), debe hacer que su archivo :file:` *.conf` tenga este aspecto:

SetEnv PGSERVICEFILE /home/web/.pg_service.conf

<Directory "/home/web/apps2/bin/">
  AllowOverride None
.....

6.5. Agregar fuentes a su servidor linux

Tenga en cuenta que puede usar proyectos QGIS que apunten a fuentes que pueden no existir por defecto en otras máquinas. Esto significa que si comparte el proyecto, puede verse diferente en otras máquinas (si las fuentes no existen en la máquina de destino).

Para asegurarse de que esto no suceda, solo necesita instalar las fuentes que faltan en la máquina de destino. Hacer esto en sistemas de escritorio suele ser trivial (hacer doble clic en las fuentes).

Para Linux, si no tiene un entorno de escritorio instalado (o prefiere la línea de comandos), debe:

  • En sistemas basados en Debian:

    sudo su
    mkdir -p /usr/local/share/fonts/truetype/myfonts && cd /usr/local/share/fonts/truetype/myfonts
    
    # copy the fonts from their location
    cp /fonts_location/* .
    
    chown root *
    cd .. && fc-cache -f -v
    
  • En sistemas basados en Debian:

    sudo su
    mkdir /usr/share/fonts/myfonts && cd /usr/share/fonts/myfonts
    
    # copy the fonts from their location
    cp /fonts_location/* .
    
    chown root *
    cd .. && fc-cache -f -v