Installation on Linux

To install GeoServer Enterprise in Linux, follow these steps.

Java

GeoServer Enterprise requires a Java 8 environment.

OpenJDK is now the lead project for the Java ecosystem. As an open-source company GeoCat is pleased to see OpenJDK supported by a number of different distributions.

  1. We recommend using OpenJDK 8 provided by your operating system:

    • Ubuntu

      sudo apt-get install openjdk-8-jdk
      
    • RedHat:

      sudo yum install java-1.8.0-openjdk-devel
      
    • To manually install Java, see Manual Linux Java Install

  2. Verify that java is available:

    java -version
    
    openjdk version "1.8.0_262"
    OpenJDK Runtime Environment (build 1.8.0_262-b10)
    OpenJDK 64-Bit Server VM (build 25.262-b10, mixed mode)
    

Apache Tomcat

Apache Tomcat is the leading open source application server.

GeoServer Enterprise supports Apache Tomcat 8.5.x or 9.0.x.

  1. Installation options:


  1. Verify that tomcat is available as a service:

    • Ubuntu

      sudo service tomcat9 status
      
    • CentOS

      systemctl status tomcat
      
  1. The application server is available on port 8080:

Data Directory

GeoServer places all its required configuration files in a so-called data directory. It’s recommended to change its default location and set up a new one explicitely. To do so, follow these steps:

  1. Create a folder to hold your GeoServer Enterprise configuration:

    sudo mkdir /var/opt/geoserver/
    
  2. We have three options for creating an initial GeoServer data directory:

    • Alternative 1 - Use the default data directory with recommended service configuration settings.

      Login to nexus.geocat.net and browse to the enterprise folder:

      Navigate to the latest geoserver release and select the geoserver-data-default zip archive.

      ../_images/data_directory_default_download.png

      Locate latest geoserver-data-default zip archive

      Copy the download URL from the asset summary Path link.

      ../_images/data_directory_default_path.png

      Latest geoserver-data-default zip URL

      Use wget to download the URL:

      mkdir /tmp/geoserver-enterprise
      cd /tmp/geoserver-enterprise
      wget --http-user='USERNAME' --http-password='PASSWORD' https://nexus.geocat.net/repository/enterprise/2020.5/geoserver/geoserver-data-default-2020.5-2.17.2.zip
      
      geoserver-data-default-2020.5-2.17. 100%[================================================================>]  10.41K  --.-KB/s    in 0.002s
      
      2020-09-11 09:11:00 (5.03 MB/s) - ‘geoserver-data-default-2020.5-2.17.2.zip.1’ saved [10663/10663]
      

      Unzip this archive:

      cd /tmp/geoserver-enterprise
      unzip geoserver-data-default*.zip
      
      extracting: data.zip
       inflating: windows/geoserver.xml
       inflating: linux/geoserver.xml
       inflating: README.txt
      

      Unzip the data.zip:

      unzip data.zip -d /var/opt/geoserver/data
      

      Note

      If wget or unzip are not installed, you can install the packages;

      # Ubuntu
      sudo apt-get install wget
      sudo apt-get install unzip
      
      # CentOS
      sudo yum install wget
      sudo yum install unzip
      
    • Alternative 2 - Use the standard data directory with recommended service configuration settings, and a selection of example layers.

      unzip geoserver-enterprise-data.zip
      
      extracting: data.zip
       inflating: windows/geoserver.xml
       inflating: linux/geoserver.xml
       inflating: README.txt
      

      Unzip the data.zip:

      unzip data.zip -d /var/opt/geoserver/data
      
    • Alternative 3 - Use an empty folder, GeoServer will generate configuration files to this folder the first time it runs:

      cd /var/opt/geoserver/
      mkdir data
      

      This approach is often used in automated workflow where GeoServer is configured via REST API scripts.

      Note

      You must also remove this line from your Geoserver Tomcat context file;

      <Parameter name="GEOSERVER_REQUIRE_FILE"
         value="/var/opt/geoserver/data/global.xml" override="false"/>
      
  3. Create an empty tilecache folder.

    sudo mkdir /var/opt/geoserver/tilecache
    

    The GeoWebCache tile server will use this empty folder to manage generated tiles.

  4. Ensure the tomcat user has permission to access the above directories.

    sudo chown -R tomcat:tomcat /var/opt/geoserver
    sudo chmod +r+w -R /var/opt/geoserver
    
  5. Update the Tomcat configuration with this data directory location.

    • Open the Tomcat folder (/var/lib/tomcat9/, /opt/tomcat/latest or /etc/tomcat9) and navigate to the conf/Catalina/localhost subfolder.

    • In the localhost folder, create a geoserver.xml file, with the following content:

      <Context docBase="geoserver.war">
        <Parameter name="GEOSERVER_DATA_DIR"
                   value="/var/opt/geoserver/data" override="false"/>
        <Parameter name="GEOSERVER_REQUIRE_FILE"
                   value="/var/opt/geoserver/data/global.xml" override="false"/>
        <Parameter name="GEOWEBCACHE_CACHE_DIR"
                   value="/var/opt/geoserver/tilecache" override="false"/>
      </Context>
      

    Note the conf/Catalina/localhost/ folder is created when you first run Tomcat.

  6. The default on recent Ubuntu is to provide and operating system systemd sandbox for services, you will need to give the tomcat9 service read/write permissions to the GeoServer Data Directory and the GeoWebCache tile cache directory.

    1. Edit the Tomcat systemd configuration. This is likely in /etc/systemd/system/multi-user.target.wants/tomcat9.service

    2. In the [Service] section, add these lines:

      ReadWritePaths=/var/opt/geoserver/data
      ReadWritePaths=/var/opt/geoserver/tilecache
      
    3. If you will be writing anywhere else on the file system, also add those directories here.

    4. Get Systemd to read the changes, and restart Tomcat

      sudo systemctl daemon-reload
      sudo service tomcat9 restart
      

GeoServer Enterprise

To install GeoServer on your existing Tomcat instance, follow these steps:

  1. Copy the provide war file to the to [Tomcat_folder]/webapps folder. The [Tomcat_folder] will be either /var/lib/tomcat9/ or /opt/tomcat/latest.

    Tomcat will unpack geoserver.war into the folder webapps/geoserver when you first run Tomcat.

    Note

    You can get the geoserver.war file from Nexus (See Nexus Login, above ). The geoserver.war file is inside the geoserver-enterprise-standard-2020.5-2.17.2.zip zip.

  2. In your web browser, navigate to localhost:8080/geoserver to verify that GeoServer Enterprise is correctly working.

    ../_images/gserunning.png

Web Server

GeoCat recommends use of NGINX or Apache HTTP Server to manage HTTP and HTTPS connections. The web server is configured as a reverse proxy forwarding requests to Apache Tomcat.

  1. Installation options

    • NGINX

    • Apache HTTP Server

  2. HTTPS configuration

    • Certificate Generation

    • NGINX

    • Apache HTTP Server

  3. Reverse proxy

    • NGINX

    • Apache HTTP Server

    server {
      listen 80;
    
      server_name    example.com;
      access_log /var/log/nginx/tomcat-access.log;
      error_log /var/log/nginx/tomcat-error.log;
    
      location / {
            proxy_set_header X-Forwarded-Host $host;
            proxy_set_header X-Forwarded-Server $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass http://127.0.0.1:8080/;
      }
    }
    
  1. HTTP and HTTPS can now be used: