【Linux】Nignx的入门使用负载均衡动静分离(前后端项目部署)---超详细

一,Nignx入门

1.1 Nignx是什么

          Nginx是一个高性能的开源Web服务器和反向代理服务器。它使用事件驱动的异步框架,可同时处理大量请求,支持负载均衡、反向代理、HTTP缓存等常见Web服务场景。Nginx可以作为一个前端的Web服务器,也可以作为反向代理服务器,将客户端的请求转发给后端的应用服务器。它还支持灵活的模块化设计,可以通过添加不同的模块来实现各种各样的功能。

1.2 Nignx优点

  • 高性能和高并发。Nginx采用事件驱动的方式来实现高并发处理,这使得它可以处理数千个并发连接而不会影响其性能。

  • 轻量级和资源利用率低。Nginx具有非常小的内存占用和CPU利用率,这使得它在资源受限的环境下运行非常出色

  • 高可靠性和稳定性。Nginx被广泛使用在大型互联网企业中,已经被证明可以在高负载和恶劣的环境中保持稳定和可靠

1.3 Nignx应用场景

  • Web服务器。Nginx可以作为一个前端的Web服务器,提供高性能和稳定的Web服务

  • 反向代理服务器。Nginx可以通过反向代理来实现负载均衡和高可用性,这使得它非常适用于流量高峰期和服务器集群

  • 缓存服务器。Nginx支持HTTP缓存,可以将静态文件和动态页面缓存到内存中,从而提高访问速度和效率

  • 安全性控制。Nginx支持基于IP地址、HTTP头、请求方法等多种方式进行访问控制和安全性管理

二,Nginx负载均衡

2.1 Nuinx的安装

11)一键安装4个依赖

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

2)下载并解压安装包
下载命令:wget http://nginx.org/download/nginx-1.13.7.tar.gz
解压命令:tar -xvf nginx-1.13.7.tar.gz  (如下)

3)安装nginx
# 先进入安装包目录
命令:cd nginx-1.13.7


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

yum install lsof

# 安装
命令:make && make install

4)启动 nginx 服务
安装好的 nginx 服务在 /usr/local/nginx 下:

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

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

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

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

以下步骤借鉴即可,不操作

# 重启
./nginx -s reload

# 关闭
./nginx -s stop

# 或者,指定配置文件启动
./nginx -c /usr/local/nginx/conf/nginx.conf

其它:
yum install lsof
lsof -i:80
kill -9 pid

2.2 tomcat负载均衡

① 准备2个tomcat(还有一个自行创建)
cp -r apache-tomcat-8.5.20/ apache-tomcat-8.5.20_8081/

② 修改端口号

为了两个tomcat端口号不一致,我们需要更改一个tomcat的端口号

命令:firewall-cmd --zone=public --add-port=8082/tcp --permanent  (名为一个8081的端口)

输入命令 :  firewall-cmd --reload    ( #更新防火墙规则 )

输入命令 : firewall-cmd --zone=public --list-ports  ( 查看端口是否开放完成 )

输入命令 :  cd apache-tomcat-8.5.20/conf/   ( 进入conf目录 )

输入命令 : vim server.xml    ( 修改配置端口 )

按 i 进入编辑模式   将Connector标签中的port属性改成8081具体步骤看下面红字

1. HTTP端口,默认8080,如下改为8081
2.远程停服务端口,默认8005,如下改为8006
3.AJP端口,默认8009,如下改,8010

再按Esc退出编辑模式,再输入 :wq  保存并且退出

③ 开启两个tomcat

依次两个tomcat文件的bin目录下,输入  ./startup.sh  启动tomcat

最后打开浏览器访问不同的tomcat 

8082

8081

2.3 Nginx配置

进入nginx/conf/文件下,双击打开修改nginx.conf文件内容

内容:

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

具体修改步骤看下图

修改完毕之后,进入nginx文件的sbin目录下

重启命令:./nginx -s reload

这时候直接使用我们的端口号就可进行访问了,如果其中一个端口服务器关闭了,还有另一个服务器供我们使用。如下

2.4 部署项目

① 将项目的war包放入两个服务器中(tomcat/webapps目录下),

② tomcat启动 

在进入tomcat/bin目录下使用命令: ./startup.sh   启动

能够加载出数据,此时我们的使用Nginx搭载负载均衡就完成了。

三,前端项目的部署 

1.1 导包(两个问题)

① 将前端项目目录下的config文件夹里的index.js文件中,将build对象下的assetsPublicPath中的“/”,改为“./”

②在使用vue-cli3脚手架搭建的项目,在打包文件上服务器的时候,其他的css,js样式都能正确加载出路径,
但是element的icon图标却不能正常加载出来。

问题分析:
加载的路径https://yxq.linksign.cn/static/css/static/fonts/element-icons.535877f.woff
本应该加载的路径https://yxq.linksign.cn/static/fonts/element-icons.535877f.woff
打包的路径
事实上是打包时候读取的文件路径多了两层;
找到build文件的utils.js 中有打包的路径,看看generateLoaders();
Extract CSS when that option is specified, 指定该选项时提取CSS
发现少了个公共路径,加上pubilcPath

1.2 上传前端项目

创建一个文件夹名为mypro文件夹,以便存储项目

将所需要的项目鼠标移动进去

1.3 解压前端项目

这个是未解压的文件夹,我们需要把它解压,需要用到命令(要进入我们刚创建的文件夹中解压)

并且选中zip解压的命令 :yum install -y unzip  

开始解压的命令: unzip blog.zip   (.zip前面的是所解压包的名称)

1.4 Nginxp配置

找到nginx.conf文件进行编辑。输入命令 :  cd /usr/local/nginx/conf/   

       location / {root   /usr/local/mypro/dist;#proxy_pass   http://tomcat_list;index  index.html index.htm;}location  ^~/api/ {#^~/api/表示匹配前缀是api的请求,proxy_pass的结尾有/, 则会把/api/*后面的路径直接拼接到后面,即移除apiproxy_pass http://tomcat_list/;}

1.5 重启Nginx

编辑完毕之后,进入到/usr/local/nginx/sbin重启Nginx

1.6 映射关系

这时候还是登入不了,因为映射关系导致,所以我们需要改一下映射

在到文件资源管理器中进入到 以下本地目录

C:\Windows\System32\drivers\etc\hosts

找到 hosts 文件进行修改IP的请求

打开文件进行编辑

最后进行访问项目即可

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

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

相关文章

VUE2和VUE3思维导图知识体系总结大对比

VUE2知识体系 VUE3知识体系 思维导图原件下载地址

华为:手机王者归来,汽车起死回生

作为一家全球知名的科技公司,华为在通信、智能手机、平板电脑等领域拥有很高的市场份额和品牌影响力。而随着华为开始进军汽车领域,通过自主研发和合作,不断提升自己在汽车领域的竞争力,华为便也开始受到更为广泛的关注。 只不过…

前端难学还是后端难学?系统安全,web安全,网络安全是什么区别?

系统安全,web安全,网络安全是什么区别?三无纬度安全问题 系统安全,可以说是电脑软件的安全问题,比如windows经常提示修复漏洞,是一个安全问题 网页安全,网站安全,比如,…

【t5 pytorch版源码学习】t5-pegasus-pytorch源码学习

0. 项目来源 中文生成式预训练模型,以mT5为基础架构和初始权重,通过类似PEGASUS的方式进行预训练。 bert4keras版:t5-pegasus pytorch版:t5-pegasus-pytorch 本次主要学习pytorch版的代码解读。 项目结构: train…

Unity地面交互效果——3、曲面细分基础知识

大家好,我是阿赵。   之前介绍了使用动态法线贴图混合的方式模拟轨迹的凹凸感,这次来讲一下更真实的凹凸感制作。不过在说这个内容之前,这一篇先要介绍一下曲面细分着色器(Tessellation Shader)的用法。 一、为什么要做曲面细分 之前通过法…

canal+es+kibana+springboot

1、环境准备 服务器:Centos7 Jdk版本:1.8 Mysql版本:5.7.44 Canal版本:1.17 Es版本:7.12.1 kibana版本:7.12.1 软件包下载地址:链接:https://pan.baidu.com/s/1jRpCJP0-hr9aI…

【计算机网络】网络层:数据平面

一.网络层概述 每台路由器的数据平面的主要功能时从其输入链路向其输出链路转发数据报,控制平面的主要功能是协调这些本地的每路由转发动作,使得数据报沿着源和目的地主机之间的路由器路径最终进行端到端传送。 网络层不运行运输层和应用层协议。 转发是…

Pytorch网络模型训练

现有网络模型的使用与修改 vgg16_false torchvision.models.vgg16(pretrainedFalse) # 加载一个未预训练的模型 vgg16_true torchvision.models.vgg16(pretrainedTrue) # 把数据分为了1000个类别print(vgg16_true) 以下是vgg16预训练模型的输出 VGG((features): S…

10.29 校招 实习 内推 面经

绿*泡*泡: neituijunsir 交流裙 ,内推/实习/校招汇总表格 1、自动驾驶一周资讯 - 通用Cruise暂停无人驾驶业务,Stellantis15亿欧元获零跑20%股权,1-8月行泊一体域控排名 自动驾驶一周资讯 - 通用Cruise暂停无人驾驶业务&#…

FFmpeg直播能力更新计划与新版本发布

// 编者按:客户端作为直接面向用户大众的接口,随着技术的发展进化与时俱进,实现更好的服务是十分必要的。FFmpeg作为最受欢迎的视频和图像处理开源软件,被相关行业的大量用户青睐,而随着HEVC标准的发布到广泛使用&am…

【jvm】虚拟机栈

目录 一、背景二、栈与堆三、声明周期四、作用五、特点(优点)六、可能出现的异常七、设置栈内存大小八、栈的存储单位九、栈运行原理十、栈帧的内部结构10.1 说明10.2 局部变量表10.3 操作数栈10.4 动态链接10.5 方法返回地址10.6 一些附加信息 十一、代…

[已解决]该主机与 Cloudera Manager Server 失去联系的时间过长。 该主机未与 Host Monitor 建立联系。

问题 调整hvie 的参数后导致该主机与 Cloudera Manager Server 失去联系的时间过长 思路 主机离家出走了! 出现问题后立马参数修改回来; 但是还是发现有这样的报错: 网上百度,各种操作,大概总结为2点&#xff1a…

整理10个地推拉新app接单平台,免费一手推广渠道平台干货分享

1. 聚量推客: “聚量推客”汇聚了众多市场上有的和没有的地推网推拉新接单项目,目前比较火热,我们做地推和网推从业者如果长期在这行业去做推广可以使用这个平台,价格高数据也好,大部分拉新项目也都是官签一手资源 一…

11.4商业伦理(全)

大型工商业城市和小城市的商业伦理道德水平是否存在差异,如果有,存在哪些差异? 伦理道德对产业分工的影响 产业层级越高,需要的商业伦理道德水平越高 产业级别越高,利润率越高 去中心化的去信任化的比特币会不会取…

关于Intel Press出版的《Bedyong BIOS》第2版的观后感

文章目录 此书的背景UEFI运行时DXE基础CPU架构协议PCI协议UEFI驱动的初始化串口DXE驱动示例 《Beyond BIOS》首先介绍一个简单的UEFI应用程序模块,用于展示UEFI应用程序的行为。作者为Waldo。该模块名为“InitializeHelloApplication”,它接受两个参数&a…

Leetcode—101.对称二叉树【简单】

2023每日刷题(十九) Leetcode—101.对称二叉树 利用Leetcode101.对称二叉树的思想的实现代码 /*** Definition for a binary tree node.* struct TreeNode {* int val;* struct TreeNode *left;* struct TreeNode *right;* };*/ bool isSa…

【深度学习基础】Pytorch框架CV开发(1)基础铺垫

📢:如果你也对机器人、人工智能感兴趣,看来我们志同道合✨ 📢:不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】 📢:文章若有幸对你有帮助,可点赞 👍…

3 — NLP 中的标记化:分解文本数据的艺术

一、说明 这是一个系列文章的第三篇文章, 文章前半部分分别是: 1 、NLP 的文本预处理技术 2、NLP文本预处理技术:词干提取和词形还原 在本文中,我们将介绍标记化主题。在开始之前,我建议您阅读我之前介绍的关…

Docker的简单安装

安装环境 CentOS Linux release 8.1.1911 (Core)内核4.18.0-147.el8.x86_64Mini Installation 安装前的准备工作 切换国内源 由于centos源已经过期,所以切换为阿里云的yum源,第二个是docker的仓库 wget -O /etc/yum.repos.d/CentOS-Base.repo https:…

GNU make笔记

是看跟我一起写makefile做的一点笔记。 编译和链接 在Makefile中定义整个编译流程以及各个目标文件与源文件之间的依赖关系,并且只重新编译新的修改会影响到的部分,从而降低编译的时间。 编译只检查函数、变量是否被声明,并生成.o(Linux)或…