Nginx负载均衡 以及Linux前后端项目部署

news2024/11/28 5:37:17

一、Nginx简介

Nginx是一款高性能的开源Web服务器和反向代理服务器。它由俄罗斯的程序设计师Igor Sysoev创建,旨在解决传统Web服务器的性能限制问题。

Nginx采用事件驱动的架构和异步非阻塞的处理方式,使其能够处理大量并发连接,并具备良好的性能表现。它能够处理静态文件、索引文件以及反向代理等功能,同时也支持HTTP、HTTPS、SMTP、POP3和IMAP等协议。

Nginx的特点包括:

  1. 高性能:Nginx使用异步非阻塞的事件驱动模型,可以更有效地处理并发请求,提供快速响应和高吞吐量。
  2. 轻量级:Nginx的代码量相对较少,占用系统资源少,启动速度快,适合用于低配置的服务器。
  3. 可扩展性:Nginx支持模块化的架构,可以通过第三方模块扩展功能,满足各种需求。
  4. 反向代理:Nginx可以作为反向代理服务器,将客户端的请求转发给后端的多个服务器,并根据配置进行负载均衡,提高系统的稳定性和可靠性。
  5. 高可靠性:Nginx具备优秀的容错能力,可以在大量并发请求中保持稳定的性能。
  6. 简单配置:Nginx的配置文件简洁明了,易于理解和管理。

由于其出色的性能和功能特点,Nginx被广泛应用于各种场景,如静态文件服务、动态Web应用服务、负载均衡、反向代理、缓存加速等。它已经成为互联网架构中重要的组件之一,并得到了全球范围内的广泛使用。

二、Nginx负载均衡

2.1 Nginx的安装

解压服务器中的nginx,我这里之前就下载好了,这里就不做演示了,具体如何将直接下载好的传输到服务器上可以查看我的上一篇文章

在解压后的nginx目录中,下载四个所需要的依赖

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

用于编译和安装 考虑到后续安装ssl证书 添加两个模块 

./configure --with-http_stub_status_module --with-http_ssl_module

make && make install

  1. make:这个命令用于编译软件。它会根据 configure 命令生成的配置文件来构建可执行文件。

  2. make install:这个命令用于安装编译好的软件。它会将生成的可执行文件、配置文件和其他必要的文件复制到相应的目录中,以便你可以使用该软件。

 

进入编译好的nginx目录

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

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

# 启动
./nginx

# 重启
./nginx -s reload

# 关闭
./nginx -s stop

启动 

 

 如何查看nginx是否被启动了呢

下载插件

yum install lsof

执行命令:lsof -i:80

 

在配置负载均衡前我们看一下我们的端口是否被放开,并且开放端口号为我们准备服务器做准备

 开放端口命令:firewall-cmd --zone=public --add-port=80/tcp --permanent
查看端口命令: firewall-cmd --reload && firewall-cmd --list-port

2.2 Nginx配置服务器负载均衡

什么是服务器负载均衡?

以新浪微博为例子,当某个明星除了某些大瓜,微博可能就会因为用户的访问量,请求次数过多而导致服务器崩溃,如果只有一个服务器,那么就会导致整个网站瘫痪,所以为了防止这种情况,我们就可以搭建一个服务器集群,当其中的一个服务器崩溃之后,还有备用服务器可以使用,这样就大大提高了我们网站的稳定性和高并发性,并且Nginx的作用不只这些,在我们更新服务器静态资源时我们如果在服务器集群中一个一个配置过于麻烦,这时我们可以在集群中配置一个静态资源服务器,在更新资源时我们只需要更新静态资源服务器即可

在配置服务器集群之前,我们需要准备两个服务器用来模拟,端口号分别为8081、8082

 这里服务器我已经更改过了,在哪里更改可以查看我的上一篇文章

为了区分,我们在服务器下的webapps/root/index中做个标识

启动两台服务器

接下来我们到编译好的nginx目录下创建服务器集群

记住一定是/usr/local/nginx/conf/nginx.conf

将集群作为放入nginx代理 

重启nginx

nginx -s reload 

访问IP测试

 此时我们可以关闭一台服务器来模拟服务器崩溃

再次访问ip依然可以发现我们的服务器还是可以访问,这就是负载均衡,强大的Nginx 

三、前端项目打包部署

我们已经知道后端maven打包项目的命令了,今天我们来打包前端的项目

在打包项目之前我们要修改两个地方

将项目目录下的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

if (options.extract) {
     return ExtractTextPlugin.extract({
       use: loaders,
       fallback: 'vue-style-loader',
       // 解决icon路径加载错误
       publicPath:'../../'
     })
   } else {
     return ['vue-style-loader'].concat(loaders)
   }

 在本地测试项目后打包 npm run build

 打包后会在项目的目录下生成一个dist目录,将其压缩

在远程服务器中的usr/local目录下创建一个存放前端项目的文件、

将压缩包放入,并且解压

下载解压zip的插件   yum install -y unzip
 解压命令 unzip 解压文件名

 

在编译后的Nginx中更改Nginx配置文件用来导航路由到前端界面,并且重新配置服务器代理用来区分后端请求,因为后端的请求都带了api,所以我们用正则来验证即可

接下来我们来访问前端项目,就会直接访问到前端项目中的主页面

但是此时我们就能用了嘛,也许可以,但是如果有兄弟们的请求是以域名而不是ip为主的话便不行 

四、配置域名与ip的映射关系

有的兄弟们买了域名的,请求的地址就会如下

http://www.zking.com/api/T216_SSH

但是如果没有配置域名和ip的映射关系就会出现如下错误

 这个时候我们就需要在测试项目C:\Windows\System32\drivers\etc\hosts中配置映射关系

centos7中虚拟域名设置
vim /etc/hosts

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

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

相关文章

机房精密空调发生内部设备通信故障不一会压缩机就停止工作,怎么处理?

环境: 山特AT-DA810U 精密空调 问题描述: 机房精密空调发生内部设备通信故障不一会压缩机就停止工作,怎么处理? 回风处不显示温湿度 解决方案: 1.进入诊断模式工程师密码333333 看到压缩机关闭了,强制输出测试一下压缩机正常 2.尝试更换温湿度传感器模块网口,重启…

1985-2022年全国各地级市绿色专利申请和授权数据

1985-2022年全国各地级市绿色专利申请和授权数据 1、时间:1985-2022年 2、指标:年份、地区、行政区划代码、所属省份、所属地域、绿色专利申请总量、绿色专利申请_发明专利、绿色专利申请_实用新型专利、绿色专利授权总量、绿色专利授权_发明专利、绿色…

IT老鸟给开发者升职加薪的小技巧

前言: 升职加薪对大多数人来说都是工作重要动力所在,但总存在“青出于蓝而胜于蓝”,后来人居上的情况。很多人不清楚,自己兢兢业业,任劳任怨,到头来还是得不到领导的重视,身边一起过来的同事都成…

学习笔记|两因素析因设计的方差分析|效应量|统计分析策略|《小白爱上SPSS》课程:SPSS第九讲 | 两因素析因设计的方差分析,超级详细

目录 学习目的软件版本原始文档两因素析因设计的方差分析一、实战案例二、统计策略三、SPSS操作1、正态性检验2、方差分析 四、结果解读Tips:效应量越大越好吗?统计分析策略 五、简单效应操作及结果1、SPSS操作2、结果解读 六、规范报告1、规范表格2、规…

[idea]关于idea开发乱码的配置

在JAVA开发中,一般统一设置为UTF-8的编码,包括但不限于开发工具、日志架构、虚拟机、文件编码等。常见配置如下: 1、IDEA工具 在idea64.exe.vmoptions、idea.exe.vmoptions中添加: -Dfile.encodingUTF-8 2、JAVA 运行在window…

web - 会话技术

文章目录 目录 文章目录 前言 一 . 会话 1.1 会话管理概述 1.2 会话管理实现手段 二 . Cookie 2.1 cookie概述 2.2 cookie的使用 2.3 Cookie的时效性 2.4 Cookie的提交路径 三 . Session 3.1 HttpSession概述 3.2 HttpSession的使用 3.3 HttpSession时效性 四 .…

9.MySQL索引的操作

个人主页:Lei宝啊 愿所有美好如期而遇 目录 索引操作 查询索引 创建主键索引 唯一索引的创建 普通索引的创建 全文索引的创建 删除索引 索引创建原则 索引操作 查询索引 第一种方法: show keys from 表名\G 我们了解其中几个就好。 第二种方法…

主从复制(gtid方式)

基于事务的Replication,就是利用GTID来实现的复制 GTID(全局事务标示符)最初由google实现,在MySQL 5.6中引入.GTID在事务提交时生成,由UUID和事务ID组成.uuid会在第一次启动MySQL时生成,保存在数据目录下的…

自动化测试的一些问题合集

问题1、 ipykernel_launcher.py: error: unrecognized arguments: usage: ipykernel_launcher.py [-h] [--id ID] [--test TEST] [--env ENV] ipykernel_launcher.py: error: unrecognized arguments: --ip127.0.0.1 --stdin9003 --control9001 --hb9000 --Session.signature_…

取消google账户银行卡支付信息Remove google payment method

在Google payment method里面(网址https://payments.google.com/)选择payment methods,然后移除即可。

SortableJS:vuedraggable实现元素拖放排序

文档:https://sortablejs.github.io/Sortable/github:https://github.com/SortableJS/SortableVue2: https://github.com/SortableJS/Vue.DraggableVue3: https://github.com/SortableJS/vue.draggable.nextnpm https://www.npmjs.com/package/vuedragga…

《低代码指南》——维格云机器人常见报错怎么解决?

在使用维格机器人调用维格表的API过程中,可能会出现机器人执行结果未达到预期的情况,此时可能是机器人运行出现了问题;通过点击这个机器人右上角的“运行历史”可以查看运行记录,通过对运行记录的分析,可以推断出问题所在,然后进行修改。 而对于运行历史的分析,主要是针…

Android NDK开发详解之调试和性能分析的ndk-gdb

Android NDK开发详解之调试和性能分析的ndk-gdb 要求用法选项 NDK 包含一个名为 ndk-gdb 的 Shell 脚本,可以启动命令行原生调试会话。偏好使用 GUI 的用户则应阅读在 Android Studio 中调试这篇文档。 要求 要运行命令行原生调试,必须满足以下要求&am…

【网络】网络层讲解

IP协议 前言正式开始IP协议报文第一行报文的封装和分离4位版本8位服务类型 第三行生存时间TTL检验和8位协议 32位源IP和32位目的IP第二行数据分片16位标识3位标志13位片偏移 网段划分网络分段的好处如何进行网络划分老版本的ABCDE新版本的CIDR特殊的IP地址IP地址的数量限制 私有…

2127. 参加会议的最多员工数 (困难,基环内向树,拓扑排序)

思路: 将每个员工作为节点,喜欢的关系作为边,显然是能够组成若干张连通图的,关键就在于如何理解一张图首先要证明:任何一个第一步构成的图必是一个有且仅有一个环的连通图(如下面图片所示,也称…

智能升降压模块

退耦电容 铝电解电容——用较小的成本获得更大的容值,但是等效电阻也大,内部有电解液的 固态电容——聚合物组成,即使失效也不会出现漏液着火等情况 选取时需要考虑精度容值,额定电压大小 一般额定电压要留有1.5倍~2倍的余量&…

生产管理系统流程是什么?

生产管理系统流程是什么? 接下来我就以我们公司正在用的简道云生产管理系统为例,为大家演示生产管理系统的流程 这是我们团队搭建的模板,需要的可以自取,可以直接使用,也可以在模板的基础上自行搭建 生产管理系统模板…

DC系列 DC:2

DC:2 文章目录 DC:2信息收集IP收集网页收集 rbash绕过提权 信息收集 IP收集 使用arp-scan 对网段进行扫描 得到目标机ip之后使用nmap -A -p- -sV -sT 10.4.7.21对该ip进行详细扫描 可以看到该目标机开放着ssh和http服务得到端口7744和80 网页收集 访问网页发现无法访问 …

操作系统 day01(概念和功能)

一. 操作系统的概念 二. 操作系统的功能和目标 作为系统资源的管理者 向上层提供方便易用的服务 操作系统给普通用户使用的接口 GUI/图形化界面联机命令接口/交互式命令接口:用户说一句,系统跟着做一句,如CMD脱机命令接口/批处理命令接口&a…

一个女软件测试工程师3年的坎坷之路

绝大多数测试工程师都是从功能测试做起的,工作忙忙碌碌,每天在各种业务需求学习和点点中度过,过了好多年发现自己还只是一个功能测试工程师。 随着移动互联网的发展,从业人员能力的整体进步,软件测试需要具备的能力要…