Linux之前后端项目部署与发布

目录

前言

一. Nginx配置安装(自启动)

        1.1 一键安装4个依赖

        1.2 上传并解压安装包

        1.3 安装nginx

        1.4 启动Nginx服务

        1.5 防火墙规则

        1.6 配置开机自启动

        1.7 修改/etc/rc.d/rc/local的权限

二. Nginx负载多个tomcat

        2.1 准备2个tomcat

        2.2 修改第二个tomcat的配置

        2.3 防火墙规则

        2.4 测试 

        2.5. 配置Nginx负载均衡

        2.6 测试 

三. 后端项目部署 

        3.1 将war包放置webapps下

        3.2 导入SQL脚本 

        3.3 测试

四. 前端项目部署

        4.1 解压前端

        4.2  Nginx配置文件修改

        4.3 IP域名映射 

        4.4 重启Nginx服务

        4.5 测试


前言

        在前面的一篇文章中我们学习了如何部署单机项目,其中包括了jdk,tomcat,mysql的安装,这一篇文章博主就不带大家进行安装了,直接从安装Nginx开始。

        如果有需要的宝贝们,可以跳转到上一篇文章进行学习:http://t.csdnimg.cn/qkK4G

一. Nginx配置安装(自启动)

        1.1 一键安装4个依赖

在opt目录下,一键安装4个依赖

[root@localhost opt]# yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel

安装成功

        1.2 上传并解压安装包

安装包名称:nginx-1.13.7.tar.gz

#下载命令
wget http://nginx.org/download/nginx-1.13.7.tar.gz    (有了可不需要)#解压命令
tar -xvf nginx-1.13.7.tar.gz  [root@localhost opt]# tar -xvf nginx-1.13.7.tar.gz -C /usr/local/java/

-C /usr/local/java/:这是在前一篇博文内容中我所存放文件的位置,大家根据自身习惯存放即可

解压成功

        1.3 安装nginx

一般我们在nginx都是要安装ssl证书的

1. 进入到安装包目录中

[root@localhost java]# cd nginx-1.13.7/

2. 编译,执行配置:考虑到后续安装ssl证书,添加两个模块

[root@localhost nginx-1.13.7]# ./configure --with-http_stub_status_module --with-http_ssl_module

3. 安装编译一下

[root@localhost nginx-1.13.7]# make && make install

        1.4 启动Nginx服务

1. 安装好的Nginx服务就在/usr/local/nginx目录下

conf是环境配置文件,html是静态资源,logs日志,sbin启动

2. 进入 /usr/local/nginx/sbin 目录下进行Nginx启动

#进入到sbin目录中
[root@localhost nginx]# cd sbin/# 启动
[root@localhost sbin]# ./nginx

3. 查看是否启动成功

① ps -A |grep nginx

[root@localhost sbin]# ps -A |grep nginx4292 ?        00:00:00 nginx4293 ?        00:00:00 nginx

② 还可以用 lsof -i:80

[root@localhost sbin]# lsof -i:80
COMMAND  PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
nginx   4292   root    6u  IPv4  27655      0t0  TCP *:http (LISTEN)
nginx   4293 nobody    6u  IPv4  27655      0t0  TCP *:http (LISTEN)

当然了,lsof命令需要下载

yum install -y lsof

        1.5 防火墙规则

  • #开放80端口
  • firewall-cmd --zone=public --add-port=80/tcp --permanent
  • #刷新防火墙规则
  • firewall-cmd --reload
  • #查看防火墙列表
  • firewall-cmd --zone=public --list-ports 

 现在已经安装好了,但不过我们重启Nginx就会关闭了,不会自启动

        1.6 配置开机自启动

1. 进入 /etc/rc.d/rc.local目录下

[root@localhost sbin]# vim /etc/rc.d/rc.local

2. 配置nginx的服务目录 

/usr/local/nginx/sbin/nginx 

按 i 进入编辑模式,esc 退出编辑,:wq 退出并保存

        1.7 修改/etc/rc.d/rc/local的权限

cd /etc/rc.d/
chmod 755 rc.local

修改成功 

二. Nginx负载多个tomcat

负载均衡

        2.1 准备2个tomcat

cp -r apache-tomcat-8.5.20/ apache-tomcat-8.5.20-8081/

        2.2 修改第二个tomcat的配置

1 进入到conf目录下

cd apache-tomcat-8.5.20-8081/conf/

2 编辑server.xml文件

vim server.xml

① HTTP端口,默认8080,改为8081

② 远程停服务端口,默认8005,改为8006

③ AJP端口,默认8009,改为8010

        2.3 防火墙规则

  • #开放8081端口
  • firewall-cmd --zone=public --add-port=8081/tcp --permanent
  • #刷新防火墙规则
  • firewall-cmd --reload
  • #查看防火墙列表
  • firewall-cmd --zone=public --list-ports 

开放成功

        2.4 测试 

去测试一下是否可以连上8080、8081,启动两个tomcat服务

#8080
cd /usr/local/java/apache-tomcat-8.5.20/bin/./startup.sh#8081
cd /usr/local/java/apache-tomcat-8.5.20-8081/bin/./startup.sh

测试成功 

        2.5. 配置Nginx负载均衡

1. 首先先切换到Nginx服务目录 cd /usr/local/nginx/conf/ 

2. 在这里面有一个文件 nginx.conf,但是不建议使用vim修改

① 我们可以使用pwd查看当前路径,然后copy到上面的输入框中找到nginx.conf

② 或者勾选左下角的 Follow ,这样在我们进行 cd 跳转的时候,可以实时跟进

3. 双击进入到 nginx.conf 中

4. 添加以下内容 

① 设置负载两个端口 

upstream  tomcat_list {  #服务器集群名字server    127.0.0.1:8080  weight=1;   #服务器1   weight是权重的意思,权重越大,分配的概率越大。server    127.0.0.1:8081  weight=1; #服务器2   weight是权重的意思,权重越大,分配的概率越大
} 

② 反向代理

proxy_pass   http://tomcat_list;

5. 更改完后,点击 YES 进行保存

6. 进入/usr/local/nginx/sbin目录下

cd /usr/local/nginx/sbin

#重启nginx服务,让配置生效

./nginx -s reload

这时nginx就负载到两个tomcat上了,不再需要输入具体的80端口也能进行登录了

        2.6 测试 

测试Nginx负载2个tomcat的效果

  • 来回切换tomcat:8080/8081两个服务器的内容
  • 停掉一个tomcat发现还是可以访问项目
  • 停掉2个tomcat就不可以访问项目

三. 后端项目部署 

        3.1 将war包放置webapps下

把我们后端项目的war包,放入到每个tomcat的webapps当中

注意:每一个tomcat都要有war包,否则就算弄了负载均衡也不会起到作用

        3.2 导入SQL脚本 

1. 新建数据库,数据库名字需要与项目使用的数据库名字统一

2. 把我们sql脚本导入到mysql连接工具当中,右键运行SQL文件,进行刷新

        3.3 测试

① 关闭服务 

#进入到8080端口的bin目录中
cd /usr/local/java/apache-tomcat-8.5.20/bin/
#关闭服务
./shutdown.sh##进入到8081端口的bin目录中
cd /usr/local/java/apache-tomcat-8.5.20-8081/bin/
#关闭服务
./shutdown.sh

② 重启服务 

#8080
cd /usr/local/java/apache-tomcat-8.5.20/bin/
#启动
./startup.sh#8081
cd /usr/local/java/apache-tomcat-8.5.20-8081/bin/
#启动
./startup.sh

负载均衡后台项目发布

  • #保障以下3个链接都能访问项目
  • http://192.168.114.131:8080/T216_SSH/vue/treeNodeAction.action
  • http://192.168.114.131:8081/T216_SSH/vue/treeNodeAction.action
  • http://192.168.114.131/T216_SSH/vue/treeNodeAction.action
  • #注意:确保云数据库中是有数据的

如果云数据库中是有数据的,那么我们后端项目就部署成功了 

80端口: 

四. 前端项目部署

        4.1 解压前端

1.  一般开发都会提供一个前端的压缩包,在/usr/local目录下创建一个文件夹,存放压缩包

[root@localhost bin]# cd /usr/local/
[root@localhost local]# mkdir mypro
[root@localhost local]# cd mypro/

2. 下载unzip命令

[root@localhost mypro]# yum install -y unzip

3. 并解压前端压缩包

[root@localhost mypro]# unzip blog.zip

解压成功 

        4.2  Nginx配置文件修改

1. 将解压后的路径配置到/usr/local/nginx/conf目录下的nginx.conf中

路径

 

要进行替换的内容 

 #替换内容一server_name  www.zking.com; #当前服务的域名(虚拟域名也可以)root         /usr/local/mypro/dist;      #将要访问的网站的根目录,nginx节点会自动继承父节点的配置;这里放到/usr/local/*,放到其他路径下会有权限相关问题;必要的时候配置Nginx.conf的user为root#替换内容二# 代理配置location / {#该句代码是为解决history路由不能跳转的问题,在vue-router官网有介绍 try_files $uri $uri/  /index.html;}location  ^~/api/ {#^~/api/表示匹配前缀是api的请求,proxy_pass的结尾有/, 则会把/api/*后面的路径直接拼接到后面,即移除apiproxy_pass http://tomcat_list/;}

        4.3 IP域名映射 

徽标键+R

C:\Windows\System32\drivers\etc

进入hosts 

虚拟机地址+映射地址如:192.168.114.131 www.zking.com 

        4.4 重启Nginx服务

cd /usr/local/nginx/sbin
./nginx -s reload

        4.5 测试

输入端口号+回车,输入密码和用户进入

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Java设计模式】四、适配器模式

文章目录 1、适配器模式2、举例 1、适配器模式 适配器模式Adapter Pattern,是做为两个不兼容的接口之间的桥梁目的是将一个类的接口转换成客户希望的另外一个接口适配器模式可以使得原本由于接口不兼容而不能一起工作的那些类可以一起工作 最后,适配器…

阿里云中小企业扶持权益,助力企业开启智能时代创业新范式

在数字化浪潮的推动下,中小企业正面临着转型升级的重要关口。阿里云深知中小企业的挑战与机遇,特别推出了一系列中小企业扶持权益,旨在帮助企业以更低的成本、更高的效率拥抱云计算,开启智能时代创业的新范式。 一、企业上云权益…

自动驾驶消息传输机制-LCM

需要用到LCM消息通讯,遂研究下。 这里写目录标题 1 LCM简介2. LCM源码分析3 LCM C教程与实例3.1 安装配置及介绍3.2 创建类型定义3.3 初始化LCM3.4 发布publish一个消息3.5 订阅和接收一个消息3.6 LCM进程间通讯3.7 注意事项?3.7.1 当数据结构定义的是数…

SpringMVC 学习(十)之异常处理

目录 1 异常处理介绍 2 通过 SimpleMappingExceptionResolver 实现 3 通过接口 HandlerExceptionResolver 实现 4 通过 ExceptionHandler 注解实现(推荐) 1 异常处理介绍 在 SpringMVC中,异常处理器(Exceptio…

go test用法(获取单元测试覆盖率)

go test用法(获取ut覆盖率) 为了提升系统的稳定性,一般公司都会对代码的单元测试覆盖率有一定要求。下面针对golang自带的测试命令go test做讲解。 1 命令 1.1 go test ./… (运行当前目录及所有子目录下的测试用例) …

13.云原生之常用研发中间件部署

云原生专栏大纲 文章目录 mysql主从集群部署mysql高可用集群高可用互为主从架构互为主从架构如何实现主主复制中若是两台master上同时出现写操作可能会出现的问题该架构是否存在问题? heml部署mysql高可用集群 nacos集群部署官网文档部署nacoshelm部署nacos redis集…

yolov9 瑞芯微芯片rknn部署、地平线芯片Horizon部署、TensorRT部署

特别说明:参考官方开源的yolov9代码、瑞芯微官方文档、地平线的官方文档,如有侵权告知删,谢谢。 模型和完整仿真测试代码,放在github上参考链接 模型和代码。 之前写过yolov8检测、分割、关键点模型的部署的多篇博文,y…

Mysql 高可用解决方案

1.环境说明 操作系统:centos7.7 主服务器:node2(192.168.1.102) 从服务器:node3(192.168.1.103) keepalived中虚拟ip(VIP):192.168.1.100 2.准备事项 主库和从库数据库的版本一致把主库的数据同步给从库一份 3.主库配置 3.1 编辑MySQL配…

读《Shape-Guided: Shape-Guided Dual-Memory Learning for 3D Anomaly Detection》

Chu Y M, Chieh L, Hsieh T I, et al. Shape-Guided Dual-Memory Learning for 3D Anomaly Detection[J]. 2023.(为毛paperwithcode上面曾经的榜一引用却只有1) 摘要 专家学习 无监督 第一个专家:局部几何,距离建模 第二个专家&…

postman访问k8s api

第一种方式: kubectl -n kubesphere-system get sa kubesphere -oyaml apiVersion: v1 kind: ServiceAccount metadata:annotations:meta.helm.sh/release-name: ks-coremeta.helm.sh/release-namespace: kubesphere-systemcreationTimestamp: "2023-07-24T07…

[Flutter]设置应用包名、名称、版本号、最低支持版本、Icon、启动页以及环境判断、平台判断和打包

一、设置应用包名 在Flutter开发中,修改应用程序的包名(也称作Application ID)涉及几个步骤,因为包名是在项目的Android和iOS平台代码中分别配置的。请按照以下步骤操作: 1.Android Flutter工程中全局搜索替换包名 …

在CentOS上使用Docker搭建Halo博客并实现远程访问的详细指南

🌈个人主页:聆风吟 🔥系列专栏:网络奇遇记、数据结构 🔖少年有梦不应止于心动,更要付诸行动。 文章目录 📋前言一. Docker部署Halo1.1 检查Docker版本1.2 在Docker中部署Halo 二. Linux安装Cpol…

水库安全监测方案(福建地区水库安全监测案例分享)

我司星创易联最近在福建省受到了一个水库安全监测系统项目的委托。该水库位于福建中部山区,作为该地区的重要防洪与供水工程,对下游数十万人的生活产生重大影响。但是因为水库附近地质情况复杂,水库大坝在多次洪水冲击下出现一定病害,亟须全面加强对水库大坝安全状况的监测,以确…

Ethernet/IP转Modbus TCP网关

产品功能 1 YC-EIP-TCP工业级EtherNet/IP 网关 2 Modbus TCP 转 EtherNet/IP 3支持ModBus主从站 4 即插即用 无需编程 轻松组态 ,即实现数据交互 5导轨安装 支持提供EDS文件 6 EtherNET/IP与ModBus互转数据透明传输可接入PLC组态 支持CodeSys/支持欧姆龙PLC 支持罗克韦尔(AB) 典…

国辰智企MES系统优化企业管理,让生产制造更高效

在制造业的舞台上,MES制造执行管理系统如同一位出色的导演,将生产过程中的各个场景巧妙地连接起来,演绎出一场场精彩的制造盛宴。让我们一同走进MES在制造业的具体应用场景,感受它带来的变革与创新。 在生产计划与调度的场景中&am…

一文读懂什么是 OCR 识别

在数字化时代,信息处理和数据管理是企业运营的重要环节。然而,手工输入信息存在效率低和准确性低的问题,严重影响了企业的工作流程和决策过程。因此,OCR(Optical Character Recognition)识别技术的应用变得…

【设计模式】5种创建型模式详解

创建型模式提供创建对象的机制,能够提升已有代码的灵活性和复用性。 常用的有:单例模式、工厂模式(工厂方法和抽象工厂)、建造者模式。不常用的有:原型模式。 一、单例模式 1.1 单例模式介绍 1 ) 定义 单例模式(Si…

亚信安慧AntDB数据库与流式处理的有机融合

流式处理的概念 2001年9月11日,美国世贸大楼被袭击,美国国防部第一次将“主动预警”纳入国防的宏观战略规划。而IBM作为当时全球最大的IT公司,承担了大量基础支撑软件研发的任务。其中2009年正式发布的IBM InfoSphere Streams,就是…

【深度学习】Pytorch教程(八):PyTorch数据结构:2、张量的数学运算(6):高维张量:乘法、卷积(conv2d~四维张量;conv3d~五维张量)

文章目录 一、前言二、实验环境三、PyTorch数据结构1、Tensor(张量)1. 维度(Dimensions)2. 数据类型(Data Types)3. GPU加速(GPU Acceleration) 2、张量的数学运算1. 向量运算2. 矩阵…

11 Redis之高并发问题(读+写) + 缓存预热+分布式锁

8. 高并发问题 Redis做缓存虽减轻了DBMS的压力,减小了RT(Response Time),但在高并发情况下也是可能会出现各种问题的。 8.1 缓存穿透 当用户访问的数据既不在数据库中也不在缓存中,如id为“-1”的数据或id为特别大不存在的数据, 这时的用户…