Linux部署前后端分离项目

目录

 一、jdk安装

二、tomcat安装

 三、MySQL安装

四、nginx安装

五、配置多个tomcat负载,部署后端项目

六、前端部署


 一、jdk安装

1. 上传jdk安装包 jdk-8u151-linux-x64.tar.gz

进入opt目录,将安装包拖进去

2. 解压安装包

这里需要解压到usr/local目录下,在这里我新建一个文件夹保存解压后的文件

[root@localhost opt]# cd /usr/local/
[root@localhost local]# mkdir java

然后再进入到opt目录下进行解压

[root@localhost local]# cd /opt/
[root@localhost opt]# tar -zxvf jdk-8u151-linux-x64.tar.gz -C /usr/local/java

解压完成后,可以查看

3. 进入/etc/profile文件中,配置环境变量

[root@localhost java]# vim /etc/profile

i键进入编辑模式,ESC退出编辑,:wq保存并退出 

#java environment
export JAVA_HOME=/usr/local/java/jdk1.8.0_151/  
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

设置环境变量生效

[root@localhost java]# source /etc/profile

 安装完成后,可以查看

[root@localhost java]# java -version
java version "1.8.0_151"
Java(TM) SE Runtime Environment (build 1.8.0_151-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode)

二、tomcat安装

 1. 上传安装包 apache-tomcat-8.5.20.tar.gz

跟jdk一样,直接将安装包拖入到opt目录下即可

2. 解压安装包

在opt目录下进行解压,解压到usr/local/java目录下

[root@localhost java]# cd /opt/
[root@localhost opt]# tar -zxvf apache-tomcat-8.5.20.tar.gz -C /usr/local/java

 3. 启动tomcat

[root@localhost java]# cd apache-tomcat-8.5.20/bin/
[root@localhost bin]# ./startup.sh

 4. 防火墙设置

1、开放8080端口

firewall-cmd --zone=public --add-port=8080/tcp --permanent

2、刷新防火墙

firewall-cmd --reload

3、查看防火墙列表

firewall-cmd --zone=public --list-ports

5. 创建启动脚本(设置自启动,服务器开启即启动)

将tomcat目录下bin中的catalina.sh拷贝到/etc/init.d目录下

[root@localhost bin]# cp /usr/local/java/apache-tomcat-8.5.20/bin/catalina.sh /etc/init.d

重命名为tomcat 

[root@localhost bin]# cd /etc/init.d/
[root@localhost init.d]# mv catalina.sh tomcat

编辑tomcat

进入编辑界面,加入以下内容,注意根据自己的环境配置

JAVA_HOME=/usr/local/java/jdk1.8.0_151
CATALINA_HOME=/usr/local/java/apache-tomcat-8.5.20

加入以下注释,:wq保存

#chkconfig: 23456 10 90
#description: tomcat service

执行以下命令添加服务

[root@localhost init.d]# chkconfig --add tomcat

 三、MySQL安装

1. 卸载mariadb,否则安装MySQL会出现冲突(先查看后删除再查看)

[root@localhost ~]# rpm -qa|grep mariadb
mariadb-libs-5.5.56-2.el7.x86_64
[root@localhost ~]# rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64
[root@localhost ~]# rpm -qa|grep mariadb

2. 上传MySQL安装包

跟jdk一样,将安装包拖入到opt目录下

3. 解压MySQL安装包 mysql-5.7.35-1.el7.x86_64.rpm-bundle.tar

创建一个文件夹

[root@localhost ~]# cd /usr/local/java/
[root@localhost java]# mkdir mysql-5.7

进入opt目录下进行解压

[root@localhost java]# cd /opt
[root@localhost opt]# tar -xvf mysql-5.7.35-1.el7.x86_64.rpm-bundle.tar -C /usr/local/java/mysql-5.7/

4. 以下内容逐条进行安装,-ivh 其中i表示安装,v表示显示安装过程,h表示显示进度 

rpm -ivh mysql-community-common-5.7.35-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.35-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.35-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.35-1.el7.x86_64.rpm

5. 启动MySQL服务及开机启动设置

[root@localhost mysql-5.7]# systemctl start mysqld
[root@localhost mysql-5.7]# systemctl enable mysqld.service

 6. 登录MySQL修改密码

[root@localhost mysql-5.7]# grep "password" /var/log/mysqld.log
2024-02-24T09:47:07.400066Z 1 [Note] A temporary password is generated for root@localhost: ro.*hxccr9oL
[root@localhost mysql-5.7]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.

#设置密码校验策略(0 or LOW),要不密码太LOW不让你过
set global validate_password_policy=0;
#设置密码校验长度,要不密码太短不让你过(多次测试发现密码最小长度为4位)
set global validate_password_length=4;
#更新密码
set password = password("123456");

#数据库没有授权,允许以root身份远程登录mysql
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
#输入后使修改生效还需要下面的语句
FLUSH PRIVILEGES; 

#可以退出,试试用新密码重新登录
exit

7. 防火墙设置

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

四、nginx安装

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

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

2. 上传并解压安装包 nginx-1.13.7.tar.gz

[root@localhost opt]# tar -xvf nginx-1.13.7.tar.gz -C /usr/local/java/

3. 安装nginx

#进入安装包目录

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

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

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

#安装

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

4. 启动nginx服务

安装好的nginx服务就会在/usr/local/nginx目录下

进入 /usr/local/nginx/sbin 目录下启动:
# 启动
./nginx

#查看是否启动成功 ps -A |grep nginx

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

还可以用 lsof -i:80

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

当然,lsof命令需要下载

yum install -y lsof

5. 防火墙规则

#开放80端口

firewall-cmd --zone=public --add-port=80/tcp --permanent

#刷新防火墙规则

firewall-cmd --reload

#查看防火墙列表

firewall-cmd --zone=public --list-ports 

6. 配置开机自启动

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

vim /etc/rc.d/rc.local

#配置nginx的服务目录 /usr/local/nginx/sbin/nginx

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

cd /etc/rc.d/

chmod 755 rc.local 

五、配置多个tomcat负载,部署后端项目

 1. 准备2个tomcat

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

2. 修改第二个tomcat的配置

进入到conf目录下

cd apache-tomcat-8.5.20-8081/conf/

编辑server.xml文件:

vim server.xml

HTTP端口,默认8080,改为8081


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


 

AJP端口,默认8009,改为8010

3. 防火墙规则

#开放8081端口

firewall-cmd --zone=public --add-port=8081/tcp --permanent

#刷新防火墙规则

firewall-cmd --reload

#查看防火墙列表

firewall-cmd --zone=public --list-ports 

4. 配置nginx负载均衡

在/usr/local/nginx/conf目录下的nginx.conf中添加

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

 更改完后,点击保存

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

#重启nginx服务

./nginx -s reload

这时nginx就负载到两个tomcat上了

6. 创建数据库,将脚本导入

注意数据库名称要一致

7. 将项目后端的war包放入到/usr/local/java/apache-tomcat-8.5.20/webapps下

注意两个tomcat都要放war包

8. 再重启tomcat服务,就可以访问到后端数据了

后端就部署完成了

六、前端部署

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
...
[root@localhost mypro]# unzip blog.zip

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

在C:\Windows\System32\drivers\etc\hosts中增加映射关系
192.168.93.141 www.zking.com 

然后再重启nginx服务,前端就部署完成了

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

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

相关文章

17.材质和外观

1.图形学中的材质 在图形学中,材质(Material)是用来描述物体外观和表面特性的属性集合。它包含了控制光的反射、折射、吸收以及其他光学效果的信息,从而决定了物体在渲染过程中的外观。 渲染方程中那一项和材质有关? …

vue项目的前端工程化思路webpack(持续更新中)

写在前面:现在的前端网页功能丰富,特别是SPA(single page web application 单页应用)技术流行后,JavaScript的复杂度增加和需要一大堆依赖包,还需要解决Scss,Less……新增样式的扩展写法的编译工…

设计模式学习笔记 - 面向对象 - 8.实践:贫血模型和充血模型的原理及实践

1.Web开发常用的贫血MVC架构违背OOP吗? 前面我们依据讲过了面向对象四大特性、接口和抽象类、面向对象和面向过程编程风格,基于接口而非实现编程和多用组合少用继承设计思想。接下来,通过实战来学习如何将这些理论应用到实际的开发中。 大部…

第二节:Vben Admin 登录逻辑梳理和对接后端准备

系列文章目录 上一节:第一节:Vben Admin介绍和初次运行 文章目录 系列文章目录前言项目路径的概述一、登录逻辑梳理loginApi接口查看Mock 二、后端程序对接准备关闭Mock 总结 前言 第一节,我们已经配置了前端环境,运行起来了我们…

zabbix监控业务数据

前言 监控系统除了监控os和数据库性能相关的指标外,业务数据也是重点监控的对象。 一线驻场的运维同学应该深有体会,每天需要向甲方或者公司反馈现场的数据情况,正常情况下一天巡检两次,早上上班后和下午下班前各一次。监控项目…

复旦大学EMBA联合澎湃科技:共议科技迭代 创新破局

1月18日,由复旦大学管理学院、澎湃新闻、厦门市科学技术局联合主办,复旦大学EMBA项目、澎湃科技承办的“君子知道”复旦大学EMBA前沿论坛在厦门成功举办。此次论坛主题为“科技迭代 创新破局”,上海、厦门两地的政策研究专家、科学家、科创企…

RDMA内核态函数ib_post_recv()源码分析

接上文,上文分析了内核rdma向发送队列添加发送请求的函数ib_post_send,本文分析一下向接收队列添加接收请求的函数ib_post_recv。其实函数调用流程与上文类似,不再重复说明,可参考链接。 函数调用过程 最终会调用到这个函数 下面…

力扣随笔删除有序数组中的重复项(简单26)

思路:根据类似于滑动窗口的思想,定义一个指针;使指针左边的区域全部为不重复元素(包括指针所指的数字) 以示例2为例,left:红色加粗 遍历指针i:黑色加粗 窗口范围,左边界到…

剪辑视频调色怎么让画质变得清晰 视频剪辑调色技巧有哪些方面 剪辑视频免费的软件有哪些 会声会影调色在哪里 会声会影模板素材

视频调色的作用有很多,除了进行风格化剪辑以外,还可以让作品的画质变得清晰。通过调色来增强画面的清晰度,在观感上也会显得十分自然。视频调色的技巧有很多,并且原理大都十分简单。有关剪辑视频调色怎么让画质变得清晰&#xff0…

linux系统---httpd

目录 Internet的起源 一、http协议——超文本传输协议 1.http相关概念 二、HTTP请求访问的完整过程 1、 建立连接 2、 接收请求 3、 处理请求 常用请求Method: GET、POST、HEAD、PUT、DELETE、TRACE、OPTIONS 3.1 常见的HTTP方法 3.2 GET和POST比较 4、访问资源 …

推荐一个 Obsidian 的 ChatGPT 插件

源码地址:https://github.com/nhaouari/obsidian-textgenerator-plugin Text Generator 是目前我使用过的最好的 Obsidian 中的 ChatGPT 功能插件。它旨在智能生成内容,以便轻松记笔记。它不仅可以在 Obsidian 中直接使用 ChatGPT,还提供了优…

Linux键盘输入实验-创建按键的设备节点

一. 简介 Linux内核针对 GPIO驱动开发,提供了 pinctrl子系统与gpio子系统,方便了 GPIO驱动程序的开发。 本文开始学习如何利用 Linux内核的 pinctrl子系统,与 gpio子系统提供的 API函数,开发按键驱动。 这里主要学习在设备树文件中创建按键的设备节点。 二. Linux按键…