Geoserver: установка и настройка в среде Linux

0. Установить OpenJDK

Для Geoserver версий 2.20.x актуальной является openJDK 11

Runtime, 520Mb: 
sudo apt-get install openjdk-11-jre

или JDK, 766Mb:
sudo apt-get install openjdk-11-jdk

1. Скачать и распаковать дистрибутив Geoserver

mkdir geoserver

cd geoserver

wget https://sourceforge.net/projects/geoserver/files/GeoServer/2.20.2/geoserver-2.20.2-bin.zip

unzip *.zip

2. Geoserver как сервис и его автозапуск

Создаем service-файл

touch /etc/systemd/system/geoserver.service

Со следующим содержимым:

[Unit]
Description=geoserver

[Service]
WorkingDirectory=/home/{user_name}/geoserver/bin/
ExecStart=/bin/bash /home/{user_name}/geoserver/bin/startup.sh
ExecStop=/bin/bash /home/{user_name}/geoserver/bin/shutdown.sh
Restart=always
# Restart service after 10 seconds if the dotnet service crashes:
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=geoserver-serviceOC

[Install]
WantedBy=multi-user.target

Запускаем сервис:

sudo service geoserver start

Включаем автозагрузку:

systemctl enable geoserver

3. Смена пароля по умолчанию

Заходим в админку геосервера.

Далее "Безопасность -> Пользователи, Роли и группы"

pic1

Нажимаем на "admin", вводим и повторяем ввод нового пароля

4. Изменение порта по умолчанию

Редактируем файл ./geoserver/start.ini:

...
## Connector port to listen on
jetty.http.port=8095
...

5. Изменение пути к кэшу GWC

Редактируем файл ./geoserver/webapps/geoserver/WEB-INF/web.xml:

...
<context-param>
   <param-name>GEOWEBCACHE_CACHE_DIR</param-name>
   <param-value>/tmp/gwc_cache</param-value>
</context-param>
...

6. Установка плагинов

Рекомендуемые плагины: vectortiles и css

Распаковываем zip-архивы с плагинами в папку:

./geoserver/webapps/geoserver/WEB-INF/lib

7. Настройка CORS

Редактируем файл

./geoserver/webapps/geoserver/WEB-INF/web.xml

в двух местах. Первое:

<!-- cors in jetty -->
    <filter>
      <filter-name>cross-origin</filter-name>
      <filter-class>org.eclipse.jetty.servlets.CrossOriginFilter</filter-class>
      <init-param>
        <param-name>chainPreflight</param-name>
        <param-value>false</param-value>
      </init-param>
      <init-param>
        <param-name>allowedOrigins</param-name>
        <param-value>*.{your_domain}</param-value>
      </init-param>
      <init-param>
        <param-name>allowedMethods</param-name>
        <param-value>GET,POST,PUT,DELETE,HEAD,OPTIONS</param-value>
      </init-param>
      <init-param>
        <param-name>allowedHeaders</param-name>
        <param-value>*</param-value>
      </init-param>
    </filter>

и второе:

<!-- Uncomment following filter to enable CORS -->
<filter-mapping>
   <filter-name>cross-origin</filter-name>
   <url-pattern>/*</url-pattern>
</filter-mapping>

8. Настройка DNS и reverse-proxy в Nginx

/etc/nginx/sites-available/default

# geoserver reverse-proxy
server {
    listen        80;
    server_name   gis.{your_domain};
    location / {
        proxy_pass         http://localhost:8095;
        proxy_http_version 1.1;
        proxy_set_header   Upgrade $http_upgrade;
        proxy_set_header   Connection keep-alive;
        proxy_set_header   Host $host;
        proxy_cache_bypass $http_upgrade;
        proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header   X-Forwarded-Proto $scheme;
    }
}

# geoserver HTTPS

server {
    listen 443;
    server_name gis.{your_domain};

    ssl_certificate           /etc/letsencrypt/live/{your_domain}/fullchain.pem;
    ssl_trusted_certificate   /etc/letsencrypt/live/{your_domain}/fullchain.pem;
    ssl_certificate_key       /etc/letsencrypt/live/{your_domain}/privkey.pem;

    ssl on;
    ssl_session_cache  builtin:1000  shared:SSL:10m;
    ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
    ssl_prefer_server_ciphers on;

   access_log  /var/log/nginx/gis_https.access.log;

location / {
    proxy_pass         http://localhost:8095;
    proxy_http_version 1.1;
    proxy_set_header   Upgrade $http_upgrade;
    proxy_set_header   Connection keep-alive;
    proxy_set_header   Host $host;
    proxy_cache_bypass $http_upgrade;
    proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header   X-Forwarded-Proto $scheme;
    }
}

9. См. также

Включаем CORS

Docker Geoserver


Создано: 08/02/2022 14:05, Изменено: 12/01/2023 12:35, Просмотров: 496
Назад