Otras mejoras en la producción¶
Configuración de producción de GeoServer¶
Configuración de JVM: opciones de memoria y GeoServer¶
El archivo .env proporciona una manera de personalizar las opciones de GeoServer JVM.
La variable GEOSERVER_JAVA_OPTS le permite ajustar el contenedor GeoServer y habilitar opciones específicas de GeoServer.
GEOSERVER_JAVA_OPTS=
-Djava.awt.headless=true -Xms4G -Xmx4G -XX:PerfDataSamplingInterval=500
-XX:SoftRefLRUPolicyMSPerMB=36000 -XX:-UseGCOverheadLimit -XX:+UseConcMarkSweepGC
-XX:+UseParNewGC -XX:ParallelGCThreads=4 -Dfile.encoding=UTF8 -Djavax.servlet.request.encoding=UTF-8
-Djavax.servlet.response.encoding=UTF-8 -Duser.timezone=GMT
-Dorg.geotools.shapefile.datetime=false -DGS-SHAPEFILE-CHARSET=UTF-8 -DGEOSERVER_CSRF_DISABLED=true -DPRINT_BASE_URL=http://geoserver:8080/geoserver/pdf
-Djava.awt.sin cabeza (verdadero)
Trabaje con aplicaciones basadas en gráficos en Java sin una pantalla, teclado o mouse real. Un caso de uso típico de componentes de interfaz de usuario que se ejecutan en un entorno sin cabeza podría ser una aplicación de conversión de imágenes.Aunque necesita datos gráficos para el procesamiento de imágenes, una pantalla no es realmente necesaria.La aplicación podría ejecutarse en un servidor y los archivos convertidos se guardarán o se enviarán a través de la red a otra máquina para su visualización.
-Xms4G -Xmx4G
Esto significa que su JVM se iniciará con una cantidad de memoria de Xms y podrá utilizar una cantidad máxima de memoria de Xmx.Arriba se iniciará una JVM con 2 GB de memoria y permitirá que el proceso utilice hasta 4 GB de memoria.Debe ajustar este valor dependiendo de su RAM disponible.
-DGEOSERVER_CSRF_DISABLED (Verdadero)
El administrador web de GeoServer emplea un filtro de protección CSRF (falsificación de solicitudes entre sitios) que bloqueará cualquier envío de formulario que no parezca originarse en GeoServer.A veces, esto puede causar problemas con determinadas configuraciones de proxy.Puede deshabilitar el filtro CSRF configurando la propiedad GEOSERVER_CSRF_DISABLED en verdadero.https://docs.geoserver.org/stable/en/user/security/webadmin/csrf.html
Siempre que necesite cambiar una o más de las opciones de JVM, deberá reiniciar el contenedor GeoServer Docker.
# Hard restart of the container: the only way to update the .env variables
docker-compose up -d geoserver
Este comando preservará toda la configuración y los datos de GeoServer, ya que GEOSERVER_DATA_DIR se almacena en un volumen estático de Docker.
Sin embargo, cualquier cambio que haya realizado manualmente en el contenedor, p.agregado un nuevo complemento a GeoServer o actualizado algunos JAR en la carpeta de la biblioteca WEB-INF/lib, se perderá.
Deberá agregar los JAR nuevamente y reiniciar GeoServer suavemente
# Soft restart of the container: the .env variables won't be updated
docker-compose restart geoserver
Configuración global y de servicios¶
Verifique el uso y el estado de la memoria del GeoServer;asegúrese de que la ruta
GEOSERVER_DATA_DIRapunte al volumen estático![]()
Estado del GeoServidor¶
GeoServer Configuración Global;asegúrese de que
Proxy Base Urlapunte a la URL pública y que los niveles deLOGGINGestén configurados en Production Mode![]()
Configuración global¶
GeoServer Configuración de procesamiento de imágenes;a menos que esté utilizando algún renderizador específico o complemento de GeoServer, use las siguientes opciones recomendadas
Nota
Más detalles en https://docs.geoserver.org/stable/en/user/configuration/image_processing/index.html#image-processing
![]()
Configuración de procesamiento de imágenes¶
Puesta a punto Configuración de Servicios GeoServer;:guilabel:WCS, WFS, WMS y WPS;
WCS: Actualice los límites según sus necesidades.No utilice valores muy altos, esto hará que GeoServer sea propenso a ataques DoS.
![]()
Límites de consumo de recursos de WCS¶
WMS: Especifica aquí la Lista SRS que vas a utilizar.Vacío significa todos los soportados por GeoServer, pero tenga cuidado ya que la salida
GetCapabilitiesserá enorme.![]()
Lista de SRS compatibles con WMS¶
WMS: Raster Rendering Options le permite ajustar la salida WMS para un mejor rendimiento o calidad.Mejor interpretación:
Vecino más cercano- Mejor calidad:BicúbicaAdvertencia
Las imágenes rasterizadas siempre deben optimizarse antes de ser ingeridas en GeoNode.La recomendación general es nunca cargar una imagen GeoTIFF no procesada en GeoNode.
Más detalles en:
![]()
Opciones de renderizado ráster WMS¶
WMS: Actualiza los límites según tus necesidades.No utilice valores muy altos, esto hará que GeoServer sea propenso a ataques DoS.
![]()
Límites de consumo de recursos WMS¶
GeoWebCache DiskQuota en Postgis¶
De forma predeterminada, GeoWebCache DiskQuota está deshabilitado.Eso significa que el caché de capas podría crecer indefinidamente.
GeoWebCache DiskQuota siempre debe estar habilitado en un sistema de producción.En el caso de que esté habilitado, esto debe configurarse para utilizar un motor de base de datos como Postgis para almacenar sus índices.
En primer lugar, asegúrese de que Tile Caching esté habilitado en todas las capas disponibles.
Nota
GeoNode normalmente hace esto automáticamente por usted.Vale la pena volver a comprobarlo de todos modos.
![]()
Almacenamiento en caché de mosaicos: conjuntos de datos en mosaico¶
Configure Disk Quota proporcionando la cadena de conexión al DB Docker Container como se especifica en el archivo .env
![]()
Almacenamiento en caché de mosaicos: configuración de cuota de disco¶
Reglas de seguridad de GeoFence en Postgis¶
Por defecto, GeoFence almacena las reglas de seguridad en una base de datos H2.
En un sistema de producción, esto no es realmente recomendable.Deberá actualizar el contenedor GeoServer Docker para permitir que GeoFence almacene las reglas en el contenedor DB Docker.
Para hacer eso, siga el procedimiento a continuación:
# Enter the GeoServer Docker Container
docker-compose exec geoserver bash
# Install a suitable editor
apt update
apt install nano
# Edit the GeoFence DataStore .properties file
nano /geoserver_data/data/geofence/geofence-datasource-ovr.properties
Nota
Asegúrese de proporcionar los mismos parámetros de conexión especificados en el archivo .env
geofenceVendorAdapter.databasePlatform=org.hibernate.spatial.dialect.postgis.PostgisDialect
geofenceDataSource.driverClassName=org.postgresql.Driver
geofenceDataSource.url=jdbc:postgresql://db:5432/my_geonode_data
geofenceDataSource.username=my_geonode_data
geofenceDataSource.password=********
geofenceEntityManagerFactory.jpaPropertyMap[hibernate.default_schema]=public
geofenceDataSource.testOnBorrow=true
geofenceDataSource.validationQuery=SELECT 1
geofenceEntityManagerFactory.jpaPropertyMap[hibernate.testOnBorrow]=true
geofenceEntityManagerFactory.jpaPropertyMap[hibernate.validationQuery]=SELECT 1
geofenceDataSource.removeAbandoned=true
geofenceDataSource.removeAbandonedTimeout=60
geofenceDataSource.connectionProperties=ApplicationName=GeoFence;
# Update the GeoServer WEB-INF/lib JARs accordingly
wget --no-check-certificate "https://repo1.maven.org/maven2/org/postgis/postgis-jdbc/1.3.3/postgis-jdbc-1.3.3.jar" -O postgis-jdbc-1.3.3.jar && \
wget --no-check-certificate "https://maven.geo-solutions.it/org/hibernatespatial/hibernate-spatial-postgis/1.1.3.2/hibernate-spatial-postgis-1.1.3.2.jar" -O hibernate-spatial-postgis-1.1.3.2.jar && \
rm /usr/local/tomcat/webapps/geoserver/WEB-INF/lib/hibernate-spatial-h2-geodb-1.1.3.1.jar && \
mv hibernate-spatial-postgis-1.1.3.2.jar /usr/local/tomcat/webapps/geoserver/WEB-INF/lib/ && \
mv postgis-jdbc-1.3.3.jar /usr/local/tomcat/webapps/geoserver/WEB-INF/lib/
El contenedor está listo para reiniciarse ahora.
Advertencia
Recuerde realizar un reinicio suave; de lo contrario, los archivos JAR WEB-INF/lib se restablecerán al estado original.
# Exit the GeoServer container
exit
# Soft Restart GeoServer Docker Container
docker-compose restart geoserver
IMPORTANTE: La primera vez que realice este procedimiento, GeoFence ya no podrá recuperar las reglas de seguridad antiguas.
Necesitará fixup_geonode_capas_permissions para poder regenerar las reglas de seguridad.
Reparar permisos de conjuntos de datos de GeoNode¶
La lista de reglas de seguridad de GeoFence está disponible en la sección Reglas de datos de GeoFence.
Siempre verifique que la lista sea accesible y que las reglas de datos estén ahí.Si está vacío, los usuarios estándar que no sean admin podrán acceder a ninguna capa.
Reglas de datos de GeoFence¶
Para volver a sincronizar las reglas de seguridad de GeoFence, siga el procedimiento a continuación:
# Enter the GeoNode Docker Container
docker-compose exec django bash
# Run the `sync_geonode_datasets` management command
./manage.sh sync_geonode_datasets --updatepermissions
Regenerar miniaturas de conjuntos de datos de GeoNode¶
El siguiente procedimiento le permite regenerar por lotes todas las miniaturas de conjuntos de datos:
# Enter the GeoNode Docker Container
docker-compose exec django bash
# Run the `sync_geonode_datasets` management command
./manage.sh sync_geonode_datasets --updatethumbnails
Regenerar conjuntos de datos de GeoNode BBOXES¶
El siguiente procedimiento le permite regenerar por lotes todos los conjuntos de datos BBOXES:
# Enter the GeoNode Docker Container
docker-compose exec django bash
# Run the `sync_geonode_datasets` management command
./manage.sh sync_geonode_datasets --updatebbox
Reparar metadatos de conjuntos de datos de GeoNode y enlaces de descarga¶
El siguiente procedimiento le permite reparar enlaces de metadatos rotos o incorrectos:
# Enter the GeoNode Docker Container
docker-compose exec django bash
# Run the `set_all_datasets_metadata` management command
./manage.sh set_all_datasets_metadata -d
También es posible forzar la eliminación de los enlaces antes de regenerarlos:
# Enter the GeoNode Docker Container
docker-compose exec django bash
# Run the `set_all_datasets_metadata` management command
./manage.sh set_all_datasets_metadata -d --prune
Migrar GeoNode a un nuevo nombre de host¶
En el caso de que necesite mover su instancia a otro dominio, como por ejemplo de https://my_geonode.geonode.org/ a https://prod_geonode.geonode.org/, siga el procedimiento a continuación:
Actualice el archivo .env especificando el nuevo nombre en consecuencia.
Reinicie el contenedor Docker GeoNode.
docker-compose up -d geonode
Ejecute los siguientes comandos de administración desde el interior del GeoNode Docker Container.
# Enter the GeoNode Docker Container docker-compose exec django bash # Run the `migrate_baseurl` management command ./manage.sh migrate_baseurl --source-address=my_geonode.geonode.org --target-address=prod_geonode.geonode.org # Run the `set_all_datasets_metadata` management command ./manage.sh set_all_datasets_metadata -d
Agregue conjuntos de datos enormes o de base de datos a su instancia¶
A veces no es posible cargar grandes conjuntos de datos, o tablas de bases de datos, a GeoNode desde la Web Upload Interface.
El procedimiento sugerido en tales casos es el siguiente:
Agregue el conjunto de datos a GeoServer primero directamente.
Primero debe cargar los datos en el volumen estático del contenedor Docker de GeoServer y luego agregar manualmente la capa a través de GeoServer Admin GUI.
Una vez que el conjunto de datos esté configurado correctamente en GeoServer, ejecute el siguiente comando de administración desde dentro del GeoNode Docker Container
# Enter the GeoNode Docker Container docker-compose exec django bash # Run the `updatelayers` management command ./manage.sh updatelayers -w <workspace_name> -f <layer_name>








