Windows服务器部署WebGIS前置服务

用openresty发布地图服务,react开发前端页面,java作为后台程序,postgis作为数据库的一套WebGIS项目,部署到Windows服务器上的流程。

部署步骤

  1. 在服务器上安装相应软件:pgsql+postgre navicat vscode notepad nssm
  2. 数据拷贝:发布服务所需数据
  3. 服务发布配置 数据配置:
    map_conf nginx配置:
    nginx_conf arcgis api库
  4. 开机自动运行openresty:设置nssm
  5. 程序打包:react程序build,java程序打jar包
  6. 开机自动启动jar包:start.bat,开机自动运行jar包
  7. build后的react程序复制到openresty的html文件夹中
  8. 测试

第一次部署完毕后,下次需更新前后端程序的话,只需要再次执行5-8步骤即可。如只改动了前端程序,只执行步骤、78即可。

具体操作:

一、openresty部署
1. 配置map_config.conf和nginx.conf文件

  • map_config.conf为发布的地图服务配置。注意,需要设置为服务器上的数据所在路径。
  • nginx.conf文件中需添加代理。使用的两个后台程序分别使用了8000端口和8080端口,因此需要在nignx配置文件中添加代理。(相应地,react的端口号为3000,因此在react程序中也需要设置代理。在写程序的时候应该就配置好了,不再赘述)
location /api1/{
    proxy_pass http://127.0.0.1:8080/;
}
location /api2/{
    proxy_pass http://127.0.0.1:8000/;
}

2. nssm设置开机启动
nssm开机启动nginx教程:https://blog.csdn.net/qqjtxc/article/details/109448456
其中,只需要把nssm.exe复制到nginx文件夹下,改为复制到openresty文件夹中nginx.exe所在文件夹。其他步骤按教程操作即可。
Windows服务器部署WebGIS前置服务_第1张图片

3. arcgis api for js
前端使用的是arcgis api,因此需要将arcgis api库也添加到openresty中。直接把整个文件夹复制到openresty中的html文件夹下即可。(在开发过程中应该也已经配置好了,因此openresty部署这个步骤中,只要把整个openresty文件夹拷贝到服务器上,然后修改map_config.conf文件,并设置nssm开机启动即可)
Windows服务器部署WebGIS前置服务_第2张图片

二、前端部署
以react程序为例。默认在VS Code中编辑,在命令行中输入以下语句build程序。

npm run build

目录中会出现build文件夹。
Windows服务器部署WebGIS前置服务_第3张图片

将build文件夹中的所有文件拷贝到nginx的html文件夹下。
Windows服务器部署WebGIS前置服务_第4张图片

测试:在浏览器中输入lcoalhost,界面是否正常显示。

三、后端部署
java程序打成jar包,并利用批处理文件start.bat设置开机运行。
1. java程序打成jar包
如果是利用maven写的程序,在idea右侧边栏输入以下语句即可:

mvn clean package -Dmaven.test.skip

Windows服务器部署WebGIS前置服务_第5张图片

注意,数据库需设置为服务器上的数据库配置。

如果有多个后台程序来实现不同功能,则将程序分别打包即可。
2. start.bat文件启动jar包
start.bat文件:在记事本中输入以下语句,并将文件后缀名由txt改为bat即可。

@echo off
start java -jar C:\test1.jar &
start java -jar C:\test2.jar
pause
exit

两个及以上jar包,只要在前一个jar包运行语句后面加&符号即可。路径为存放jar包的路径。
3. 设置开机启动jar包
即设置开机自动运行start.bat文件。
将start.bat文件放到此目录下。

C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp

测试:可用postman测试接口是否返回数据。

四、数据库部署
系统需要调用空间数据库,因此安装好pg库后,需要新建数据库并对数据库加空间扩展,并导入表。
空间扩展:

create extension postgis

导入表:

pgsql -U postgres -d databaseName -f test1.sql

最后再在浏览器中输入localhost看功能是否都能实现吧~

你可能感兴趣的:(WebGIS,nginx,系统部署,openresty,WebGIS)