1. 安装jdk[centos7]
# 参考https://www.4gml.com/thread-121.htm
yum search java-11-openjdk
yum install -y java-11-openjdk
java -version
which java
vim /etc/profile
source /etc/profile
#java
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.8.10-0.el7_8.x86_64
export JRE_HOME=/etc/alternatives/jre_11_openjdk
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
2. 安装tomcat
#https://subscription.packtpub.com/book/networking_and_servers/9781783287697/1/ch01lvl1sec09/installing-apache-tomcat
# core目录下tar.gz
wget https://mirrors.koehn.com/apache/tomcat/tomcat-9/v9.0.38/bin/apache-tomcat-9.0.38.tar.gz
tar xf apache-tomcat-9.0.38.tar.gz -C /opt
cd /opt/apache-tomcat-9.0.38/
# Running Apache Tomcat as a service
groupadd tomcat
useradd -s /bin/bash -g tomcat tomcat
chown -R tomcat:tomcat /opt/apache-tomcat-9.0.38/
# create a service control script
vim /etc/systemd/system/tomcat.service
[root@t-03 ~]# cat /etc/systemd/system/tomcat.service
[Unit]
Description=Tomcat 9 servlet container
After=network.target
[Service]
Type=forking
User=tomcat
Group=tomcat
Environment="JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.8.10-0.el7_8.x86_64"
Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom -Djava.awt.headless=true"
Environment="CATALINA_BASE=/opt/apache-tomcat-9.0.38"
Environment="CATALINA_HOME=/opt/apache-tomcat-9.0.38"
Environment="CATALINA_PID=/opt/apache-tomcat-9.0.38/temp/tomcat.pid"
Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"
ExecStart=/opt/apache-tomcat-9.0.38/bin/startup.sh
ExecStop=/opt/apache-tomcat-9.0.38/bin/shutdown.sh
[Install]
WantedBy=multi-user.target
chmod 777 /opt/apache-tomcat-9.0.38/
# test[注意放开8080端口]
systemctl start/status/stop/restart tomcat.service
3. 设置tomcat允许跨域
添加在每一个tomcat安装目录下 conf/web.xml中,(在 589行左右)
<filter>
<filter-name>CorsFilter</filter-name>
<filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
<init-param>
<param-name>cors.allowed.origins</param-name>
<param-value>*</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CorsFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
4. 嵌入geoserver
#参考https://subscription.packtpub.com/book/networking_and_servers/9781783287697/1/ch01lvl1sec10/deploying-geoserver-to-apache-tomcat
wget http://sourceforge.net/projects/geoserver/files/GeoServer/2.17.2/geoserver-2.17.2-bin.zip
unzip geoserver-2.15.2-bin.zip -d /opt/apache-tomcat-9.0.38/webapps/
chown -R tomcat:tomcat geoserver-2.15.2/
# 利用Apache Tomcat的自动部署功能,复制GeoServer WAR(Web存档)文件到webapps路径下,直接连接到appBase正在运行的Tomcat实例,Tomcat将检测到WAR文件的存在,然后对其进行部署以供使用
mv geoserver.war /opt/apache-tomcat-9.0.38/webapps
[root@t-03 webapps]# ls -l
total 99904
drwxr-x--- 15 tomcat tomcat 4096 Sep 23 14:46 docs
drwxr-x--- 6 tomcat tomcat 4096 Sep 23 14:46 examples
drwxr-x--- 5 tomcat tomcat 4096 Sep 23 16:58 geoserver
drwxr-xr-x 10 tomcat tomcat 4096 Jun 28 2019 geoserver-2.15.2
-rwxr-xr-x 1 tomcat tomcat 102270220 Sep 23 16:56 geoserver.war
drwxr-x--- 5 tomcat tomcat 4096 Sep 23 14:46 host-manager
drwxr-x--- 6 tomcat tomcat 4096 Sep 23 14:46 manager
drwxr-x--- 3 tomcat tomcat 4096 Sep 23 14:46 ROOT
# test,用户密码默认为admin|geoserver,查看数据是否正常显示
http://ip:8080/geoserver/web/
5. 修改tomcat默认端口
1. # 修改tomcat服务端口
[root@t-03 conf]# pwd
/opt/apache-tomcat-9.0.38-2/conf/server.xml
<Server port="8006" shutdown="SHUTDOWN">
<Connector port="7791" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8444" />
# 修改这三个端口[加一]
2. 将geoserver.war上传至每个节点下的webapps目录下
3. 启动tomcat
4. 编辑web.xml,设置统一的数据目录
5. 配置nginx集群
yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
mkdir /usr/local/nginx
wget https://nginx.org/download/nginx-1.18.0.tar.gz
tar xf nginx-1.18.0.tar.gz
cd nginx-1.18.0
./configure
make && make install
vim conf/nginx.conf
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/nginx-1.18.0/conf/nginx.conf
lsof -i:8000
# java环境问题/etc/profile
6. nginx.conf 信息[一个机器有多个nginx可能会导致请求混乱]
server
{
listen 80;
listen 443 ssl http2;
server_name geoserver.citydnatech.com;
index index.php index.html index.htm default.php default.htm default.html;
root /www/wwwroot/geoserver.citydnatech.com;
#SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
#error_page 404/404.html;
ssl_certificate /www/server/panel/vhost/cert/geoserver.citydnatech.com/fullchain.pem;
ssl_certificate_key /www/server/panel/vhost/cert/geoserver.citydnatech.com/privkey.pem;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
add_header Strict-Transport-Security "max-age=31536000";
error_page 497 https://$host$request_uri;
#PHP-INFO-START PHP引用配置,可以注释或修改
include enable-php-00.conf;
#PHP-INFO-END
#REWRITE-START URL重写规则引用,修改后将导致面板设置的伪静态规则失效
include /www/server/panel/vhost/rewrite/geo.citydnatech.com.conf;
#REWRITE-END
#禁止访问的文件或目录
location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)
{
return 404;
}
#一键申请SSL证书验证目录相关设置
location ~ \.well-known{
allow all;
}
location / {
# proxy_pass http://geoserver;
proxy_pass http://geoserver.citydnatech.com;
}
access_log /www/wwwlogs/geoserver.citydnatech.com.log;
error_log /www/wwwlogs/geoserver.citydnatech.com.error.log;
}
upstream geoserver.citydnatech.com {
ip_hash;
server 192.168.10.218:7791;
server 192.168.10.218:7792;
server 172.17.28.52:7791;
}
6. oss挂载ecs
#oss挂载ecs[oss更新数据,挂载点会同步更新,请注意数据的准确与安全性]
#https://help.aliyun.com/document_detail/153892.html?spm=a2c4g.11186623.6.890.71672e08ggMbx6
wget http://gosspublic.alicdn.com/ossfs/ossfs_1.80.6_centos7.0_x86_64.rpm
sudo yum localinstall ossfs_1.80.6_centos7.0_x86_64.rpm
echo citydna-geoserver:LTAI4Fxwub9FLQ:jRO7NJKwQaIAKz8m > /etc/passwd-ossfs
chmod 640 /etc/passwd-ossfs
ossfs citydna-geoserver /opt/GEOSERVER_DATA_DIR -ourl=http://oss-cn-beijing-internal.aliyuncs.com
7. 登陆各个节点做图层发布
2.新建工作区–>添加新的数据存储[需要添加mongo插件和矢量切片的插件],数据存储的连接参数下的schema_store选择指定路径file:///opt/GEOSERVER_DATA_DIR/工作区
# 下载mongo插件
wget http://sourceforge.net/projects/geoserver/files/GeoServer/2.15.2/extensions/geoserver-2.15.2-mongodb-plugin.zip
# 下载矢量切片的插件
wget http://sourceforge.net/projects/geoserver/files/GeoServer/2.15.2/extensions/geoserver-2.15.2-vectortiles-plugin.zip
# 放置/opt/apache-tomcat-9.0.38/webapps/geoserver/WEB-INF/lib/目录下
[root@t-03 lib]# ls geoserver-2.15.2-mongodb-plugin.zip
geoserver-2.15.2-mongodb-plugin.zip
[root@t-03 lib]# ls geoserver-2.15.2-vectortiles-plugin.zip
geoserver-2.15.2-vectortiles-plugin.zip
# 解压后重启geoserver
- 测试查看日志
[root@t-03 logs]# pwd
/opt/apache-tomcat-9.0.38/logs
[root@t-03 logs]# tail -f localhost_access_log.2020-xx-xx.txt
- geoserver 数据迁移
# 拷贝geoserver下所有数据,重启
/opt/apache-tomcat-9.0.38-2/webapps/geoserver
问题与解决:
数据迁移可只拷贝geoserver下data文件夹,但相关jar包可能出问题,报错
“在用Geoserver发布Postgis发布的图层后,去LayerPreview中预览,但是选openlayers时,没有跳转到预览页面,而是弹出了下载WMS”,是因为缺少相关jar包导致,故拷贝geoserver下data整个文件夹和lib整个文件夹,包括/opt/apache-tomcat-9.0.38-2/webapps/geoserver/WEB-INF/lib,du查看文件大小进行文件是否缺失检测
版权声明:本文为tryyourbest0928原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。