Nginx部署多web进程

1、nginx介绍

Nginx是一个高性能的、开源的、跨平台的Web服务器和反向代理服务器。它是由俄罗斯的程序员Igor Sysoev开发的,并于2004年首次公开发布。

Nginx的特点包括:

  1. 高性能:Nginx使用事件驱动的架构,能够处理大量的并发连接,同时保持低的内存消耗。
  2. 轻量级:Nginx的核心占用很小的内存空间,并且可以扩展到更大的服务器集群。
  3. 反向代理和负载均衡:Nginx可以作为反向代理服务器,将请求转发给后端的多个服务器,实现负载均衡和高可用性。
  4. 静态资源处理:Nginx可以直接处理静态文件,如图片、CSS和JavaScript文件,不需要转发给后端应用服务器。
  5. 动态模块扩展:Nginx支持通过动态模块扩展功能,可以添加各种额外的功能,如缓存、日志等。
  6. 可靠性和稳定性:Nginx在设计上考虑到了高可用性和故障恢复,在处理请求时不会中断正在进行的连接。
  7. 跨平台:Nginx可以在多个操作系统平台上运行,包括Linux、Windows、MacOS等。

Nginx被广泛应用于互联网公司、大型网站和应用程序中,它的高性能、稳定性和灵活性使得它成为了一个流行的Web服务器和反向代理服务器。

2、nginx安装及基本命令

2.1.nginx安装命令

  • 对于Ubuntu/Debian系统:

sudo apt update

sudo apt install nginx

  • 对于CentOS/RHEL系统:

sudo yum update

sudo yum install nginx

2.2.nginx基本命令

2.2.1.查看nginx运行状态

sudo systemctl status nginx

 2.2.2.启动nginx

2.2.3.停止nginx

 2.2.4.开机自启nginx

2.2.5.热更新配置

这个功能非常好用,试想一下,在生产环境发生了无法热修复的bug需要重启,我们可以临时屏蔽某个节点,等修完bug重启之后再恢复节点。这种利用“节点切换”实现不停服修复bug ,绝对是一把运维利器

具体命令也非常简单。

sudo systemctl reload nginx

3、部署多节点

3.1.多节点配置

一台服务器不管硬件性能多强悍,程序优化多完善,能承载的访问量终归是有限的。一台服务不够,就部署多几个节点,只要保证节点可水平拓展,数据库也能水平拓展,nginx网关也能水平扩展,就可以轻易部署分布式集群服务。利用多节点部署服务集群,这在特定的业务需求下,是最简易的分布式服务了。

nginx部署多节点也是非常简单。

编辑/etc/nginx/nginx.conf文件,在upstream配置服务器的节点信息,在listen配置对外暴露的http端口。如此,外界通过8080端口发送到nginx的请求都会被分配到对应的服务节点。

http {
        upstream web_service {
                #根据ip进行映射,保证同一个用户所有请求到映射到同一台web服务
                ip_hash;
                server 192.168.0.121:8081;
                server 192.168.0.121:8082;

        }

        server {
                listen 8080;
                location / {
                        proxy_pass http://web_service;
                        proxy_set_header Host $host;
                        proxy_set_header X-Real-IP $remote_addr;
                        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                }
        }
}

如果需要利用“节点切换”进行修复bug,可临时屏蔽以上的某些节点,再通过 reload 命令进行切换。

3.2.负载轮询算法

nginx的负载轮询算法指的是nginx在将请求分发到多个后端服务器时,按照轮询的方式依次将请求分发给每个服务器。主要是负载算法有以下:

  • 轮询(Round Robin):将请求按照轮询的方式依次分发给每个后端服务器。 配置方法:在upstream块中使用"round-robin"。

  • 加权轮询(Weighted Round Robin):为每个后端服务器分配不同的权重,根据权重比例来分发请求。 配置方法:在upstream块中使用"weight"参数设置服务器的权重。

  • IP哈希(IP Hash):根据客户端的IP地址进行哈希计算,将同一个IP的请求发送给同一个后端服务器。 配置方法:在upstream块中使用"ip_hash"。

  • 最少连接(Least Connections):将请求分发给当前连接数最少的后端服务器。 配置方法:在upstream块中使用"least_conn"。

  • 加权最少连接(Weighted Least Connections):根据后端服务器的连接数和权重来分发请求,连接数越多,权重越低。 配置方法:在upstream块中使用"least_conn"和"weight"。

  • 随机(Random):随机选择一个后端服务器处理请求。 配置方法:在upstream块中使用"random"。

本文选择的是IP哈希,具体是因为对于用户请求,会同时涉及到对数据的增删查改,为了保持用户的会话状态,需要将同一个用户的请求映射到同一台物理机。当然,由于ip生成的hash值不具备负载均衡性,可能导致不同节点的请求频率差异很大。严格来说,这种算法不算是负载均衡算法。

如果服务是完全无状态的,或者提供的是静态数据,那最好还是选择其他的负载均衡算法。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

GAT1399协议分析(9)--图像上传

一、官方定义 二、wirechark实例 有前面查询的基础,这个接口相对简单很多。 请求: 文本化: POST /VIID/Images HTTP/1.1 Host: 10.0.201.56:31400 User-Agent: python-requests/2.32.3 Accept-Encoding: gzip, deflate Accept: */* Connection: keep-alive content-type:…

基于睡眠声音评估睡眠质量

随着健康意识的增强,人们越来越关注睡眠质量。确保获得充足的高质量睡眠对于维持身体健康和心理平衡至关重要。专业的睡眠状态测量主要通过多导睡眠图(PSG)进行。然而,PSG会给受试者带来显著的身体负担,并且在没有专业…

Edge浏览器视频画中画可拉动进度条插件Separate Window

平时看一些视频的时候,一般需要编辑一些其他的东西,于是开启画中画,但是画中画没有进度条,需要大幅度的倒退前进得回到原视频,很麻烦。这里推荐插件Separate Window,可实现画中画进度条拉动和播放sudu的调节…

DS:堆的结构与实现

欢迎来到Harper.Lee的学习世界!博主主页传送门:Harper.Lee的博客主页想要一起进步的uu可以来后台找我哦! 一、堆的概念与结构 1.1 堆的概念 堆(Heap)是完全二叉树中的一种,分为大根堆和小根堆。 特点&#…

回归模型的算法性能评价

一、概述 在一般形式的回归问题中,会得到系列的预测值,它们与真实值(ground truth)的比较表征了模型的预测能力,为有效量化这种能力,常见的性能评价指标有平均绝对误差(MAE)、均方误…

【RAG入门教程02】Langchian的Embedding介绍与使用

Embedding介绍 词向量是 NLP 中的一种表示形式,其中词汇表中的单词或短语被映射到实数向量。它们用于捕获高维空间中单词之间的语义和句法相似性。 在词嵌入的背景下,我们可以将单词表示为高维空间中的向量,其中每个维度对应一个特定的特征…

Vatee万腾平台:数字经济时代的智能金融解决方案

在数字经济蓬勃发展的今天,金融行业的智能化、数字化已成为必然趋势。Vatee万腾平台凭借其前瞻性的战略眼光和强大的技术实力,正逐步成为数字经济时代的智能金融解决方案引领者。 Vatee万腾平台以其先进的科技实力为核心,集成了大数据、云计算…

联合体和枚举<C语言>

导言 在C语言中除了结构体外,联合体和枚举也是自定义类型,联合体主要用于节省空间,在同一块内存存储多种类型的数据,而枚举可以提高代码的可读性、可维护性。 联合体(union) 它还有个更容易理解的名字&…

【Java面试】十二、Kafka相关

文章目录 1、Kafka如何保证消息不丢失1.1 生产者发消息到Brocker丢失:设置异步发送1.2 消息在Broker存储时丢失:发送确认机制1.3 消费者从Brocker接收消息丢失1.4 同步 异步组合提交偏移量 2、Kafka如何保证消费的顺序性3、Kafka高可用机制3.1 集群模式…

HTML标签 label for 还是 htmlFor

文章目录 问题结论更多 问题 HTML标签: label 的属性 for 还是 htmlFor? MDN文档:https://developer.mozilla.org/en-US/docs/Web/HTML/Element/label 结论 for 和 htmlFor 都可以使用,都是对的。在部分情况中,只能…

atcoder abc357

A Sanitize Hands 问题&#xff1a; 思路&#xff1a;前缀和&#xff0c;暴力&#xff0c;你想咋做就咋做 代码&#xff1a; #include <iostream>using namespace std;const int N 2e5 10;int n, m; int a[N];int main() {cin >> n >> m;for(int i 1…

SpringBoot之Mybatis-plus实战

文章目录 MybatisPlus 介绍一、MyBatisPlus 集成步骤第一步、引入依赖第二步、定义mapper 二、注解TableNameTableldTableField 加解密实现步骤 在SpringBoot项目中使用Mybatis-plus&#xff0c;记录下来&#xff0c;方便备查。 MybatisPlus 介绍 为简化开发而生&#xff0c;官…

[数据集][图像分类]人种黄种人白人黑人等分类数据集56000张7类别

数据集类型&#xff1a;图像分类用&#xff0c;不可用于目标检测无标注文件 数据集格式&#xff1a;仅仅包含jpg图片&#xff0c;每个类别文件夹下面存放着对应图片 图片数量(jpg文件个数)&#xff1a;56000 分类类别数&#xff1a;7 类别名称:[“Black”,“East_Asian”,“Ind…

关于Redis中哨兵(Sentinel)

Redis Sentinel 相关名词解释 名词 逻辑结构 物理结构 主节点 Redis 主服务 一个独立的 redis-server 进程 从节点 Redis 从服务 一个独立的 redis-server 进程 Redis 数据节点 主从节点 主节点和从节点的进程 哨兵节点 监控 Redis 数据节点的节点 一个独立的 re…

Mysql学习(七)——约束

文章目录 四、约束4.1 概述4.2 约束演示4.3 外键约束 总结 四、约束 4.1 概述 概念&#xff1a;约束是作用于表中字段上的规则&#xff0c;用于限制存储在表中的数据。目的&#xff1a;保证数据库中数据的正确、有效性和完整性。分类&#xff1a; 4.2 约束演示 根据需求&…

发光二极管十大品牌

日常电路设计中&#xff0c;LED是必用的元器件之一&#xff0c;辅助判定电路异常。 十大发光二极管品牌-LED灯珠生产厂家哪家好-LED发光二极管厂家前十-Maigoo品牌榜

【python】OpenCV GUI——Trackbar(14.2)

学习来自 OpenCV基础&#xff08;12&#xff09;OpenCV GUI中的鼠标和滑动条 文章目录 GUI 滑条介绍cv2.createTrackbar 介绍牛刀小试 GUI 滑条介绍 GUI滑动条是一种直观且快速的调节控件&#xff0c;主要用于改变一个数值或相对值。以下是关于GUI滑动条的详细介绍&#xff1a…

[个人感悟] Java基础问题应该考察哪些问题?

前言 “一切代码无非是数据结构和算法流程的结合体.” 忘了最初是在何处看见这句话了, 这句话, 对于Java基础的考察也是一样. 正如这句话所说, 我们对于基础的考察主要考察, 数据结构, 集合类型结构, 异常类型, 已经代码的调用和语法关键字. 其中数据结构和集合类型结构是重点…

PowerDesigner遍历导出所有表结构到Excel

PowerDesigner遍历导出所有表到Excel 1.打开需要导出表结构到Excel的pdm文件 2.点击Tools|Execute Commands|Edit/Run Script菜单或按下快捷键Ctrl Shift X打开脚本窗口&#xff0c;输入示例VBScript脚本&#xff0c;修改其中的Excel模板路径及工作薄页签&#xff0c;点Run…

[数据集][图像分类]人种黄种人白人黑人分类数据集970张4类别

数据集类型&#xff1a;图像分类用&#xff0c;不可用于目标检测无标注文件 数据集格式&#xff1a;仅仅包含jpg图片&#xff0c;每个类别文件夹下面存放着对应图片 图片数量(jpg文件个数)&#xff1a;970 分类类别数&#xff1a;4 类别名称:[“Asian”,“Caucasian”,“Indian…