Mejoras Adicionales para 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.headless (true)
Trabajar con aplicaciones gráficas en Java sin necesidad de una pantalla, teclado o mouse físicos. Un caso de uso típico para componentes de interfaz de usuario en un entorno sin interfaz gráfica podría ser una aplicación de conversión de imágenes. Aunque requiere datos gráficos para procesar las imágenes, no necesita una pantalla. La aplicación podría ejecutarse en un servidor, y los archivos convertidos guardarse o enviarse a través de la red a otra máquina para su visualización.
-Xms4G -Xmx4G
Esto significa que tu JVM se iniciará con una cantidad de memoria especificada por Xms y podrá utilizar un máximo de memoria especificado por Xmx. Lo anterior iniciará una JVM con 2 GB de memoria y permitirá que el proceso use hasta 4 GB de memoria. Necesitas ajustar este valor dependiendo de tu RAM disponible.
-DGEOSERVER_CSRF_DISABLED (True)
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. En ocasiones, esto puede causar problemas con determinadas configuraciones de proxy. Puedes deshabilitar el filtro CSRF configurando la propiedad GEOSERVER_CSRF_DISABLED en TRUE. https://docs.geoserver.org/stable/en/user/security/webadmin/csrf.html
Cada vez que necesites cambiar una o más opciones de la JVM, tendrás que reiniciar el contenedor Docker de GeoServer.
# 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 hayas hecho manualmente en el contenedor, como agregar un nuevo plugin a GeoServer o actualizar algunos JARs en la carpeta de la biblioteca WEB-INF/lib, se perderá.
Deberás 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¶
Verifica el uso y el estado de la memoria del GeoServer; asegúrate que la ruta
GEOSERVER_DATA_DIRapunte al volumen estático![]()
Estado de GeoServer¶
GeoServer Global Settings; asegúrese de que
Proxy Base Urlapunte a la URL pública y que los niveles deLOGGINGestén configurados en Production Mode![]()
Ajustes globales¶
GeoServer JAI; 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; WCS, WFS, WMS y WPS;
WCS: Actualiza los límites según tus necesidades. No utilices 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: Opciones de renderizado raster Te permite ajustar la salida WMS para un mejor rendimiento o calidad. Mejor rendimiento:
Vecino más cercano- Mejor calidad:BicúbicaAdvertencia
Las imágenes raster siempre deben ser optimizadas antes de ser ingresadas en GeoNode. La recomendación general es nunca subir una imagen GeoTIFF no procesada a GeoNode.
Más detalles en:
![]()
Opciones de renderizado ráster WMS¶
WMS: Actualiza los límites según tus necesidades. No utilices 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 la 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 ti. Vale la pena volver a comprobarlo de todos modos.
![]()
Almacenamiento en Caché de Teselas: Conjuntos de Datos Teselados¶
Configure Cuota de disco 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. Tendrás que actualizar el contenedor Docker de GeoServer para habilitar que GeoFence almacene las reglas en el contenedor de base de datos Docker en su lugar.
Para hacer eso, sigue 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úrate de proporcionar los mismos parámetros de conexión especificados en el archivo .env
geofenceVendorAdapter.databasePlatform=org.hibernatespatial.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
# 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
Recuerda 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 realices este procedimiento, GeoFence ya no podrá recuperar las reglas de seguridad antiguas.
Necesitará Corregir los permisos de los conjuntos de datos de GeoNode para poder regenerar las reglas de seguridad.
Corregir los permisos de los conjuntos de datos de GeoNode¶
La lista de reglas de seguridad de GeoFence está disponible en la sección GeoFence Data Rules.
Siempre verifica que la lista sea accesible y que las reglas de datos estén presentes. Si está vacía, ningún usuario estándar, aparte del administrador, podrá acceder a ninguna capa.
Reglas de datos de GeoFence¶
Para volver a sincronizar las reglas de seguridad de GeoFence, sigue 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 las miniaturas de los conjuntos de datos de GeoNode¶
El siguiente procedimiento te permite regenerar en lotes todas las miniaturas de los 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 los BBOXES de los conjuntos de datos de GeoNode¶
El siguiente procedimiento permite re-generar en lote todos los BBOXES de los 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 --updatebbox
Corregir Metadatos y Enlaces de Descarga de los Conjuntos de Datos de GeoNode¶
El siguiente procedimiento te 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 las instrucciones procedimiento a continuación:
Actualice el archivo .env especificando el nuevo nombre en consecuencia.
Reiniciar el Contenedor Docker de GeoNode.
docker-compose up -d geonode
Ejecuta los siguientes comandos de gestión desde dentro del Contenedor Docker de GeoNode.
# 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
Añadir conjuntos de datos grandes o de base de datos a tu instancia¶
A veces, no es posible subir conjuntos de datos grandes o tablas de bases de datos a GeoNode desde la Interfaz de Carga Web.
El procedimiento sugerido en tales casos es el siguiente:
Primero, añade el conjunto de datos directamente a GeoServer.
Debes subir los datos al volumen estático del contenedor Docker de GeoServer y luego añadir manualmente la capa a través de la GeoServer Admin GUI.
Una vez que el conjunto de datos esté correctamente configurado en GeoServer, ejecuta el siguiente comando de gestión desde dentro del contenedor Docker de GeoNode
# Enter the GeoNode Docker Container docker-compose exec django bash # Run the `updatelayers` management command ./manage.sh updatelayers -w <workspace_name> -f <layer_name>








