当前位置: 首页 > article >正文

项目部署一次记录

链路:(用户)客户端 → 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:主从复制结构中的从库

前端部署

  1. 下载安装nginx
  2. 上传前端打包项目 文件夹dist 至nginx的html目录下
  3. 修改Nginx配置文件nginx.conf的默认index以及反向代理http://192.168.138.101:8080
  4. /api/ 访问地址会有对应映射

后端部署

  1. 在线安装jdk
 yum search java|grep jdkyum install java-1.8.0-openjdkjava -version
  1. 下载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

  1. 在线安装git
 yum install gitgit --version

问题排查

浏览器访问地址:192.168.138.100

第一阶段排查,访问地址不通

报错:无法访问此网站
192.168.138.100 拒绝了我们的连接请求。

确认nginx是否已打开(/usr/local/nginx/sbin/nginx)

第二阶段排查

常见的数据库未启动、防火墙端口未放开。 附加文篇开头命令

第三阶段排查

  1. 运行jar看服务有无问题
java -jar test-1.0-SNAPSHOT.jar
  1. maven打包看是否可行
mvn clean package -Dmaven.test.skip=true
  1. 分布启动项目调试,拉取代码是否成功
git clone https://gitee.com/url--
  1. /usr/local/javaapp下的自动化部署脚本
chmod 777 testStart.sh #给予权限
http://www.lryc.cn/news/2386906.html

相关文章:

  • 单例模式,饿汉式,懒汉式,在java和spring中的体现
  • 一文带你彻底理清C 语言核心知识 与 面试高频考点:从栈溢出到指针 全面解析 附带笔者手写2.4k行代码加注释
  • 【Redis】第1节|Redis服务搭建
  • 数据结构第5章 树与二叉树(竟成)
  • # 深入解析BERT自然语言处理框架:原理、结构与应用
  • ai学习--python部分-1.变量名及命名空间的存储
  • Cadence学习笔记之---PCB过孔替换、封装更新,DRC检查和状态查看
  • Java基础 Day21
  • 系统开发和运行知识
  • Elasticsearch 分片驱逐(Shard Exclusion)方式简析:`_name`、`_ip`、`_host`
  • 【C++高级主题】异常处理(四):auto_ptr类
  • STM32CubeMX配置使用通用定时器产生PWM
  • WebSphere Application Server(WAS)8.5.5教程第十四讲:JPA
  • Linux系统调用深度剖析
  • 动态规划-918.环形子数组的最大和-力扣(LeetCode)
  • Docker 镜像标签(Tag)规范与要求
  • STM32:Modbus通信协议核心解析:关键通信技术
  • 线程封装与互斥
  • 鸿蒙OSUniApp 开发实时天气查询应用 —— 鸿蒙生态下的跨端实践#三方框架 #Uniapp
  • 第十一天 5G切片技术在车联网中的应用
  • Spring AI 系列之一个很棒的 Spring AI 功能——Advisors
  • Vue3 + TypeScript + el-input 实现人民币金额的输入和显示
  • 2.1 C++之条件语句
  • ZYNQ实战:可编程差分晶振Si570的配置与动态频率切换
  • Linux `ls` 命令深度解析与高阶应用指南
  • 【MPC控制 - 从ACC到自动驾驶】5. 融会贯通:MPC在ACC中的优势总结与知识体系构建
  • Day3 记忆内容:map set 高频操作
  • 初等数论--Garner‘s 算法
  • NV211NV212美光科技颗粒NV219NV220
  • SQL解析工具JSQLParser