Instalación de GeoServer (con PostGIS)

Note

Fecha Autores
2 Julio 2015
23 Octubre 2015
  • Oscar Fonts

©2015 Oscar Fonts

Excepto donde quede reflejado de otra manera, la presente documentación se halla bajo licencia : Creative Commons (Creative Commons - Attribution - Share Alike: http://creativecommons.org/licenses/by-sa/3.0/deed.es)

Requisitos hardware

  • Sistema Operativo: Recomendado Ubuntu 14.04 Server (64 bits)
  • CPU con 4 núcleos
  • RAM: 2 GB mínimo, 4 GB recomendado
  • Disco: 8 GB para sistema y binarios. A partir de ahí, según cantidad de datos a publicar. Raster es especialmente crítico al publicarse como GeoTIFF sin compresión y con redundancia. Dejar también margen para GeoWebCache y para manipular GeoTIFFs con GDAL.

Aplicaciones de base

Usar el gestor de paquetes, ayuda a mantener las cosas al día. Cualquier cosa que necesite intervención manual para actualizarse, quedará obsoleta: nadie va a estar mirándose el server cada semana.

Para actualizar paquetes:

sudo apt-get update
sudo apt-get upgrade

Para activar la instalación automática de parches de seguridad:

sudo apt-get install unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades

Java y tomcat:

apt-get install openjdk-7-jdk
apt-get install tomcat7

Añadir JAI y JAI-ImageIO nativos:

cd /usr/lib/jvm/java-7-openjdk-amd64
wget http://download.java.net/media/jai/builds/release/1_1_3/jai-1_1_3-lib-linux-amd64-jdk.bin
sh jai-1_1_3-lib-linux-amd64-jdk.bin
wget http://download.java.net/media/jai-imageio/builds/release/1.1/jai_imageio-1_1-lib-linux-amd64-jdk.bin
export _POSIX2_VERSION=199209
sh jai_imageio-1_1-lib-linux-amd64-jdk.bin

Instalar fuentes de Microsoft (Arial, Courier New, etc):

apt-get install ttf-mscorefonts-installer

Si publicamos muchos datos en GeoServer, podemos llegar al límite de ficheros que el SO puede tener abiertos simultáneamente. Para evitarlo, añadir estas líneas a ‘/etc/security/limits.conf`:

*                hard    nofile          16384
*                soft    nofile          16384
root             hard    nofile          16384
root             soft    nofile          16384

Instalar GDAL (1.10):

apt-get install gdal-bin

Instalar PostgreSQL (9.3) y PostGIS (2.1):

apt-get install postgresql postgis
apt-get install postgresql-9.3-postgis-2.1

Instalación GeoServer

Instalar la última estable descargable de geoserver.org (ejemplo comandos para 2.8.0):

cd /var/lib/tomcat7/webapps/
wget http://sourceforge.net/projects/geoserver/files/GeoServer/2.8.0/geoserver-2.8.0-war.zip
apt-get install unzip
unzip geoserver-2.8.0-war.zip
rm -rf target/ *.txt geoserver-2.8.0-war.zip

Mover el GEOSERVER_DATA_DIR fuera de los binarios:

sudo mkdir /var/geoserver/
sudo cp -r /var/lib/tomcat7/webapps/geoserver/data /var/geoserver
sudo chown -R tomcat7:tomcat7 /var/geoserver

Editar el fichero /etc/default/tomcat7 y añadir al final las rutas a Java, los datos, la caché, y parámetros de optimización:

JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
GEOSERVER_DATA_DIR=/var/geoserver

JAVA_OPTS="-server -Xms1560m -Xmx2048m -XX:PermSize=256m -XX:MaxPermSize=512m -XX:+UseConcMarkSweepGC -XX:NewSize=48m -Dorg.geotools.shapefile.datetime=true -Duser.timezone=GMT -DGEOSERVER_DATA_DIR=$GEOSERVER_DATA_DIR"

Reiniciar tomcat:

service tomcat7 restart

Configuración GeoServer

Entrar a:

En “server status”, combrobar que:

  • El Data directory apunta a /var/lib/geoserver_data
  • La JVM es la instalada (OpenJDK 1.7 64 bits)
  • Native JAI y Native JAI ImageIO están a “true”

Seguridad

Seguir las notificaciones de seguridad que aparecen en la página principal de GeoServer:

  • Cambiar password de “admin”.
  • Cambiar el master password.

Configuración Web

Bajo “About & Status”:

  • Editar la información de contacto. Esto aparecerá en los servicios WMS públicos: dejar a “Claudius Ptolomaeus” es indecente.

Bajo “Data”:

  • Borrar todos los espacios de trabajo (workspaces) existentes (y en consecuencia, sus almacenes de datos y capas asociadas).
  • Borrar todos los estilos existentes (dirá que hay 4 que no los puede borrar, esto es correcto).

Bajo “Services”:

  • WCS: Deshabilitar si no va a usarse.
  • WFS: Cambiar el nivel de servicio a “Básico” (a menos que queramos permitir la edición remota de datos vectoriales).
  • WMS: En “Limited SRS list”, poner sólo las proyecciones que deseamos anunciar en nuestro servicio WMS. Esto reduce el tamaño del GetCapabilities. Por ejemplo: 4326, 3857, 900913.

Bajo “Settings”:

  • Global: Cambiar el nivel de logging a PRODUCTION_LOGGING.

Bajo “Tile Caching”:

  • Caching Defaults: Activar los formatos “image/png8” para capas vectoriales, “image/jpeg” para capas ráster, y ambas para los grupos de capas.
  • Disk Quota: Habilitar la cuota de disco. Tamaño máximo algo por debajo de la capacidad que tengamos en la unidad de GEOSERVER_DATA_DIR.

Note

Para saber más...

Instalación y configuración de Apache2

El servidor HTTP Apache se usará para hacer accesibles las diferentes aplicaciones de tomcat al exterior a través del puerto estándard HTTP (80). Este mapeo de direcciones se hará mediante la extensión proxy_ajp de Apache.

En Ubuntu, instalar Apache con el gestor de paquetes:

sudo apt-get install apache2

Habilitar los módulos proxy y proxy_ajp:

sudo a2enmod proxy proxy_ajp

Reiniciar el servidor:

sudo service apache2 restart

Accediendo a http://localhost veremos una página donde se lee el mensaje: It works!.

Redirección mediante AJP

La configuración por defecto de apache está en el fichero /etc/apache2/sites-enabled/000-default.conf. Editarlo y añadir lo siguiente bajo <VirtualHost *:80>:

ProxyPass        /geoserver ajp://localhost:8009/geoserver
ProxyPassReverse /geoserver ajp://localhost:8009/geoserver

Reiniciar el servidor:

sudo service apache2 restart

Y acceder a:

Habilitar CORS

Añadiendo una cabecera CORS (Cross-Origin Resource Sharing), facilitaremos el desarrollo de visores que accedan a los datos de geoserver (WFS, GetFeatureInfo...), evitando tener que desplegar innecesarios proxies (ver http://enable-cors.org/).

Simplemente, añadir esta otra línea en /etc/apache2/sites-enabled/000-default.conf:

Header set Access-Control-Allow-Origin "*"