用openresty發布地圖服務,react開發前端頁面,java作為后臺程式,postgis作為資料庫的一套WebGIS專案,部署到Windows服務器上的流程,
部署步驟
- 在服務器上安裝相應軟體:pgsql+postgre navicat vscode notepad nssm
- 資料拷貝:發布服務所需資料
- 服務發布配置 資料配置:
map_conf nginx配置:
nginx_conf arcgis api庫 - 開機自動運行openresty:設定nssm
- 程式打包:react程式build,java程式打jar包
- 開機自動啟動jar包:start.bat,開機自動運行jar包
- build后的react程式復制到openresty的html檔案夾中
- 測驗
第一次部署完畢后,下次需更新前后端程式的話,只需要再次執行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所在檔案夾,其他步驟按教程操作即可,

3. arcgis api for js
前端使用的是arcgis api,因此需要將arcgis api庫也添加到openresty中,直接把整個檔案夾復制到openresty中的html檔案夾下即可,(在開發程序中應該也已經配置好了,因此openresty部署這個步驟中,只要把整個openresty檔案夾拷貝到服務器上,然后修改map_config.conf檔案,并設定nssm開機啟動即可)

二、前端部署
以react程式為例,默認在VS Code中編輯,在命令列中輸入以下陳述句build程式,
npm run build
目錄中會出現build檔案夾,

將build檔案夾中的所有檔案拷貝到nginx的html檔案夾下,

測驗:在瀏覽器中輸入lcoalhost,界面是否正常顯示,
三、后端部署
java程式打成jar包,并利用批處理檔案start.bat設定開機運行,
1. java程式打成jar包
如果是利用maven寫的程式,在idea右側邊欄輸入以下陳述句即可:
mvn clean package -Dmaven.test.skip

注意,資料庫需設定為服務器上的資料庫配置,
如果有多個后臺程式來實作不同功能,則將程式分別打包即可,
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看功能是否都能實作吧~
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/325528.html
標籤:其他
上一篇:SpringBoot基于Redisson實作分布式鎖并分析其原理
下一篇:計算機網路知識點(面試)
