1 概述:
由于矢量切片的制作和发布过程复杂,地图服务发布阶段直接采取工程数据自动化的方式,将切片数据和对应的工程文件拷贝到目标服务器,从而快速实现WEB地图服务部署和发布。
2Web地图服务发布
2.1单台Web地图服务器
(1) 在web地图服务器中安装jdk-8u201-linux-x64和apache-tomcat-9.0.17,启动tomcat;
(2) 将BrightMapServer工程文件拷贝至/tomcat/webapps文件夹中,并解压;浏览器中访问http://IP:端口(tomcat)/BrightMapServer/,如果出现如下界面说明配置成功;
(3) 工程启动后会自动生成/usr/BMServer/BrightMapServerTile文件夹,将提供的切片包(如:SHunder1)拷贝至此,并解压。
(4) 以同样方式将Web地图服务器集群中的其他机器做(1)、(2)、(3)配置。
2.2 Web地图服务集群
(1) 在服务器中部署Nginx-1.14.2;
(2) 在Nginx的安装路径Nginx/conf/中修改Nginx.conf文件,具体修改内容参考如下配置:
worker_processes 2; # 设置为CPU个数的两倍,不可随意设置
events {
use epoll; #epoll是多路复用IO,可以大大提高Nginx的性能
worker_connections 2048; 单个后台worker process进程的最大并发链接数
}
http {
include mime.types;
default_type application/octet-stream;
sendfile off;
keepalive_timeout 65;
upstream web{
server IP1:端口(tomcat);
server IP2:端口(tomcat); #Nginx如果和tomcat在同一个局域网中,直接可以虚拟IP+内网端口,不需要对外开放
}
server {
# listen 80;
listen 9181; #Nginx内网端口,这里可以随意设置
server_name localhost; #Nginx所在集群名称
charset utf-8;
location / {
root html;
index index.html index.htm;
proxy_pass http://web;
#proxy_set_header Host $host:9181;
proxy_set_header Host $host:1811; #这里主要为了增加外网方位端口,将内网9181映射至外网1811 访问IP为:http://IP(外网):1811/BrightMapServer/
proxy_set_header X-Forwarded-For $remote_addr;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
(3) 重新启动Nginx服务器;
(4) 浏览器中访问http://IP(外网):1811/BrightMapServer/,如果出现如下界面说明配置成功;
2.3 Web地图服务安全
2.3.1 防火墙设置
为了服务器的安全性考虑,需要对防火墙进行配置,将防火墙处于关闭状态,指定开放端口。
(1)针对单台Web地图服务器: BrightMapServer引擎搭载在tomcat上,也就是说要支持tomcat端口的访问。开放的访问端口只用于内网访问,不需要对外,最大化保证服务器的安全性。
开放8080端口:
查看防火墙状态
firewall-cmd –state
关闭防火墙:
systemctl stop firewalld.service
打开防火墙
systemctl start firewalld.service
开启端口
firewall-cmd --permanent --zone=public --add-port=8080/tcp //8080为tomcat默认端口
重启防火墙
firewall-cmd --reload
(2)针对Nginx服务器:Nginx主要用于集群负载和请求分配,当外网访问进入Nginx后,Nginx将任务分配给BrightMapServer来执行,也就是说Nginx开放的端口不仅要对内也要对外,对内指定开放端口9181,对外将端口9181映射至外网IP(例如:1811)。
开放9181端口:
查看防火墙状态
firewall-cmd –state
关闭防火墙:
systemctl stop firewalld.service
打开防火墙
systemctl start firewalld.service
开启端口
firewall-cmd --permanent --zone=public --add-port=9181/tcp //9181为tomcat默认端口
重启防火墙
firewall-cmd --reload
2.3.2 数据安全
Web地图服务的矢量切片数据和工程文件都内网服务器,而且该服务器组不提供直接的外网端口,是通过Nginx作为中转映射出去的,最大化的保证了数据的和工程的安全性。
同时,地图数据是做了坐标加密,整体安全性较高。
3 Web地图服务运维方案
3.1 矢量切片数据增量更新
随着采集地下库的数据逐步增加,需要对矢量切片数据包做更新。将提供最新的地图服务器切片数据包,替换/usr/BMServer/ BrightMapServerTile文件夹下对应的数据包。
3.2 BrightMapServer引擎更新
由于地图服务整体采用的工程拷贝方式,对于服务器引擎更新、服务类型或要素类型有变化时,也是通过直接工程文件拷贝方式进行服务引擎更新,最大的简化运维的难度。具体替换流程见《1.1单台Web地图服务器》部署流程
3.3 数据备份
针对Web地图服务器核心数据是BrightMapServer工程文件和矢量切片文件。
(1)BrightMapServer位于tomcat/webapps文件目录中,通过数据压缩,拷贝至存放目录。
压缩矢量切片包
tar -czvf BrightMapServer.tar.gz BrightMapServer;
将压缩包移动至存放目录
mv BrightMapServer.tar.gz /usr/data;
(2)矢量切片文件位于/usr/BMServer/BrightMapServerTile文件目录中,而且切片的数据量大、文件多,不便复制、移动、删除等操作。
方式一:可以直接通过修改矢量切片对应名称备份至BrightMapServerTile目录中。
方式二:通过数据压缩,拷贝至存放目录。
压缩矢量切片包
tar -czvf SHunder1.tar.gz SHunder1;
将压缩包移动至存放目录
mv SHunder1.tar.gz /usr/data;
3.4 服务器重启
关闭Nginx服务器
/usr/local/Nginx/sbin/Nginx -s stop
关闭tomcat服务器
sh /app/tomcat/bin/shutdown.sh
启动tomcat服务器
/app/tomcat/bin/startup.sh
启动Nginx服务器
/usr/local/Nginx/sbin/Nginx
重新加载Nginx时
/usr/local/Nginx/sbin/Nginx -s reload