返回顶部
首页 > 资讯 > 服务器 >使用nginx进行负载均衡的搭建全过程
  • 848
分享到

使用nginx进行负载均衡的搭建全过程

2024-04-02 19:04:59 848人浏览 独家记忆
摘要

目录1. Nginx负载均衡介绍2. nginx负载均衡策略2.1 轮询2.1.1 普通轮询方式2.1.2 权重轮询方式2.2 最少连接2.3 ip hash3. nginx负载均衡

1. nginx负载均衡介绍

nginx应用场景之一就是负载均衡。在访问量较多的时候,可以通过负载均衡,将多个请求分摊到多台服务器上,相当于把一台服务器需要承担的负载量交给多台服务器处理,进而提高系统的吞吐率;另外如果其中某一台服务器挂掉,其他服务器还可以正常提供服务,以此来提高系统的可伸缩性与可靠性。

下图为负载均衡示例图,当用户请求发送后,首先发送到负载均衡服务器,而后由负载均衡服务器根据配置规则将请求转发到不同的WEB服务器上。

image-20220430184503049

2. nginx负载均衡策略

以下截图为nginx官网文档

image-20220430184551926

nginx内置负载均衡策略主要分为三大类,分别是轮询、最少连接和ip hash

  • 最少连接

请求分配给活动连接数最少的服务器,哪台服务器连接数最少,则把请求交给哪台服务器,由nginx统计服务器连接数

  • ip hash

基于客户端ip的分配方式

2.1 轮询

以循环方式分发对应用服务器的请求,将请求平均分发到每台服务器上。

2.1.1 普通轮询方式

该方式是默认方式,轮询适合服务器配置相当,无状态且短平快的服务使用。另外在轮询中,如果服务器挂掉,会自动剔除该服务器。

Http {
    # 定义转发分配规则
    upstream myapp1 {
        server srv1.com; # 要转发到的服务器,如ip、ip:端口号、域名、域名:端口号
        server srv2.com:8088;
        server 192.168.0.100:8088;
    }

    server {
        listen 80; # nginx监听的端口

        location / {
        	# 使用myapp1分配规则,即刚自定义添加的upstream节点
        	# 将所有请求转发到myapp1服务器组中配置的某一台服务器上
            proxy_pass http://myapp1; 
        }
    }
}

2.1.2 权重轮询方式

如果在 upstream 中配置的server参数后追加 weight 配置,则会根据配置的权重进行请求分发。此策略可以与least_conn和ip_hash结合使用,适合服务器的硬件配置差别比较大的情况。

# 定义转发分配规则
upstream myapp1 {
	server srv1.com weight=1; # 该台服务器接受1/6的请求量
	server srv2.com:8088 weight=2; # 该台服务器接受2/6的请求量
	server 192.168.0.100:8088 weight=3; # 该台服务器接受3/6的请求量;
}

2.2 最少连接

轮询算法是把请求平均的转发给各个后端,使它们的负载大致相同;但是,有些请求占用的时间很长,会导致其所在的后端负载较高。这种情况下,least_conn这种方式就可以达到更好的负载均衡效果,适合请求处理时间长短不一造成服务器过载的情况。

# 定义转发分配规则
upstream myapp1 {
	least_conn; # 把请求分派给连接数最少的服务器
	server srv1.com;
	server srv2.com:8088;
	server 192.168.0.100:8088;
}

2.3 ip hash

这个方法确保了相同的客户端的请求一直发送到相同的服务器,这样每个访客都固定访问一个后端服务器。如用户需要分片上传文件到服务器下,然后再由服务器将分片合并,这时如果用户的请求到达了不同的服务器,那么分片将存储于不同的服务器目录中,导致无法将分片合并,该场景则需要使用ip hash策略。

需要注意的是,ip_hash不能与backup同时使用,另外当有服务器需要剔除,必须手动down掉,此模式适合有状态服务,比如session。

# 定义转发分配规则
upstream myapp1 {
	ip_hash; # #保证每个请求固定访问一个后端服务器
	server srv1.com;
	server srv2.com:8088;
	server 192.168.0.100:8088;
}

3. nginx负载均衡搭建示例

该示例使用一台nginx作为负载均衡服务器,两台tomcat作为web服务器;可以把三个服务均在一台机器进行搭建,也可以使用虚拟机虚拟三台机器,然后进行测试教程这里就只在一台机器进行搭建,采用默认的权重方式进行配置。

3.1 tomcat配置

将两台tomcat解压出来,配置完毕相应的端口,然后在webapps目录下创建test目录,然后在test目录中创建index.html文件,随便写入一些内容,两台tomcat中test目录下的index.html文件内容要区分开来,例如写入1111111 / 222222222,如下图所示。

image-20220430190133097

image-20220430190139573

3.2 nginx配置

首先进行nginx的安装,安装教程可以参考

https://www.jb51.net/article/231249.htm

安装完毕后,进入nginx目录下的conf目录,编辑 nginx.conf 文件,修改内容为在http节点下增加

upstream tomcat { # 该部分内容与 server 节点同级
	server tomcat服务的ip:tomcat服务的端口号;
	server tomcat服务的ip:tomcat服务的端口号;
}

server节点下的location /节点中,把默认的

location / {
	root   html;
	index  index.html index.htm;
}

修改为

location / {
	proxy_pass http://tomcat;
}

然后启动 两台tomcat与nginx服务,在浏览器输入nginx服务的地址:端口,不停刷新页面,就可以看到每次请求的服务器发生了改变。

总结

到此这篇关于使用nginx进行负载均衡的文章就介绍到这了,更多相关nginx负载均衡内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 使用nginx进行负载均衡的搭建全过程

本文链接: https://lsjlt.com/news/165973.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 使用nginx进行负载均衡的搭建全过程
    目录1. nginx负载均衡介绍2. nginx负载均衡策略2.1 轮询2.1.1 普通轮询方式2.1.2 权重轮询方式2.2 最少连接2.3 ip hash3. nginx负载均衡...
    99+
    2024-04-02
  • 使用Nginx+Tomcat实现负载均衡的全过程
    目录1. 环境2. 安装2.1 安装 Nginx2.2 安装 Java2.3 安装 Tomcat3. 部署3.1 Tomcat 服务器部署3.2 Nginx 反向代理4. 负载均衡4...
    99+
    2024-04-02
  • 如何使用nginx进行负载均衡
    要使用Nginx进行负载均衡,您需要按照以下步骤操作:1. 安装Nginx:首先确保您的服务器上已经安装了Nginx。根据您的操作系...
    99+
    2023-08-15
    nginx
  • 使用Docker和Nginx进行负载均衡
    要使用Docker和Nginx进行负载均衡,可以按照以下步骤操作: 创建一个Nginx配置文件,用于配置负载均衡器。例如,创建一个...
    99+
    2024-04-25
    Docker
  • nginx负载均衡与SLB怎么搭建
    要搭建Nginx负载均衡,可以按照以下步骤进行操作:1. 安装Nginx:首先,在服务器上安装Nginx软件。具体安装方法和命令依赖...
    99+
    2023-09-01
    nginx 负载均衡
  • JavaWeb 使用nginx负载均衡
    要使用nginx负载均衡JavaWeb应用程序,可以按照以下步骤进行操作:1. 安装和配置nginx:首先,需要在服务器上安装ngi...
    99+
    2023-09-21
    JavaWeb
  • nginx负载均衡搭建的方法是什么
    搭建nginx负载均衡的方法如下:1. 安装nginx:使用apt-get或yum等包管理工具安装nginx。2. 配置nginx:...
    99+
    2023-06-06
    负载均衡搭建 负载均衡
  • linux下nginx负载均衡搭建的方法步骤
    首先先了解下负载均衡,假设一个场景,如果有1000个客户同时访问你服务器时,而你只有一台服务器的Nginx,且只有一个mysql服务器,那么这些请求 可能会高出你的的服务器承受能力,就会down掉; 解决方法: 1.垂直...
    99+
    2022-06-04
    linux nginx负载均衡 nginx 负载均衡
  • 如何使用nginx和tomcat实现负载均衡环境搭建
    这篇文章主要为大家展示了“如何使用nginx和tomcat实现负载均衡环境搭建”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用nginx和tomcat实现负载均衡环境搭建”这篇文章吧。JD...
    99+
    2023-06-02
  • 如何搭建Nginx服务器做到负载均衡
    要搭建Nginx服务器实现负载均衡,可以按照以下步骤进行操作:1. 安装Nginx:首先需要在服务器上安装Nginx。具体的安装方式...
    99+
    2023-09-22
    Nginx
  • Linux环境搭建Nginx和Tomcat负载均衡集群
    本篇内容介绍了“Linux环境搭建Nginx和Tomcat负载均衡集群”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Tomcat服务器是一个...
    99+
    2023-06-04
  • 怎么搭建Keepalived+Nginx+Tomcat高可用负载均衡架构
    这篇文章将为大家详细讲解有关怎么搭建Keepalived+Nginx+Tomcat高可用负载均衡架构,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Nginx的高可用负载均衡架构如下图:为典型的Tomcat...
    99+
    2023-06-02
  • Linux上搭载Nginx负载均衡配置使用案例详解
    目录1,这里我们来说下很重要的负载均衡, 那么什么是负载均衡呢2, 负载均衡的种类3, 这里我们只来说Nginx(其他的大家有兴趣可以自行查阅相关文档)4, 创建两台Nginx服务器5, 搭建Nginx搭建Keepali...
    99+
    2022-06-04
    linux搭载Nginx负载均衡 linux Nginx负载均衡
  • 怎样进行nginx部署基于http的负载均衡器
    怎样进行nginx部署基于http的负载均衡器,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。nginx跨多个应用程序实例的负载平衡是一种用于优化资源利用率,最大...
    99+
    2023-06-05
  • 如何使用Nginx+Tomcat实现负载均衡
    这篇“如何使用Nginx+Tomcat实现负载均衡”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“如何使用Nginx+Tomc...
    99+
    2023-06-30
  • HAProxy+mongos搭建高可用负载均衡mongodb
     在生产环境中,搭建的mongodb分片,提供了三个mongos接口。但mongodb中没有failover机制,官方建议是将mongos和应用服务器部署在一起,多个应用服务器就要部署多个mong...
    99+
    2024-04-02
  • k8s使用ingress-nginx负载均衡的示例分析
    本篇文章给大家分享的是有关k8s使用ingress-nginx负载均衡的示例分析,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。ingress-nginx负载均衡调用顺序:用户-...
    99+
    2023-06-04
  • 怎么使用Docker和Nginx实现负载均衡
    要使用Docker和Nginx实现负载均衡,可以按照以下步骤操作: 在Docker中创建多个应用实例,每个实例都运行相同的应用程...
    99+
    2024-04-19
    Docker Nginx
  • 应用服务器负载均衡怎么搭建
    要搭建应用服务器的负载均衡,可以按照以下步骤进行:1. 选择负载均衡策略:根据需求选择适合的负载均衡策略,常见的有轮询、加权轮询、最...
    99+
    2023-09-07
    负载均衡 服务器
  • 如何使用Netdata进行系统的负载均衡监控
    Netdata是一个开源的实时性能监控工具,可以帮助您监控系统的负载均衡。以下是使用Netdata进行系统负载均衡监控的步骤: ...
    99+
    2024-04-24
    Netdata
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作