【Linux】部署前后端分离项目---(Nginx自启,负载均衡)

目录

前言

一 Nginx(自启动)

2.1 Nginx的安装

2.2 设置自启动Nginx

二 Nginx负载均衡tomcat

2.1 准备两个tomcat

2.1.1 复制tomcat

2.1.2 修改server.xml文件

2.1.3 开放端口

2.2 Nginx配置

2.2.1 修改nginx.conf文件

 2.2.2 重启Nginx服务

2.2.3 测试Nginx得结论

三 后端

3.1 将war包放置webapps下

3.2 导入SQL脚本

3.3 测试后端

四 前端

4.1 创建文件夹存储前端

4.2 解压前端 

4.3 修改nginx.conf

 4.4 配置映射关系

4.5 访问项目


前言

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

上一篇文章:http://t.csdnimg.cn/UsK2P

一 Nginx(自启动)

前言:

Nginx作用图

从上图可以看出,让nginx负载多个tomcat从而访问数据库,这样能让更加的安全,如果一个服务器宕机了,还能使用另外一个服务器进行访问

2.1 Nginx的安装

先将Nginx的安装包放置到Linux中

1)下载并解压安装包
下载命令:wget http://nginx.org/download/nginx-1.13.7.tar.gz    (有了可不需要)
解压命令:tar -xvf nginx-1.13.7.tar.gz  (如下)

解压后:

2)一键安装4个依赖

命令执行:yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel

3)安装nginx
# 先进入安装包目录
命令:cd nginx-1.13.7  (安装包名根据自己的来)


# 编译,执行配置: 考虑到后续安装ssl证书 添加两个模块
命令:   ./configure --with-http_stub_status_module --with-http_ssl_module

4) 安装
命令:make && make install

5)启动 nginx 服务
安装好的 nginx 服务在 /usr/local/nginx/sbin 下

cd /usr/local/nginx/sbin
# 启动
命令:  ./nginx

虽然已经启动了,但我们也不知道到底启动成功没有。

6)#下载插件
yum install lsof

7) 查看Nignx是否启动
lsof -i:80

8) 设置防火墙开放 80 端口
 firewall-cmd --zone=public --add-port=80/tcp --permanent

9) 跟新防火墙规则
firewall-cmd --reload

10) 查看开放端口号
 firewall-cmd --reload && firewall-cmd --list-port

最后网址填写虚拟机地址访问Nginx

访问成功!

借鉴命令 可不操作

# 重启
./nginx -s reload
 
# 关闭
./nginx -s stop
 
# 或者,指定配置文件启动
./nginx -c /usr/local/nginx/conf/nginx.conf

2.2 设置自启动Nginx

先编辑etc下的rc.d/rc.local文件,点击i键处于编辑状态

1   vi /etc/rc.d/rc.local

再将nginx的启动命令位置复制上去,点击ESC,输入:wq保存并推出

2   /usr/local/nginx/sbin/nginx

 3 修改完成之后,返回它的上一层目录rc.d   命令:../


4 进行给rc.local文件赋予权限: chmod 755 rc.local

二 Nginx负载均衡tomcat

让Nginx负载两个tomcat,后面我们用两个tomcat访问项目

2.1 准备两个tomcat

2.1.1 复制tomcat

①  先复制一个tomcat后缀名改名8081的,就知道这是一第二个tomcat

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

2.1.2 修改server.xml文件

进入根目下的server.xml文件,修改该tomcat的端口

处于tomcat目录中下使用下方命令  

命令:vi conf/server.xml   

按ESC键,输入:wq 保存并退出

2.1.3 开放端口

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

2.2 Nginx配置

2.2.1 修改nginx.conf文件

前面我们安装了Nginx,它会在我们的系统中自动生产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是权重的意思,权重越大,分配的概率越大

② 

注释一行 添加proxy_pass   http://tomcat_list;

保存按Ctrl+s,点击Yes即可

 2.2.2 重启Nginx服务

再输入systemct restart nginx重启Nginx服务,让配置生效

或者进入 /usr/local/nfinx/sbin 目录下重启

./nginx -s reload

2.2.3 测试Nginx得结论

浏览器输入IP地址加上:8080/8081,进行切换测试

如果不加:8080/8081,默认也会访问其中一个端口,将其中一个tomcat停掉,也能进行访问服务器,直到被人攻击宕机或其它原因才会无法访问服务器

三 后端

3.1 将war包放置webapps下

① 第一个tomcat8080

② 第二个tomcat8081 

3.2 导入SQL脚本

连接服务器,连接MySQL并导入相关的脚本

3.3 测试后端

进行测试后端

8080端口访问服务器结果:

8081访问服务器结果:

四 前端

4.1 创建文件夹存储前端

  1. [root@localhost local]# mkdir mypro    

  2. [root@localhost local]# cd mypro/

4.2 解压前端 

解压要使用unzip命令,要下载,输入:

yum install -y unzip

再进行解压:         所要解压的前端包名根据自己的来

unzip blog.zip

解压之后,会有一个dist文件,复制该dist路径

4.3 修改nginx.conf

重新进入nginc.conf文件中进行修改,

/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/*后面的路径直接拼接到后面,即移除api
        proxy_pass http://tomcat_list/;
    }

 4.4 配置映射关系

主机Ctrl+r,输入C:\Windows\System32\drivers\etc,编辑hosts中增加映射关系

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

如下图

以管理员身份打开命令提示符或PowerShell

如果无法编辑该hosts文件,是权限不够

解决办法:

①管理员运行终端

按下Win + X组合键,然后选择“终端管理员”或“Windows PowerShell(管理员)”。

再进入C:\Windows\System32\drivers\etc

② 更改文件的所有权

使用takeown命令将文件的所有权更改为当前用户。例如,要将hosts文件的所有权更改为当前用户,可以运行以下命令:

takeown /f "C:\Windows\System32\drivers\etc\hosts"

③ 更改文件的权限

使用icacls命令来更改文件的权限,给予当前用户完全控制权限。例如:

icacls "C:\Windows\System32\drivers\etc\hosts" /grant 用户名:F

用户名替换为你的Windows用户名

不知道用户名的话,ctrl+r输入cmd进入终端

再输入命令echo %username%,获得用户名

解决之后再去编辑hosts文件,配置我们的映射关系 Ctrl+s保存

4.5 访问项目

如下的动态图,当我关掉一个8081的端口,我也能进行访问项目

不关掉两个端口的话,都可以进行访问我们的项目

 

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

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

相关文章

力扣● 343. 整数拆分 ● 96.不同的二叉搜索树

● 343. 整数拆分 想不到,要勇于看题解。 关键在于理解递推公式。 1、DP数组及其下标的含义:dp[i]是分解i这个数得到的最大的乘积。 2、DP数组如何初始化:dp[0]和dp[1]都没意义,所以直接不赋值,初始化dp[2]1即可。…

WordPres Bricks Builder 前台RCE漏洞复现(CVE-2024-25600)

0x01 产品简介 Bricks Builder是一款用于WordPress的开发主题,提供直观的拖放界面,用于设计和构建WordPress网站。它使用户能够轻松创建自定义的网页布局和设计,无需编写或了解复杂的代码。Bricks Builder具有用户友好的界面和强大的功能,使用户可以通过简单的拖放操作添加…

任务书参考答案-模块3-理论题

理论技能与职业素养(100分) “信息安全管理与评估”理论技能 一、 单选题 (每题2分,共35题,共70分) 1、应急事件响应和恢复措施的目标是( B )。 A、保证信息安全 B、最小化事件的影响 C、找出事件的责任人 D、加强组织内部的监管 2、下列数据类型不属于静态数据提取的…

计算机设计大赛 深度学习图像风格迁移 - opencv python

文章目录 0 前言1 VGG网络2 风格迁移3 内容损失4 风格损失5 主代码实现6 迁移模型实现7 效果展示8 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 深度学习图像风格迁移 - opencv python 该项目较为新颖,适合作为竞赛课题…

Mybatis中 <where> </where> 标签

mybatis的动态sql非常强大。 其中 标签 在不满足 where子句后面的筛选条件时&#xff0c;会去掉 where 子句。 例&#xff1a; <select id"findList" resultMap"userMap" parameterType"UserDto">select*FROMusers<where><if …

【VUE】使用vant组件

1:van-field 格式化金额保留两位小数 // 页面 <van-fieldv-model"curValue"label"充值金额"placeholder"请输入充值金额"type"number"input-align"right"input"numberFixedDigit" />//校验 /*** 格式化输入…

字典不能用to_pickle存储数据,得用dump存储数据

1.错误方式 data_dict {} ...... data_dict.to_pickle(save_path "data_dict.pkl")报错显示&#xff1a; AttributeError: ‘dict’ object has no attribute ‘to_pickle’ 2.正确方式 pickle.dump(data_dict, open(save_path data_dict.pkl, wb))

python57-Python的循环

循环语句可以在满足循环条件的情况下&#xff0c;反复执行某一段代码&#xff0c;这段被重复执行的代码被称为循环体。 当反复执行这个循环体时&#xff0c;需要在合适的时候把循环条件改为假&#xff0c;从而结束循环。 否则循环将一直执行下去&#xff0c;形成死循环。 循…

istio系列教程

istio学习记录——安装https://suxueit.com/article_detail/otVbfI0BWZdDRfKqvP3Gistio学习记录——体验bookinfo及可视化观测https://suxueit.com/article_detail/o9VdfI0BWZdDRfKqlv0r istio学习记录——kiali介绍https://suxueit.com/article_detail/pNVbfY0BWZdDRfKqX_0K …

Java学习之旅:从基础到高级

在当今快速发展的技术世界中&#xff0c;Java 仍然是最受欢迎和广泛使用的编程语言之一。无论是开发企业级应用、移动应用还是web应用&#xff0c;Java 都是开发者的首选语言之一。如果你是一个Java初学者&#xff0c;或者希望提升你的Java技能&#xff0c;那么遵循一个清晰的学…

【Java EE初阶二十三】servlet的简单理解

1. 初识servlet Servlet 是一个比较古老的编写网站的方式&#xff0c;早起Java 编写网站,主要使用 Servlet 的方式&#xff0c;后来 Java 中产生了一个Spring(一套框架)&#xff0c;Spring 又是针对 Servlet 进行了进一步封装,从而让我们编写网站变的更简单了&#xff1b;Sprin…

【卷积神经网络中用1*1 卷积有什么作用或者好处呢?】

&#x1f680; 作者 &#xff1a;“码上有前” &#x1f680; 文章简介 &#xff1a;深度学习 &#x1f680; 欢迎小伙伴们 点赞&#x1f44d;、收藏⭐、留言&#x1f4ac; 1*1 卷积有什么作用或者好处呢 作用降维和增加非线性特征组合和交互网络的宽度和深度调整全连接替代增强…

C++ //练习 9.6 下面程序有何错误?你应该如何修改它?

C Primer&#xff08;第5版&#xff09; 练习 9.6 练习 9.6 下面程序有何错误&#xff1f;你应该如何修改它&#xff1f; list<int> lst1; list<int>::iterator iter1 lst1.begin(),iter2 lst1.end(); while(iter1 < iter2) /* ... */环境&#xff1a;Linux…

高频面试题整理(一)

文章目录 平台无关性如何实现&#xff1f;JVM如何加载 .class文件&#xff1f;什么是反射?谈谈ClassLoader谈谈类的双亲委派机制类的加载方式Java的内存模型?JVM内存模型-jdk8程序计数器&#xff1a;Java虚拟机栈局部变量表和操作数栈&#xff1a; Java内存模型中堆和栈的区别…

Android Gradle开发与应用 (二) : Groovy基础语法

1. Groovy是什么 Groovy是基于JVM虚拟机的一种动态语言&#xff0c;语法和Java非常相似&#xff0c;并能够无缝地与Java代码集成和互操作&#xff0c;增加了很多动态类型和灵活的特性。(闭包、DSL) 语法和Java非常相似这个特点&#xff0c;意味着&#xff0c;如果我们完全不懂…

Double 4 VR智能互动教学系统在思政课堂上的应用

一、Double 4VR智能互动教学系统的优点 1. 增强课堂互动性&#xff1a;VR技术可以创建虚拟场景&#xff0c;使学生在虚拟环境中进行互动&#xff0c;打破传统课堂的限制&#xff0c;提高课堂参与度。 2. 增强学习体验&#xff1a;VR技术能够为学生提供沉浸式的学习体验&#…

Python爬虫进阶:爬取在线电视剧信息与高级检索

简介&#xff1a; 本文将向你展示如何使用Python创建一个能够爬取在线电视剧信息的爬虫&#xff0c;并介绍如何实现更高级的检索功能。我们将使用requests和BeautifulSoup库来爬取数据&#xff0c;并使用pandas库来处理和存储检索结果。 目录 一、爬取在线电视剧信息 …

App开发-上线全流程笔记

云打包平台 一门App云打包安卓益APP本机号码认证 号码认证服务整合三大运营商特有的网关认证能力,应用于用户注册、登陆、安全校验等场景,实现无感知校验。https://www.yimenapp.net/module/ben-ji-hao-ma-ren-zheng-134.html 技术原理:https://juejin.cn/post/7066222614…

JavaScript学习小记(1)基本数据结构(数组,字符串)

一个寒假确实过的很快&#xff0c;这个寒假除了调包调参突然心血来潮想学一下前端&#xff0c;学习过程比较平滑&#xff0c;我是自己找的技术文档&#xff0b;写代码实践来学习的&#xff0c;教程视频虽然详细&#xff0c;但是真的一点都看不动。 目录 JS如何定义变量的老旧的…

174基于matlab的雷达数字信号处理

基于matlab的雷达数字信号处理。该程序具备对雷达目标回波的处理能力&#xff0c;能够从噪声中将目标检测出来&#xff0c;并提取目标的距离、速度、角度信息。有相应的试验文档。程序已调通&#xff0c;可直接运行。 174 雷达数字信号处理 目标检测出来 (xiaohongshu.com)