Linux集群部署项目

news2025/1/15 16:36:43

目录

一,环境准备

1.1.安装MySQL

1.2.安装JDK

1.3.安装TomCat

1.4.安装Nginx

二,部署

2.1.后台服务部署

2.2.Nginx配置负载均衡及静态资源部署


一,环境准备

1.1.安装MySQL

将MySQL的安装包上传至服务器

查看系统中是否存在mariadb,如果存在则安装mysql时会有冲突,需要先卸载mariadb

# 查看是系统中是否存在mariadb
rpm -qa|grep mariadb

# 卸载mariadb
rpm -e --nodeps mariadb-libs-5.5.64-1.el7.x86_64

执行完卸载命令后再次查看mariadb是否被删除显示什么都没有表示已经卸载

创建mysql用户及用户组

#创建用户组
groupadd mysql

#创建用户
useradd mysql -g mysql

解压刚开始传入服务器的MySQL压缩包

tar -xvf mysql-5.7.30-1.el7.x86_64.rpm-bundle.tar

开始安装

rpm -ivh mysql-community-common-5.7.30-1.el7.x86_64.rpm

rpm -ivh mysql-community-libs-5.7.30-1.el7.x86_64.rpm

rpm -ivh mysql-community-client-5.7.30-1.el7.x86_64.rpm

// 安装之前,请先检查是否安装libaio,如果未安装请先安装之后再装server源
rpm -qa|grep libaio

rpm -ivh mysql-community-server-5.7.30-1.el7.x86_64.rpm

# 初始化数据库
mysqld --initialize

更改目录及权限

# 更改mysql数据库目录的所属用户及用户组
chown mysql:mysql /var/lib/mysql -R

# mysql目录授权
cd /var/lib
chmod -R 777 mysql

初始化数据库及启动

# 启动数据库服务
systemctl start mysqld

查看MySQL的启动状态

启动成功后修改mysql的登录密码

-- 查看安装时生成的随机密码
grep 'password' /var/log/mysqld.log

使用随机密码登录

-- 登录数据的代码
mysql -u root -p

重置密码

set password = password('新密码');

授权外网登录权限

grant all privileges on *.*  to  root@'%' identified by 'mysql.com';

刷新权限

flush privileges;

退出

exit

将MySQL端口号3306加入到防火墙规则

# 配置防火墙规则
firewall-cmd --zone=public --add-port=3306/tcp --permanent
# 刷新防火墙规则
firewall-cmd --reload

# 关闭防火墙,不建议使用
systemctl stop firewalld.service
systemctl disable firewalld.service

用主机上的数据库管理软件测试一下

1.2.安装JDK
# 在/usr/local下创建java目录
mkdir /usr/local/java

将JDK安装包上传至服务器

将JDK解压到/usr/local/java目录

tar -zxf  jdk-8u151-linux-x64.tar.gz -C /usr/local/java

配置环境变量

vim /etc/profile

在配置文件中加入JAVA环境变量

export JAVA_HOME=JDK解压路径
export PATH=$PATH:${JAVA_HOME}/bin

保存并退出,让新设置的环境变量生效

source /etc/profile

检查JAVA安装是否成功

java -version

1.3.安装TomCat

将TomCat的安装包上传至服务器

将TomCat解压到/opt下

tar -zxf apache-tomcat-8.5.20.tar.gz -C /opt

配置环境变量

vim /etc/profile

# 加入TOMCAT_HOME环境变量
export TOMCAT_HOME=Tomcat解压路径

启动tomcat

来到安装的tomcat的bin目录,执行如下命令

./startup.sh

tomcat启动后并不能立即访问,原因是8080端口被防火墙阻止了,

可以关闭防火墙(不建议),或将8080端口配置到防火墙中。

# 将8080端口加入到防火墙
firewall-cmd --zone=public --add-port=8080/tcp --permanent

# reload防火墙规则
firewall-cmd --reload

修改防火墙之后,访问http://192.168.11.137:8080/,如果看到tomcat的管理页面,则说明成功。

创建启动脚本

将tomcat目录下bin中的catalina.sh拷贝到/etc/init.d下,重命名为tomcat,为所有用户增加可执行权限

# 将catalina.sh拷贝到init.d目录下
cp /opt/apache-tomcat-8.5.20/bin/catalina.sh /etc/init.d

# 在init.d目录下为catalina.sh重命名
mv catalina.sh tomcat

# 为所有用户赋可执行权限
chmod a+x tomcat

# 编辑tomcat
vim /etc/init.d/tomcat

# 进入编辑界面,加入如下内容,注意根据自己的环境配置
#!/bin/sh                                                              
JAVA_HOME=/usr/local/java/jdk1.8.0_151                          
CATALINA_HOME=/opt/apache-tomcat-8.5.20

 #测试启动脚本
service tomcat status   # 查看服务状态,q键退出
service tomcat start    # 启动服务
service tomcat restart  # 重启服务
service tomcat stop     # 停止服务

service --status-all    # 查看服务列表  q键退出

配置TomCat随服务器自动启动

# 编辑/etc/init.d/tomcat
vim /etc/init.d/tomcat

# 加入如下注释,注意是注释,#
#chkconfig: 23456 10 90
#description: tomcat service

使用chkconfig --add命令添加服务

chkconfig --add tomcat

完成后即可开机自启

安装第如果需要安装多台TomCat可以照如上操作,如果是安装台同一台服务器上则需要更改TomCat的配置文件

进入TomCat安装目录下面的conf目录

cd /opt/apache-tomcat-8.5.20/conf

编辑server.xml

vim server.xml

找到8005,8080,8009这三个端口号将其改成与第一台或其他的TomCat不一样即可

1.4.安装Nginx

安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境,如果没有 gcc 环境,则需要安装

yum install gcc-c++

PCRE(Perl Compatible Regular Expressions) 是一个Perl库,包括 perl 兼容的正则表达式库。nginx 的 http 模块使用 pcre 来解析正则表达式,所以需要在 linux 上安装 pcre 库,pcre-devel 是使用 pcre 开发的一个二次开发库。nginx也需要此库

yum install -y pcre pcre-devel

zlib 库提供了很多种压缩和解压缩的方式, nginx 使用 zlib 对 http 包的内容进行 gzip ,所以需要在 Centos 上安装 zlib 库

yum install -y zlib zlib-devel

OpenSSL 套接字层密码库,有主要的密码算法、常用的密钥和证书封装管理功能及 SSL 协议,并提供丰富的应用程序供测试或其它目的使用。nginx 不仅支持 http 协议,还支持 https(即在ssl协议上传输http),所以需要在 Centos 安装 OpenSSL 库

yum install -y openssl openssl-devel

wget下载Nginx

 wget -c https://nginx.org/download/nginx-1.18.0.tar.gz

解压

tar -zxvf nginx-1.18.0.tar.gz

进入到Nginx的安装目录      

cd nginx-1.18.0

配置安装

# 使用默认配置,命令在nginx目录中执行,执行完成会产生MakeFile等文件
./configure

# 编译并安装
make && make install

启动与停止

# 到命令所在目录
cd /usr/local/nginx/sbin/

# 启动
./nginx

# 停止,强制直接关停
./nginx -s stop

# 等待nginx进程处理完任务再停止
./nginx -s quit

# 重新加载配置文件
./nginx -s reload

 配置Nginx自动启动

vim /etc/rc.d/rc.local     

  

/usr/local/nginx/sbin/nginx

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

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

二,部署

2.1.后台服务部署

在部署前请先将后台服务的数据库连接修改为已安装配置好的mysq服务器的ip地址

之后将war包上传至tomcat的webapps目录下即可

2.2.Nginx配置负载均衡及静态资源部署

修改前端程序

注:

        在部署前端程序时,需要先修改后台server的ip地址配置。

之后将前台程序打包

npm run build

 将打包好的前端程序上传到Nginx服务器的html目录

nginx.conf配置

vim /usr/local/nginx/conf/nginx.conf

重新加载配置文件

[root@localhost sbin]# pwd
/usr/local/nginx/sbin
[root@localhost sbin]# ls
nginx
[root@localhost sbin]# ./nginx -s reload

之后就可以通过nginx的地址访问部署好的项目了

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

了解 Solidity 语言:构建智能合约的首选编程语言

了解 Solidity 语言:构建智能合约的首选编程语言 Solidity 是一种用于编写智能合约的高级编程语言,广泛应用于以太坊和其他以太坊虚拟机(EVM)兼容的区块链平台。它是以太坊智能合约的首选语言之一,具有丰富的功能和灵活…

GD32F470_GY-SHT31-D 数字温湿度传感器模块移植

2.11 SHT30温湿度传感器 2.11.1 模块来源 采购链接: GY-SHT31-D 数字温湿度传感器模块 资料下载链接: https://pan.baidu.com/s/1kisMJspcV6Qdr1ye9ElOlQ 2.11.2 规格参数 工作电压:2.4-5.5V 工作电流:0.2~1500uA 温度测量范围&a…

微软文本转语音和语音转文本功能更新,效果显著!

今天我要和大家分享一个新功能更新——微软的文本转语音和语音转文本功能。最近,微软对其AI语音识别和语音合成技术进行了重大升级,效果非常好,现在我将分别为大家介绍这两个功能。 先来听下这个效果吧 微软文本转语音和语音转文本功能更新 …

CVPR24_ArGue: Attribute-Guided Prompt Tuning for Vision-Language Models

Abstract 尽管软提示微调在调整视觉语言模型以适应下游任务方面表现出色,但在处理分布偏移方面存在局限性,通过属性引导提示微调(Attribute-Guided,ArGue)来解决这个问题 Contributions 与直接在类名之前添加软提示…

浅析JavaWeb内存马基础原理与查杀思路

文章目录 前言Java内存马内存马分类&原理JavaWeb三大组件注入Servlet内存马注入Filter型内存马JAVA Agent内存马 哥斯拉木马0x01 WebShell0x02 MemShell0x03 FilterShell0x04 Arthas排查0x05 scanner查杀 总结 前言 几年前写过《Web安全-一句话木马》,主要介绍…

大意了MySQL关键字EXPLAIN

一、问题 然后explain带了单引号、以区别其关键字 二、报错如下 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near explain, us.nickname AS user_send_nickname, ua.nickname…

探索未来智慧酒店网项目接口架构

在数字化时代,智慧酒店已成为酒店业发展的重要趋势之一。智慧酒店网项目接口架构作为支撑智慧酒店运营的核心技术之一,其设计和优化对于提升用户体验、提高管理效率具有重要意义。本文将深入探讨智慧酒店网项目接口架构的设计理念和关键要素。 ### 智慧…

上位机图像处理和嵌入式模块部署(qmacvisual并发执行)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 类似于qmacvisual这样的软件,其实价格并不便宜。比如大家熟知的halcon、vision pro、vision master这样的软件,最便宜的版本…

练习实践-TLS02-会话恢复的两种形式-Session ID/SessionTicket

参考来源: 书籍:深入浅出https-从原理到实战(作者:虞卫东) 抓包分析文件可下载,来自github上的作者上传资源 会话恢复机制的背景 当客户端和服务器端握手成功,建立了一个完整的 TLS 连接&…

基于keepalived+gtid+双vip半同步主从复制的MySQL高性能集群

项目名称:基于keepalivedgtid双vip半同步主从复制的MySQL高性能集群 目录 项目名称:基于keepalivedgtid双vip半同步主从复制的MySQL高性能集群 项目规划图 1.配置4台MySQL服务器(1台master,2台slave,1台backup&a…

【Django开发】0到1美多商城项目md教程第5篇:短信验证码,1. 避免频繁发送短信验证码逻辑分析【附代码文档】

美多商城完整教程(附代码资料)主要内容讲述:欢迎来到美多商城!,项目准备。展示用户注册页面,创建用户模块子应用。用户注册业务实现,用户注册前端逻辑。图形验证码,图形验证码接口设…

江协STM32:定时器定时中断和定时器定时闹钟

定时器中断 新建文件 按这个图来编写程序 第一步:RCC开启时钟,定时器到基准时钟和整个外设到工作时钟就会同时打开 第二步:选择时基单元的时钟源,对于定时中断选择内部时钟源 第三步:配置时基单元,ARR,P…

CSS设置网页背景

目录 概述: 1.background-color: 2.background-image: 3.background-repeat: 4.background-position: 5.background-attachment: 6.background-size: 7.background-origin: 8.background-…

【Linux】Ubuntu 磁盘管理

准备一个U盘或者SD卡(含读卡器),并将其格式化成 FAT32 格式,不要使用NTFS格式(这是微软的专利,大部分Linux系统不支持)和exFAT格式(有的Linux系统也不支持)。 如果Ubun…

Linux云计算之Linux基础2——Linux发行版本的安装

目录 一、彻底删除VMware 二、VMware-17虚拟机安装 三、MobaXterm 安装 四、Centos 发行版 7.9的安装 五、rockys 9.1的安装 六、ubuntu2204的安装 一、彻底删除VMware 在卸载VMware虚拟机之前,要先把与VMware相关的服务和进程终止 1. 在windows中按下【Windo…

【算法练习】28:选择排序学习笔记

一、选择排序的算法思想 弄懂选择排序算法,先得知道两个概念:未排序序列,已排序序列。 原理:以升序为例,选择排序算法的思想是,先将整个序列当做未排序的序列,以序列的第一个元素开始。然后从左…

Python快速入门系列-7(Python Web开发与框架介绍)

第七章:Python Web开发与框架介绍 7.1 Flask与Django简介7.1.1 Flask框架Flask的特点Flask的安装一个简单的Flask应用示例7.1.2 Django框架Django的特点Django的安装一个简单的Django应用示例7.2 前后端交互与数据传输7.2.1 前后端交互7.2.2 数据传输格式7.2.3 示例:使用Flas…

蓝桥杯23年第十四届省赛-异或和之和|拆位、贡献法

题目链接: 蓝桥杯2023年第十四届省赛真题-异或和之和 - C语言网 (dotcpp.com) 1.异或和之和 - 蓝桥云课 (lanqiao.cn) 参考题解: 蓝桥杯真题讲解:异或和之和 (拆位、贡献法)-CSDN博客 洛谷P9236 [蓝桥杯 2023 省 A]…

2024 年最新使用 Wechaty 开源框架搭建部署微信机器人(微信群智能客服案例)

读取联系人信息 获取当前机器人账号全部联系人信息 bot.on(ready, async () > {console.log("机器人准备完毕&#xff01;&#xff01;&#xff01;")let contactList await bot.Contact.findAll()for (let index 0; index < contactList.length; index) {…

STC89C51学习笔记(二)

STC89C51学习笔记&#xff08;二&#xff09; 综述&#xff1a;本文简要介绍了51单片机以及示例了如何成功运行一个程序&#xff08;点亮一个LED&#xff09;。 一、单片机介绍 单片机简称MCU&#xff0c;MCUCPURAMROM定时器中断系统通讯协议等单片机任务是信息采集、处理、…