Centos7.9 x86架构部署

一、部署环境

表 1‑1

环境服务版本号
系统centos7.9_2009
运行环境1JDK1.8_321
前端WEBNginx1.14
数据库postgresqlpostgresql13+postgis3.1+pgrouting3.1
消息队列rabbitmq3.8.16
运行环境2erlang23.3.3.1

二、部署JDK

2.1下载JDK安装包

官网下载JDK8

官网地址:

https://www.oracle.com/java/technologies/downloads/#java8

2.2安装JDK

将下载好的安装包移动至/home/soft/目录下,并进入到/home/soft/目录进行操作。

#进入到soft。

cd /hemo/soft/

#解压安装包。

tar xvf jdk-8u321-linux-x64.tar.gz

#将解压好的目录文件复制到指定路径。

cp -r jdk1.8.0_321/ /usr/local/jdk1.8.0_321/

#配置环境变量,使用vi或vim打开/etc/profile在文件最后添加下面4行。

export JAVA_HOME=/usr/local/jdk1.8.0_321

export PATH=$JAVA_HOME/bin:$PATH

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export JRE_HOME=$JAVA_HOME/jre

#保存退出--先按一下esc,然后输入“:wq”点击“Enter”。

#刷新环境变量

source /etc/profile

#验证JDK安装是否成功

java -version

#出现版本号为部署成功。有问题请自行百度。

三、部署Nginx

3.1安装Nginx

将下载好的安装包移动至/home/soft/目录下,并进入到/home/soft/目录进行操作。

#使用rpm命令安装Nginx包。

rpm -ivh

nginx-1.14.1-1.el7_4.ngx.x86_64.rpm

#安装完成后查看Nginx版本,显示版本号为安装正常。

nginx -v

#立即启动并设置为开机自启。

systemctl enable --now nginx

#启动

systemctl start nginx

#查看服务状态

systemctl status nginx

#重启服务

systemctl restart nginx

#停止服务

systemctl stop nginx


3.2系统优化

#根据客户需求关闭防火墙,防止后续测试无法访问web页面。

#关闭防火墙,仅本次生效。

systemctl stop firewalld

#关闭开机自启。

systemctl disable firwalld

#根据客户需求关闭selinux。

#临时关闭。

selinux:setenforce 0

#查看selinux状态:

getenforce

#永久关闭:更改selinux配置文件,将其设置为非开机自启项

vim /etc/seling/config

3.3修改配置文件

#将标准配置文件替换现有Nginx配置文件。

#备份现有配置文件。

cd /etc/nginx

mv ngnx.conf nginc.conf.bak

#在微盘里获取Nginx配置文件,上传至/etc/nginx目录。

#获取地址:

https://drive.weixin.qq.com/s?k=AN0AjwcKAAwPPJlnYV

##修改Nginx访问地址。

server_name 部署服务器IP;

四、部署postgresql数据库

4.1 postgresql

4.1.1下载postgresql安装包

企业中,服务器设备安全等级较高,所以在部署服务时,不能连接互联网,所以部署纯内网环境时,可以联网的电脑上使用VMwear虚拟机先模拟部署,在部署时使用:yum install --downloadonly [软件名称] --downloaddir=[指定rpm包存放路径] 下载好相对应的软件包后服务器上,运行rpm -ivh *.rpm。注意,模拟环境的系统版本需与实际部署的系统版本一致。

##创建一个pgsql文件夹,在此文件夹下创建postgresql、postgis、pgrouting。

##更新源

yum -y install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

##下载postgresql的客户端与服务端到本地

##客户端

yum -y install --downloadonly --downloaddir=/root/pgsql/postgresql/ postgresql-13

##服务端

yum -y install --downloadonly --downloaddir=/root/pgsql/postgresql/ postgresql-13-server

4.1.2安装postgresql

安装

#把下载好的安装包上传至服务器soft目录并解压。

#rpm安装

rpm -ivh *.rpm

#建议按顺序安装

rpm -ivh libicu*

rpm -ivh postgresql13-libs*

rpm -ivh postgresql13*

rpm -ivh postgresql13-server*

初始化

#初始化命令

/usr/pgsql-13/bin/postgresql-13-setup initdb

#立即启动并设置为开机自启。

systemctl enable --now postgresql-13

#启动

systemctl start postgresql-13

#重启

systemctl restart postgresql-13

#查看服务状态

systemctl status postgresql-13

设置数据库密码

#切换至postgres用户

su postgres

#进入数据库

psql

#设置数据库密码

alter user postgres with password 'NWEpassword';

#退出PostgreSQL数据库

"\q" 或 "ctrl+d" 或 "quit" 或 "exit"

配置远程连接

#配置/var/lib/pgsql/13/data/pg_hba.conf

pg_hba.conf修改项:

(IPV4 local connections):host all all 0.0.0.0/0 trust

#配置/var/lib/pgsql/13/data/postgresql.conf

postgresql.conf修改项:

listen_addresses = 'localhost'改为listen_addresses = '*'

#重启生效

systemctl restart postgresql-13

PGadmin 4 连接测试

4.2 postgis

4.2.1下载postgis

#安装epel源

yum install -y epel-release

#安装dnf命令

yum install -y dnf dnf-plugins-core

yum install postgis30_13-3.0.7-1.rhel7.x86_64

#安装PostGIS源

dnf -y install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

#升级旧版本依赖

dnf -y upgrade libmodulemd

#清除原有缓存并重新加载(选择y)

yum clean all && yum makecache

#下载PostGIS3.1 到本地

dnf install postgis31_13 --downloadonly --downloaddir=/root/pgsql/postgis/


4.2.2 安装postgis

#把下载好的postgis安装包上传至服务器并解压。

#使用rpm命令安装,需要加“--force”强制安装与“--nodeps”不考虑依赖关系。

rpm -ivh *.rpm --force --nodeps

#安装成功后进入数据库开启postgis插件。

su postgres

psql

#开启pgsql的插件。

create extension postgis;

create extension postgis_topology;

#查看postgis版本,验证安装、启动是否成功 。

SELECT PostGIS_full_version();

4.3 pgrouting

4.3.1 下载pgrouting

#下载安装包到本地

yum install pgrouting_13 --downloadonly --downloaddir=/root/pgsql/pgrouting


4.3.2 安装pgrouting

#把下载好的包,上传至服务器,解压并安装。

#使用rpm命令安装,需要加“--force”强制安装与“--nodeps”不考虑依赖关系。

rpm -ivh *.rpm --force --nodeps

#安装成功后进入数据库开启pgrouting插件。

su postgres

psql

#开启pgrouting的插件。

CREATE EXTENSION pgrouting;

#查看pgrouting版本

select pgr_version();

4.4 导入基础数据库

4.4.1 备份基础数据库

使用PGadmin 4 备份一份基础数据库,基础数据库为nvisual_empty_template。

等待备份成功即可。


4.4.2 恢复基础数据库到新项目

选择备份好的基础数据文件,恢复到新的数据库内,等待数据库恢复完毕即可。

4.5 数据库备份

4.5.1 创建备份脚本

#备份机制为,每天凌晨4点备份,保留时常为7天,时间可修改。

#创建备份脚本,内容如下

vi /home/pgsql/pgsql_backup.sh

---------------------------------------------------------------------

# Backup Nvisual Database At 4am Everyday

# Delete The Backup File Made 7 Days Ago

DATE=`date "+%Y-%m-%d_%H:%M"`

pg_dump -U postgres -p 5432 nvisual > /home/pgsql/pgsql_backup/nvisual_$DATE.sql

rm -f `find /home/pgsql/pgsql_backup/ -name 'nvisual*.sql' -mtime +7`

---------------------------------------------------------------------

#手动执行脚本 bash /home/pgsql/pgsql_backup.sh

4.5.2 创建定时任务

#使用crontab服务,创建定时任务。

crontab -e

# Backup Nvisual Database At 4am Everyday && Delete The Backup File Made 7 Days Ago

#每天凌晨4点备份。

-----------------------------------------------------------------

* 04 * * * sh /home/pgsql/pgsql_backup.sh > /dev/null

-----------------------------------------------------------------

4.5.3数据库性能优化

#下列数据为初始化安装参数示例,具体调整参数根据实际业务、配置设定。

#内存优化,建议内存优化值设置为服务器内存大小的25%。

shared_buffers = 128MB # min 128kB

#最大连接数优化,建议优化至500-1000

max_connections = 100


五、部署项目五、部署项目

5.1 部署nVisual前端5.1 部署nVisual前端5.1 部署nVisual前端

#在/home/目录下创建 nvisual-frontend 文件夹

cd /home/

mkdir nvisual-frontend

#上传dist包至nvisual-frontend下并解压。

tar xvf dist.tar.gz

## 如果dist目录有更新,可以找前端人员获取更新包,上传至服务器解压更新包后,使用“\cp -a”对原dist目录进行覆盖

##注意nvisual的前端标准部署目录路径为/home/nvisual-frontend/若修改了前端文件的路径,需要修改在微盘内获取的Nginx配置文件的相关路径。批量替换可使用 :%s###g,具体使用方法如下。

##使用vi或vim编辑文件时先不进入编辑模式,直接键入 :%s#要替换的内容#替换成的内容#g

-----------------------------------------------------------------

##导入SSL证书

如果项目部署没有跳转https的需求,请注释掉nginx配置文件中的ssl部分,并忽略这一步。

01. 将SSL证书导入至客户服务器

将两个SSL证书导入客户服务器的/etc/nginx/ssl/目录下

02. 检查nginx语法并重启nginx

nginx -t

systemctl restart nginx

03. 如果客户服务器不需要配置https跳转,则不需要进行SSL证书的相关配置

5.2 访问测试

5.2 访问测试5.2 访问测试

使用电脑浏览器访问所部署的nVisual的服务器。出现以下页面为前端配置成功。

5.3 部署nVisual后端

5.3 部署nVisual后端5.3 部署nVisual后端

#上传后端jar包至/home/nvisual-backend/下

#修改后端jar包配置文件检查数据库地址与端口、

#启动命令

java -Dfile.encoding=utf-8 -jar *8081.jar

#在程序加载后无报错,并出现(JVM***)表示启动成功,转至后台启动。

nohup java -Dfile.encoding=utf-8 -jar *8081.jar &

#后端启动完成,查看下Java进程

ps -ef | grep java

5.4 授权

5.4 授权5.4 授权

访问服务地址:ip

管理员账号:admin_user

管理员密码:Admin

初次登录会提示Mac地址错误,并跳转到授权页面。

#授权页面,点击服务器地址,会自动弹出服务器所存在的ip,只需点击想要授权的ip即可,**有域名的用户,手动填写域名。

#点击生成用户识别码,并把生成码复制出来,发给实施或客服进行授权。

#授权生成后,会有两个文件,一个是TXT文件,里面是后端授权码,点击去输入授权码。并把授权码输入进文本框,点击注册。

#授权成功

#授权那成功后,重新打开一页浏览器页面,输入服务ip或域名进行访问nVisual。就可进入到系统。

#授权文件里的另一个“header.js”文件,为前端授权文件,复制到/home/nvisual-frontend/dist/libs/ht/core/about/目录下。

#刷新浏览器页面生效,拖拽一两个节点进行测试,拖拽出的节点或设备可编辑表示授权成功。如果不生效,请清楚浏览器缓存重试。

六、部署rabbitmq

六、部署rabbitmq六、部署rabbitmq

6.1 下载6.1 下载6.1 下载

rabbitmq主要是推送操作日志消息、报表消息

6.1.1 下载erlang6.1.1 下载erlang6.1.1 下载erlang

#rabbitmq是使用Erlang语言开发的,所以在安装rabbitmq之前,需要先安装Erlang。不同版本的rabbitmq对Erlang语言的版本要求不同,具体可根据官网列出的依赖关系选择
#查看版本依赖关系:https://www.rabbitmq.com/which-erlang.html
#先进入Erlang下载地址下载Erlang
#Erlang下载地址:https://packagecloud.io/rabbitmq/erlang

#点击下载

6.1.2 下载socat6.1.2 下载socat6.1.2 下载socat

#socat是rabbitmq的一个重要的网络工具依赖,需要提前安装。
#在联网的环境使用yum install --downloadonly [软件名称] –-downloaddir=[指定rpm包存放路径] 下载即可。
#系统内如预装了socat,忽略此条。

6.1.3 下载rabbitmq6.1.3 下载rabbitmq6.1.3 下载rabbitmq

#RabbitMQ版本选择3.8.16
#RabbitMQ下载地址:https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.8.16

6.2 安装

6.2 安装

6.2.1 安装erlang

#erlang上传至服务器,使用rpm命令安装。
rpm -ivh erlang-23.3.3-1.el7.x86_64.rpm

6.2.2 安装socat6.2.2 安装socat6.2.2 安装socat

#上传socat至服务器,使用rpm命令安装。
rpm -ivh socat-1.7.3.2-2.el7.x86_64.rpm

6.2.3 安装rabbitmq6.2.3 安装rabbitmq6.2.3 安装rabbitmq

#上传rabbitmq至服务器,使用rpm命令安装。
rpm -ivh rabbitmq-server-3.8.16-1.el7.noarch.rpm

6.3启动rabbitmq6.3启动rabbitmq6.3启动rabbitmq

#立即启动并设置为开机自启
systemctl enable --now rabbitmq-server
#重启
systemctl restart rabbitmq-server
#查看服务状态
systemctl status rabbitmq-server

6.4 开启可视化图形管理界面

RabbitMQ是自带了图形化操作界面插件的,端口默认是15672,图形化界面默认是关闭的,可以通过命令开启。

#开启RabbitMQ图形化界面并查看端口
#启动图形化界面:
rabbitmq-plugins enable rabbitmq_management
#查看端口:
lsof -i:15672

6.5 访问 rabbitmq

#浏览器尝试访问
访问地址:服务器地址ip:15672
默认用户名:guest
默认密码: guest
##报错显示只能本地访问,简易使用下方“解决方法”
#修改配置文件
#但是3.8.16版本的RabbitMQ在/usr/share/doc/rabbitmq-server-3.8.16/目录下并没有相应的配置文件
#所以需要手动创建以下配置文件。
vim /etc/rabbitmq/rabbitmq.conf
#文件内容为
loopback_users = none
#保存退出
#配置文件创建完成后重启RabbitMQ即可在本地进行登录。
#systemctl restart rabbitmq-server(RabbitMQ重启有点慢,多等几秒即可)
#重启结束成功后,再次访问图形化界面。

6.6 创建admin用户

#使用命令创建新用户并设置权限。

#创建用户admin 密码admin

rabbitmqctl add_user admin admin

#授予admin用户默认visual host "/" 下的所有资源的配置、写、读的权限

rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"

#授予admin用户管理员角色

rabbitmqctl set_user_tags admin administrator

6.7 创建交换机

#创建交换机

交换机名称(Name):

nvisual-exchange

类型(Type):

Direct

6.8测试

6.8.1 测试用户操作日志

点击 “管理->日志” 可查看到用户操作过的日志记录。

6.8.2 测试用户登录日志

点击 “管理->日志->登录日志” 可查看到用户登录和退出的日志记录。

6.8.3 测试报表

点击 “管理->报表"可查看初始的报表数据。(初始部署是没有数据的,可以拖拽一两个设备过节点。)

七、页面优化

7.1登录页优化

7.1.1 注册入口优化

#服务器的/home/nvisual-frontend/dist/config/目录下为页面配置文件目录。

#使用修改diagram.js.sample为diagram.js。

mv diagram.js.sample diagram.js

#按照说明,把代码前后的注释删除掉。

7.1.2 登录视图优化

#用vim打开access.js文件。

vim access.js

#根据注释设置边框,自定义名称,logo等

7.2 主页优化

#无监“测模”块的项目,隐藏“监测”功能。

其余功能不做过多赘述,看注释说明。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/906378.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【uniapp3】分享一个自己写的h5日历组件

简言 分享一下自己基于uniapp写的日历组件。如果不太满足你的需求,可以自己改造。 日历 实现分析: 页面显示 - 分为顶部显示和日历显示,我这里做了多行和单行显示两种情况,主要是当时看着手机的日历做的,手机上的…

Nginx安装配置详解

Nginx Nginx官网 Tengine翻译的Nginx中文文档 轻量级的Web服务器,主要有反向代理、负载均衡的功能。 能够支撑5万的并发量,运行时内存和CPU占用低,配置简单,运行稳定。 写在前 uWSGI与Nginx的关系 1. 安装 Windows 官网 Stabl…

Java版企电子招标采购系统源业码Spring Cloud + Spring Boot +二次开发+ MybatisPlus + Redis

功能描述 1、门户管理:所有用户可在门户页面查看所有的公告信息及相关的通知信息。主要板块包含:招标公告、非招标公告、系统通知、政策法规。 2、立项管理:企业用户可对需要采购的项目进行立项申请,并提交审批,查看所…

MS01SF1 精准测距UWB模组助力露天采矿中的人车定位安全和作业效率提升

在当今矿业行业,随着全球对资源需求的不断增加和开采难度的逐步提升,传统的作业方式面临着越来越多的挑战。露天矿山开采,因其大规模的作业环境和复杂的地形特点,面临着作业人员的安全风险、设备调度的高难度以及资源利用率低下等…

【Web.路由】——路由模板

路由模板负责根据规则生成URL,从而使得请求可以正常访问到资源。 总之就是——》》》 规范如何写一个url,并且命名以方便进行管理。 在Asp.net core中的Http管道机制,UseRouting()和 UseEndpoints()这两个中间件来实现整个路由系统。关于asp…

c加加11第二弹~

1lambda 1.1.lambda表达式书写格式 [capture-list] (parameters) mutable -> return-type { statement} 1.2lambda表达式各部分说明 [capture-list] : 捕捉列表,该列表总是出现在lambda函数的开始位置,编译器根据[]来判断接下来的代码是否为lamb…

记录|多线程和异步简单理解

目录 前言一、单线程二、多线程-Thread多线程是都多少个的时候会导致性能变差 三、多线程-Task类Task的优势 四、异步- awaitawait注意:多个Task Run()天剑await后,变成了同步执行解决方法 更新时间 前言 参考视频:C#基础教程 多线程编程入门…

凸极式发电机的相量图分析和计算,内功率因数角和外功率因数角和功角的定义。

图1:同步发电机稳态相量图 若发电机为凸极式,由于凸极机正、交轴同步电抗不等,即xd≠xq,因此必须先借助虚构电动势 E ˙ Q E ˙ q − ( x d − x q ) I ˙ d \dot{E}_Q\dot{E}_q-(x_d-x_q)\dot{I}_d E˙Q​E˙q​−(xd​−xq​)…

C语言原码、反码和补码的详解

C语言原码、反码和补码的详解 放在最前面的1、前言正数的原码、反码和补码负数的原码、反码和补码 2、整数的原码(2.1)原码的定义(2.2)计算原码 3、整数的反码(3.1)反码的定义(3.2)计…

idea 导入Spring源码遇到的坑并解决

1.下载相关文件 通过百度网盘分享的文件:Spring 链接:https://pan.baidu.com/s/1r9rkGOCaY9SFn9ecng5cIg?pwd8888 提取码:8888 2.配置gradle环境 gradle下载地址 需要翻墙下 https://services.gradle.org/distributions/ 我选择的是 grad…

Redis-“自动分片、一定程度的高可用性”(sharding水平拆分、failover故障转移)特性(Sentinel、Cluster)

文章目录 零、写在前面一、水平拆分(sharding/分片)、故障转移(failover)机制介绍水平拆分(Sharding)故障转移机制 二、Redis的水平拆分的机制有关的配置1. 环境准备2. 配置文件配置3. 启动所有Redis实例4. 创建集群5. 测试集群读/写6. 集群管理 三、Red…

C++STL详解(九)map和set的使用

一.关联式容器的介绍 CSTL包含了序列式容器和关联式容器&#xff1a; 序列式容器里面存储的是元素本身&#xff0c;其底层是线性的数据结构&#xff0c;就譬如我们之前学习的vector&#xff0c;list&#xff0c;deque等等。关联式容器里面存储的是<key,value>的键值对&…

goframe开发一个企业网站 模版界面4

###goframe已有了模板的功能 {{"string"}} // 一般 string {{raw string}} // 原始 string {{c}} // byte {{print nil}} // nil 也被支持 {{. | FuncA | FuncB | FuncC}}{{if .condition}}... {{else}}{{if .condition2}}...{{end}} {{end}}{{rang…

一、k8s快速入门之学习Kubernetes组件基础

一、三个容器管理器平台 Apache MESOS 开源的分布式资源管理框架&#xff0c;被推特选为基础平台&#xff0c;2019年推特换位k8s&#xff0c;MESOS最新版可以在MESOS上管理k8sDOCKER SWARM docker总部发行的&#xff0c;实现docker的集群方案&#xff0c;和docker捆版一起&…

初始JavaEE篇——多线程(7):定时器、CAS

找往期文章包括但不限于本期文章中不懂的知识点&#xff1a; 个人主页&#xff1a;我要学编程程(ಥ_ಥ)-CSDN博客 所属专栏&#xff1a;JavaEE 目录 定时器的使用 定时器的原理 模拟实现定时器 CAS 介绍 CAS的应用场景 解析 AtomicInteger 类 实现自旋锁 CAS的缺陷…

【UGUI】为射击游戏添加动态显示的分数和血量到UI界面

项目背景 在这个项目中&#xff0c;我们希望实现一个简单的游戏系统&#xff0c;其中玩家可以通过击中目标来获得分数&#xff0c;同时通过与怪物碰撞来减少血量。分数和血量需要在游戏界面上实时显示&#xff0c;以便玩家能够随时了解自己的状态。 技术实现 1. 静态变量的使…

stm32引脚PB3、PB4、PA15作为普通IO口用时,需要先解除调试端口复用

当项目调试的时候&#xff0c;发现PA15引脚无论配置输出高还是低或者输入&#xff0c;均只能输出3.3V的高电平。 目前STM的硬件调试有两种方法&#xff0c;JTAG和SW的方式&#xff0c;目前个人认为最好的方式就是SW&#xff0c;因为它只占用PA13和PA14两个IO。而JTAG还要多占用…

MATLAB与STK互联:仿真并获取低轨卫星与指定区域地面站的可见性数据

MATLAB控制STK实现&#xff1a;仿真并获取低轨卫星与指定区域地面站的可见性数据 本次仿真主要参考了多篇文献和网站&#xff0c;包括但不限于&#xff1a;《Using MATLAB for STK Automation》、CSDN博文&#xff1a; 拜火先知的博客_CSDN博客-笔记、AGI官网有关MATLAB的内容…

用Python设置、更新和获取Excel单元格的值

Excel工作簿作为一款广泛使用的数据管理工具&#xff0c;与Python相结合&#xff0c;可以使得自动化处理大量数据成为可能。通过Python来设置、更新以及读取Excel单元格的值&#xff0c;不仅可以极大地提高工作效率&#xff0c;减少重复劳动&#xff0c;还能增强数据处理流程的…

Golang | Leetcode Golang题解之第525题连续数组

题目&#xff1a; 题解&#xff1a; func findMaxLength(nums []int) (maxLength int) {mp : map[int]int{0: -1}counter : 0for i, num : range nums {if num 1 {counter} else {counter--}if prevIndex, has : mp[counter]; has {maxLength max(maxLength, i-prevIndex)} …