【Linux】Nignx及负载均衡动静分离

🎉🎉欢迎来到我的CSDN主页!🎉🎉

🏅我是Java方文山,一个在CSDN分享笔记的博主。📚📚

🌟推荐给大家我的专栏《微信小程序开发实战》。🎯🎯

👉点击这里,就可以查看我的主页啦!👇👇

Java方文山的个人主页

🎁如果感觉还不错的话请给我点赞吧!🎁🎁

💖期待你的加入,一起学习,一起进步!💖💖

请添加图片描述

目录

一、Nignx的简介

二、Nignx负载均衡

2.1.安装Nignx

2.1.1.下载并解压安装包

2.1.2.一键安装4个依赖

2.1.3.安装nginx

2.1.4.启动 nginx 服务

2.1.5.设置防火墙开放 80 端口

2.2.准备2个tomcat

2.3.Nginx配置

2.4.部署项目

2.4.1.上传项目war包

2.4.2.启动Tomcat

三、前端项目Linux部署(动静分离)

3.1.上传前端项目

3.2.解压前端

3.3.Nginxp配置

3.4.重启Nginx

3.5.加映射关系


一、Nginx的简介

Nginx是一个高性能的开源Web服务器和反向代理服务器,也可以用作负载均衡器、HTTP缓存、邮件代理(IMAP/POP3)等。它最初由俄罗斯的工程师Igor Sysoev开发,并于2004年首次公开发布。

Nginx因其简洁、高效和可靠的特点而备受欢迎。相比传统的Apache服务器,Nginx使用更少的系统资源,可以处理更多的并发连接。它采用事件驱动的异步架构,能够有效地处理高并发请求和大量的并行连接。

Nginx的主要特点包括:

  1. 高性能:Nginx采用了非阻塞的事件驱动模型,在同等硬件条件下能够处理更多的并发连接,具有出色的性能表现。

  2. 轻量级:Nginx的代码精简,内存占用较少,启动速度快,适用于资源受限的环境。

  3. 反向代理:Nginx可以作为反向代理服务器,接收客户端请求并将其转发给后端服务器,实现负载均衡和提高网站性能。

  4. 静态文件服务:Nginx可以快速、可靠地提供静态文件的访问服务,减轻后端应用服务器的负载。

  5. 动态内容处理:Nginx提供了强大的模块化架构,可以与各种后端应用服务器(如PHP、Python、Node.js)集成,处理动态内容的访问请求。

  6. 高可靠性:Nginx具备高度稳定性和可靠性,在大规模的互联网应用中被广泛使用。

二、Nginx负载均衡

2.1.安装Nginx

2.1.1.下载并解压安装包

wget http://nginx.org/download/nginx-1.13.7.tar.gz
tar -xvf nginx-1.13.7.tar.gz

2.1.2.一键安装4个依赖

yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel

2.1.3.安装nginx

# 进入安装包目录
cd nginx-1.13.7# 编译,执行配置: 考虑到后续安装ssl证书 添加两个模块
./configure --with-http_stub_status_module --with-http_ssl_module# 安装
make && make install

2.1.4.启动 nginx 服务

安装好的 nginx 服务在 /usr/local/nginx 下

进入 /usr/local/nginx/sbin 目录下启动:
# 启动
./nginx# 重启
./nginx -s reload# 关闭
./nginx -s stop# 或者,指定配置文件启动
./nginx -c /usr/local/nginx/conf/nginx.conf

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

#下载插件
yum install lsof

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

2.1.5.设置防火墙开放 80 端口

firewall-cmd --zone=public --add-port=80/tcp --permanentfirewall-cmd --reload && firewall-cmd --list-port

能出现一下内容就说明是正常开启Nignx了

 2.2.准备2个tomcat

首先需要多开几个端口号供我们Tomcat使用,我这里准备了8080、8081、8082

cp -r apache-tomcat-8.5.20/ apache-tomcat-8.5.20_8081/


#第2个修改的配置如下
1. HTTP端口,默认8080,如下改为8081
2.远程停服务端口,默认8005,如下改为8006
3.AJP端口,默认8009,如下改,8010

这样8081和8080都有了并且可以启动没有问题!!

2.3.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=2; #服务器2   weight是权重的意思,权重越大,分配的概率越大}

# 重启nginx
./nginx -s reload

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

2.4.部署项目

2.4.1.上传项目war包

将我们项目的war包放入两个服务器中

2.4.2.启动Tomcat

http://192.168.37.129:8080/T216_SSH/vue/treeNodeAction.action

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

三、前端项目Linux部署(动静分离)

首先需要找到一个没有问题的前后端分离的项目

前端使用npm run build进行打包;后端使用Maven构建Java项目mvn clean package

前端项目打包还有两个需要注意的地方:

hbuilderX打包vue项目白屏问题
将项目目录下的config文件夹里的index.js文件中,将build对象下的assetsPublicPath中的“/”,改为“./”后,再打包生成的 dist 文件
build: {
    // assetsPublicPath: '/',//修改前
    assetsPublicPath: './',//修改后
}

hbuilderX打包vue项目,element-ui的icon图标无法正常显示问题
问题:使用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
if (options.extract) {
     return ExtractTextPlugin.extract({
       use: loaders,
       fallback: 'vue-style-loader',
       // 解决icon路径加载错误
       publicPath:'../../'
     })
   } else {
     return ['vue-style-loader'].concat(loaders)
   }

3.1.上传前端项目

先在/usr/local/下创建一个文件夹名为mypro

3.2.解压前端

yum install -y unzip
unzip blog.zip

3.3.Nginxp配置

       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/;}

3.4.重启Nginx

进入到/usr/local/nginx/sbin中重启Nginx

这时候我们的效果就来了

3.5.加映射关系

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

因为这里需要的是www.zking.com,我们加的时候就写这个。

这样我们就可以进入了

请添加图片描述

到这里我的分享就结束了,欢迎到评论区探讨交流!!

💖如果觉得有用的话还请点个赞吧 💖

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

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

相关文章

系列四、全局配置文件mybatis-config.xml

一、全局配置文件中的属性 mybatis全局配置中的文件非常多,主要有如下几个: properties(属性)settings(全局配置参数)typeAliases(类型别名)typeHandlers(类型处理器&am…

服务上千家企业,矩阵通2.0重磅上线,全链路管理新媒体矩阵

自上线以来 矩阵通已服务了上千家企业级客户 覆盖汽车、家居、媒体、金融、教育等多个行业 矩阵通1.0时代 我们以“数据”为基座打造出10功能 帮助企业轻松管理新媒体矩阵 实现账号管理、数据分析、竞对监测、 人员考核、风险监管等需求 而现在 矩阵通2.0重磅上线 新增…

华纳云:centos系统中怎么查看cpu信息?

在CentOS系统中,我们可以使用一些命令来查看CPU的详细信息。下面介绍几个常用的命令: 1. lscpu lscpu命令可以显示CPU的架构、型号、核心数、线程数、频率等信息。 # lscpu 执行以上命令后,会输出类似以下内容: 2. cat /proc/…

配置OpenCV

Open CV中包含很多图像处理的算法,因此学会正确使用Open CV也是人脸识别研究的一项重要工作。在 VS2017中应用Open CV,需要进行手动配置,下面给出在VS2017中配置Open CV的详细步骤。 1.下载并安装OpenCV3.4.1与VS2017的软件。 2.配置Open CV环…

07、vue : 无法加载文件 C:\Users\JH\AppData\Roaming\npm\vue.ps1,因为在此系统上禁止运行脚本。

目录 问题解决: 问题 vue : 无法加载文件 C:\Users\JH\AppData\Roaming\npm\vue.ps1,因为在此系统上禁止运行脚本。 在使用 VSCode 时,创建 Vue 项目报的错 创建不了 Vue 项目 解决: 因为在此系统上禁止运行该脚本&#xff0…

【排序算法】 计数排序(非比较排序)详解!了解哈希思想!

🎥 屿小夏 : 个人主页 🔥个人专栏 : 算法—排序篇 🌄 莫道桑榆晚,为霞尚满天! 文章目录 📑前言🌤️计数排序的概念☁️什么是计数排序?☁️计数排序思想⭐绝对…

四川天蝶电子商务有限公司:短视频运营怎么样?

短视频是一种以短小精悍的内容来吸引用户的新型媒体形式,近年来在社交网络平台上迅速走红,成为当今互联网世界的新宠。然而,要想成功运营短视频,需要借助一系列的策略和技巧,通过精心的规划和执行,才能够吸…

后端开发基本步骤(未完成继续写中)

1.使用spring initializr创建项目 注意&#xff1a;然后低下提供的依赖可用可不用&#xff0c;先不用&#xff0c;后边Maven统一配置依赖&#xff0c; 2.导入依赖 <!-- web --> <dependency><groupId>org.springframework.boot</groupId><artifa…

使用IO完成端口实现简单回显服务器

说明 使用IO完成端口实现简单回显服务器&#xff0c;因为是测试用的&#xff0c;所以代码很粗糙。 提醒 使用的是ReadFile、WriteFile来实现Overlapped IO&#xff0c;正式场合应该用WSARecv、WSASend&#xff0c;原因&#xff1a;来自《Windows网络编程技术》 8.2.5节 在这里…

使用Docker搭建一个“一主两从”的 Redis 集群(超详细步骤)

目录 1、Redis 单机版安装1.1 拉取 Redis1.2 创建数据卷目录1.3 修改 redis.conf1.4 启动 Redis 容器1.5 进入容器连接 Redis 2、Redis 一主两从集群搭建2.1 复制三份 redis.conf2.2 启动 master2.3 启动 两个redis slave2.4 三者关系查看2.5 数据测试 1、Redis 单机版安装 1.…

uniapp生命周期

uniapp生命周期包括应用生命周期、页面生命周期和组件生命周期&#xff1b; 1、应用生命周期 app.vue/uvue是uni-app的朱组件。所有页面都是在app.vue下进行切换&#xff0c;是应用入口文件。但app.vue本身不是页面&#xff0c;这里补鞥编写视图元素&#xff0c;也就没有。 这…

Recommender System复习(考试向)

Recommender System Review OverviewCollaborative Filtering基于用户的CF&#xff08;User CF&#xff09;基于物品的CF&#xff08;Item CF&#xff09;Similarity CalculationBias in CF Evaluation of Recommender SystemFactorization MachinesLatent factor modelLFM算法…

Day 5 登录页及路由 (三) 基于axios的API调用

系列文章目录 本系列记录一下通过Abp搭建后端&#xff0c;VueElement UI Plus搭建前端&#xff0c;实现一个小型项目的过程。 Day 1 Vue 页面框架Day 2 Abp框架下&#xff0c;MySQL数据迁移时&#xff0c;添加表和字段注释Day 3 登录页以及路由 (一&#xff09;Day 4 登录页以…

为什么树莓派安装Ubuntu的时候无法通过有线(网线)连网

这个东西从软件角度有很多解释&#xff0c;但是我这里遇到的情况是&#xff1a; 因为一个标注2A但是实际电流虚标的充电头浪费了我2天的时间。 也即是说&#xff1a;如果你的树莓派无法通过网线联网&#xff0c;很有可能是因为供电不足。因为一个新的树莓派一般不会有故障&am…

XUbuntu22.04之解决桌面突然放大,屏幕跟着鼠标移动问题(一百九十)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…

瑞禧生物分享纳米粉体~二硫化钼粉体 MoS2 纯度:99% 纳米二硫化钼(MoS2)

二硫化钼粉体 名称&#xff1a;二硫化钼粉体 纯度&#xff1a;99% 外观&#xff1a;粉末 纳米二硫化钼(MoS2)粉体硫化钼粉体 二硫化铝化学性质稳定、热稳定性好 、摩擦系数低 、润滑作用优 良且在较为苛 刻的工作环境下能保持 良好的摩擦性能因此二硫化铝被广泛应用于固体润…

拓扑排序--C++实现

1. 定义 前置知识 DAG: Directed Acyclic Graph 有向无环图拓扑序&#xff1a; 像先修课程一样&#xff0c;即任意课程的前置课程都在其前面。 举个例子 在这个图中&#xff0c;1234或者1324是拓扑序。而其他的序列不是&#xff0c;即在一个节点出现之前他的所有祖先节点需…

OSPF复习(2)

目录 一、LSA的头部 二、6种类型的LSA&#xff08;课堂演示&#xff09; 1、type1-LSA&#xff1a;----重要且复杂 2、type2-LSA&#xff1a; 3、type3-LSA&#xff1a; 4、type4-LSA&#xff1a; 5、type5-LSA&#xff1a; 6、type7-LSA&#xff1a; 三、OSPF的网络类…

CSS3媒体查询与页面自适应

2017年9月&#xff0c;W3C发布媒体查询(Media Query Level 4)候选推荐标准规范&#xff0c;它扩展了已经发布的媒体查询的功能。该规范用于CSS的media规则&#xff0c;可以为文档设定特定条件的样式&#xff0c;也可以用于HTML、JavaScript等语言。 1、媒体查询基础 媒体查询…

windows docker desktop 更换镜像 加速

最近 docker hub 访问不了; 经过研究 可以通过添加 代理镜像网址 添加代理服务器的方式 实现完美访问 1添加镜像网站 修改成国内镜像地址就能享受到飞一般的速度&#xff0c;但有一个问题&#xff0c;部分站点镜像不全或者镜像比较老&#xff0c;建议使用多个镜像站。 https…