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. Смена пароля по умолчанию
Заходим в админку геосервера.
Далее "Безопасность -> Пользователи, Роли и группы"
Нажимаем на "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. См. также
Создано: 08/02/2022 14:05, Изменено: 12/01/2023 12:35, Просмотров: 496
Назад