项目部署一次记录
链路:(用户)客户端 → Nginx:192.168.138.100→ Tomcat (程序):192.168.138.101→ MySQL/Redis
- 打开数据库:systemctl start mysqld
- 重启网络: systemctl restart NetworkManager
- 关闭防火墙: systemctl stop firewalld
环境准备说明:
- 192.168.138.100(服务器A)
Nginx:部署前端项目,配置反向代理
Mysql:主从复制结构中的主库 - 192.168.138.101(服务器B):
jdk:运行Java项目
git:版本控制工具
maven:项目构建工具
jar:Spring Boot打成jar包基于内置Tomcat
Mysql:主从复制结构中的从库
前端部署
- 下载安装nginx
- 上传前端打包项目 文件夹dist 至nginx的html目录下
- 修改Nginx配置文件nginx.conf的默认index以及反向代理http://192.168.138.101:8080
- /api/ 访问地址会有对应映射
后端部署
- 在线安装jdk
yum search java|grep jdkyum install java-1.8.0-openjdkjava -version
- 下载maven(Click-常见的3.x.x其他版本)并解压maven包到指定目录
wget url下载地址(路径:download - Other Releases - 点击 Maven 3 archives)
tar -zxvf apache-maven-3.8.1-bin.tar.gz /usr/local/maven
mvn -v
配置本地maven仓库与阿里私服:
mkdir maven-repository
conf-setting.xml
<localRepository>/usr/local/maven/maven-repository</localRepository>
<mirror><id>alimaven</id><name>aliyun maven</name><mirrorOf>central</mirrorOf><url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>
更新环境变量:
vi /etc/profile
export MAVEN_HOME=/usr/local/maven/apache-maven-3.8.1
export PATH=$JAVA_HOME/bin:$MYSQL_HOME/bin:$MAVEN_HOME/bin:$PATH
#或者用这个export PATH=${PATH}:${MAVEN_HOME}/bin
source /etc/profile
- 在线安装git
yum install gitgit --version
问题排查
浏览器访问地址:192.168.138.100
第一阶段排查,访问地址不通
报错:无法访问此网站
192.168.138.100 拒绝了我们的连接请求。
确认nginx是否已打开(/usr/local/nginx/sbin/nginx)
第二阶段排查
常见的数据库未启动、防火墙端口未放开。 附加文篇开头命令
第三阶段排查
- 运行jar看服务有无问题
java -jar test-1.0-SNAPSHOT.jar
- maven打包看是否可行
mvn clean package -Dmaven.test.skip=true
- 分布启动项目调试,拉取代码是否成功
git clone https://gitee.com/url--
- /usr/local/javaapp下的自动化部署脚本
chmod 777 testStart.sh #给予权限
相关文章:
项目部署一次记录
链路:(用户)客户端 → Nginx:192.168.138.100→ Tomcat (程序):192.168.138.101→ MySQL/Redis 打开数据库:systemctl start mysqld 重启网络: systemctl restart NetworkManager 关闭防火墙&am…...
单例模式,饿汉式,懒汉式,在java和spring中的体现
目录 饿汉式单例模式 懒汉式单例模式 Spring中的单例模式 关键差异对比 在Java和Spring中的应用场景 手写案例 单例模式是一种创建型设计模式,其核心在于确保一个类仅有一个实例,并提供一个全局访问点来获取该实例。下面将详细介绍饿汉式和懒汉式…...

一文带你彻底理清C 语言核心知识 与 面试高频考点:从栈溢出到指针 全面解析 附带笔者手写2.4k行代码加注释
引言:C 语言的魅力与挑战 从操作系统内核到嵌入式系统,从高性能计算到网络编程,C 语言高效、灵活和贴近硬件的特性,始终占据着不可替代的地位。然而,C 语言的强大也伴随着较高的学习曲线,尤其是指针、内存管…...
【Redis】第1节|Redis服务搭建
一、Redis 基础概念 核心功能 内存数据库,支持持久化(RDB/AOF)、主从复制、哨兵高可用、集群分片。常用场景:缓存、分布式锁、消息队列、计数器、排行榜等。 安装环境 依赖 GCC 环境(C语言编译)࿰…...

数据结构第5章 树与二叉树(竟成)
第 5 章 树与二叉树 【考纲内容】 1.树的基本概念 2.二叉树 (1)二叉树的定义及其主要特征 (2)二叉树的顺序存储结构和链式存储结构 (3)二叉树的遍历 (4)线索二叉树的基本概念和构造 …...

# 深入解析BERT自然语言处理框架:原理、结构与应用
深入解析BERT自然语言处理框架:原理、结构与应用 在自然语言处理(NLP)领域,BERT(Bidirectional Encoder Representations from Transformers)框架的出现无疑是一个重要的里程碑。它凭借其强大的语言表示能…...
ai学习--python部分-1.变量名及命名空间的存储
初学代码时总有一个问题困扰我:a 10 # a指向地址0x1234(存储10) 变量a的值10存储在0x1234,那么变量a需要存储吗?a又存储在什么地址呢 目录 1. 命名空间的本质 2. 命名空间的内存占用 3. …...

Cadence学习笔记之---PCB过孔替换、封装更新,DRC检查和状态查看
目录 01 | 引 言 02 | 环境描述 03 | 过孔替换 04 | 封装更新 05 | PCB状态查看 06 | DRC检查 07 | 总 结 01 | 引 言 终于终于来到了Cadence学习笔记的尾声! 在上一篇文章中,讲述了如何布线、如何铺铜,以及布线、铺铜过程中比较重要…...
Java基础 Day21
一、Stream 流 思想:流水线式思想 1、获取流对象(将数据放到流中) (1)集合获取 Stream 流对象 使用Collection接口的默认方法 default Stream<E> stream() 获取当前集合对象的 Stream 流(单列集…...

系统开发和运行知识
软件生存周期 软件生存周期包括可行性分析与项目开发计划、需求分析、概要设计、详细设计、编码和单元测试、综合测试及维护阶段。 1、可行性分析与项目开发计划 主要任务是确定软件的开发目标及可行性。该阶段应该给出问题定义、可行性分析和项目开发计划。 2、需求分析 需求…...
Elasticsearch 分片驱逐(Shard Exclusion)方式简析:`_name`、`_ip`、`_host`
在日常运维 Elasticsearch 集群过程中,常常需要将某个节点上的分片迁移出去,例如下线节点、腾出资源或进行维护操作。Elasticsearch 提供了简单直观的 shard exclusion 参数来实现这一目的,主要通过以下三个配置项: cluster.rout…...

【C++高级主题】异常处理(四):auto_ptr类
目录 一、auto_ptr 的诞生:为异常安全的内存分配而设计 1.1 传统内存管理的痛点 1.2 auto_ptr 的核心思想:RAII 与内存绑定 1.3 auto_ptr 的基本定义(简化版) 二、auto_ptr 的基本用法:将指针绑定到智能对象 2.1…...

STM32CubeMX配置使用通用定时器产生PWM
一、定时器PWM功能简介 定时器,顾名思义,就是定时的功能,定时器在单片机中算是除GPIO外最基本的外设。在ST中,定时器分为几种,基础定时器,通用定时器,高级定时器和低功耗定时器。其中定时器除了…...

WebSphere Application Server(WAS)8.5.5教程第十四讲:JPA
一、JPA 以下是对 JPA(Java Persistence API) 的深入详解,适用于具备一定 Java EE / Jakarta EE 背景的开发者,尤其是对数据持久化机制感兴趣的人员。 1、什么是 JPA? Java Persistence API(JPA…...

Linux系统调用深度剖析
Linux系统调用深度剖析与实践案例 目录 Linux系统调用深度剖析与实践案例 一、Linux系统调用概述 二、进程管理相关系统调用 1. fork():进程克隆与多任务处理 2. exec系列:程序加载与替换 3. wait/waitpid:进程状态同步 三、文件操作相关系统调用 1. 文件描述符操作…...

动态规划-918.环形子数组的最大和-力扣(LeetCode)
一、题目解析 听着有点复杂,这里一图流。 将环形问题转化为线性问题。 二、算法原理 1.状态表示 2.状态转移方程 详细可以移步另一篇博客,53. 最大子数组和 - 力扣(LeetCode) 3.初始化 由于计算中需要用到f[i-1]和g[i-1]的值&…...
Docker 镜像标签(Tag)规范与要求
Docker 镜像标签(Tag)规范与要求 背景 目前主流云厂商,如阿里云、百度云和腾讯云,均提供租户使用的镜像仓库服务。 各个厂商要求可能不太一样,比如华为:https://doc.hcs.huawei.com/zh-cn/usermanual/swr/swr_faq_0017.html 样…...

STM32:Modbus通信协议核心解析:关键通信技术
知识点1【 Modbus通信】 1、Modbus的概述 Modbus是OSI模型第七层的应用层报文传输协议 协议:说明有组包和解包的过程 2、通信机制 Modelbus是一个请求/应答协议 通信机制:主机轮询,从机应答的机制。每个从设备有唯一的地址,主…...

线程封装与互斥
目录 线程互斥 进程线程间的互斥相关背景概念 互斥量mutex 互斥量的接口 初始化互斥量有两种方法: 销毁互斥量 互斥量加锁和解锁 改进售票系统 互斥量实现原理探究 互斥量的封装 线程互斥 进程线程间的互斥相关背景概念 临界资源:多线程执行流共…...
鸿蒙OSUniApp 开发实时天气查询应用 —— 鸿蒙生态下的跨端实践#三方框架 #Uniapp
使用 UniApp 开发实时天气查询应用 —— 鸿蒙生态下的跨端实践 在移动互联网时代,天气应用几乎是每个人手机中的"标配"。无论是出行、旅游还是日常生活,实时获取天气信息都极为重要。本文将以"实时天气查询应用"为例,详…...
第十一天 5G切片技术在车联网中的应用
前言 在自动驾驶汽车每天产生4TB数据的时代,传统的移动网络已难以满足车联网的海量连接需求。中国移动2023年实测数据显示,某智能网联汽车示范区在传统5G网络下,紧急制动指令的传输延迟高达65ms,而5G网络切片技术将这个数值降低到…...

Spring AI 系列之一个很棒的 Spring AI 功能——Advisors
1. 概述 由AI驱动的应用程序已成为我们的现实。我们正在广泛地实现各种RAG应用程序、提示API,并利用大型语言模型(LLM)创建项目。借助 Spring AI,我们可以更快速地完成这些任务。 在本文中,我们将介绍一个非常有价值…...

Vue3 + TypeScript + el-input 实现人民币金额的输入和显示
输入人民币金额的参数要求: 输入要求: 通过键盘,只允许输入负号、小数点、数字、退格键、删除键、方向左键、方向右键、Home键、End键、Tab键;负号只能在开头;只保留第一个小数点;替换全角输入的小数点&a…...

2.1 C++之条件语句
学习目标: 理解程序的分支逻辑(根据不同条件执行不同代码)。掌握 if-else 和 switch 语句的用法。能编写简单的条件判断程序(如成绩评级、游戏选项等)。 1 条件语句的基本概念 什么是条件语句? 程序在执…...
ZYNQ实战:可编程差分晶振Si570的配置与动态频率切换
为什么需要可编程差分晶振? 在现代FPGA和嵌入式系统中,高速串行通信(如GTP/GTX收发器)对参考时钟的精度和灵活性要求极高。例如,1G以太网需要125MHz时钟,SATA协议需120MHz,而DisplayPort则需135MHz。传统固定频率晶振无法满足多协议动态切换需求,而Si570凭借其10MHz~8…...

Linux `ls` 命令深度解析与高阶应用指南
Linux `ls` 命令深度解析与高阶应用指南 一、核心功能解析1. 基本作用2. 与类似命令对比二、选项系统详解1. 常用基础选项2. 进阶筛选选项三、高阶应用技巧1. 组合过滤查询2. 格式化输出控制3. 元数据深度分析四、企业级应用场景1. 存储空间监控2. 安全审计3. 自动化运维五、特…...

【MPC控制 - 从ACC到自动驾驶】5. 融会贯通:MPC在ACC中的优势总结与知识体系构建
【MPC控制 - 从ACC到自动驾驶】融会贯通:MPC在ACC中的优势总结与知识体系构建 在过去的四天里,我们一起经历了一段奇妙的旅程: Day 1: 我们认识了自适应巡航ACC这位“智能领航员”,并初见了模型预测控制MPC这位“深谋远虑的棋手…...
Day3 记忆内容:map set 高频操作
以下是 第三天 的详细学习内容,聚焦 map和set的高效应用,重点突破查找类题型和去重逻辑,助你提升代码效率! 📚 Day3 记忆内容:map & set 高频操作 1. map 核心操作(手写3遍) /…...

初等数论--Garner‘s 算法
0. 介绍 主要通过混合积的表示来逐步求得同余方程的解。 对于同余方程 { x ≡ v 0 ( m o d m 0 ) x ≡ v 1 ( m o d m 1 ) ⋯ x ≡ v k − 1 ( m o d m k − 1 ) \begin{equation*} \begin{cases} x \equiv v_0 \quad (\ \bmod \ m_0)\\ x \equiv v_1 \quad (\ \bmod \ m_1)…...

NV211NV212美光科技颗粒NV219NV220
NV211NV212美光科技颗粒NV219NV220 技术架构解析:从颗粒到存储系统 近期美光科技发布的NV211、NV212、NV219、NV220系列固态颗粒,凭借其技术突破引发行业关注。这些颗粒基于176层QLC堆叠工艺,单Die容量预计在2026年可达1Tb,相当…...