nginx负载均衡详解(轮询、权重、负载均衡)

 更新时间:2026年03月02日 10:38:39   作者:一恍过去  
Nginx是一个高性能的开源Web服务器和反向代理服务器,主要用于高性能的高性能的Web服务器和反向代理服务器,它以其卓越的性能、可扩展性和稳定性而闻名

前言

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

Nginx以其卓越的性能、可扩展性和稳定性而闻名,并被广泛用于构建和部署Web应用程序。

Nginx有以下特点和功能:

  • 1. 高性能: Nginx采用了事件驱动的异步架构,通过使用较少的系统资源即可处理大量的并发连接。它能够处理高流量的请求,并以高速度响应客户端。
  • 2. 反向代理: Nginx作为反向代理服务器,可以将客户端的请求转发到后端服务器,并将响应返回给客户端。它可以实现负载均衡、缓存、SSL终端和安全等功能。
  • 3. 静态资源服务: Nginx可以高效地提供静态文件(如HTML、CSS、JavaScript、图像、视频等)的下载服务。它可以通过简单的配置实现快速的文件传输和目录索引。
  • 4. 动态内容支持: Nginx可以通过与后端应用服务器(如PHP、Python、Java等)的集成,处理动态生成的内容,并将其传递给客户端。
  • 5. 可扩展性: Nginx的模块化结构使其易于扩展和定制。它支持第三方模块的添加,以满足特定的需求和功能扩展。
  • 6. 简单的配置: Nginx的配置文件采用简洁而灵活的语法,易于理解和管理。它具有清晰的结构,使得对服务器行为的控制和调整变得简单。
  • 7. 高可靠性: Nginx具有出色的稳定性和鲁棒性。它可以处理大规模的并发连接和高负载,并具备故障恢复和自动重启等功能。

Nginx是一个高性能的开源Web服务器和反向代理服务器,它也可以用作负载均衡器。Nginx的负载均衡功能允许将传入的请求分发到多个后端服务器,以提高系统的性能、可靠性和可扩展性。

通过使用Nginx作为负载均衡器,可以将请求有效地分发到多个后端服务器,提高系统的性能和可用性。它可以平衡服务器的负载、提供故障恢复能力,并允许动态添加或删除后端服务器,实现系统的弹性扩展。

1、负载均衡类型

Nginx负载均衡器支持以下三种负载均衡算法:

  • 轮询(Round Robin): 默认情况下,Nginx使用轮询算法将每个请求依次分配给后端服务器。它按照服务器列表的顺序依次分发请求,确保每个后端服务器都能平均接收到请求。
  • 权重(Weighted Round Robin): 在轮询算法的基础上,Nginx负载均衡器支持设置服务器的权重。通过给服务器分配不同的权重值,可以实现按比例分配负载的效果。具有更高权重值的服务器将接收到更多的请求。
  • 负载均衡(Least Connections): 负载均衡算法根据服务器的当前连接数来决定请求的分发。它将请求发送到当前连接数最少的服务器,以确保请求分布得更加均衡。这种算法适用于处理长连接或有状态会话的情况。

2、配置负载均衡

2.1、默认配置(轮询)

			upstream demo-proxy {
				#默认为轮询
				server 39.106.136.224:10008 ;
				server 39.106.136.224:10009 ;
			}

			server {
			.....
			location /demo {
				proxy_pass         http://demo-proxy;
				port_in_redirect   on;
				proxy_redirect     off;
				proxy_set_header   Host             $host;
				proxy_set_header   X-Real-IP        $remote_addr;
				proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
				proxy_set_header   Upgrade $http_upgrade;
				proxy_set_header   Connection "upgrade";
				}
			}

2.2、权重

			upstream demo-proxy {
				#设置权重
				server 39.106.136.224:10008 weight=2;
				server 39.106.136.224:10009  weight=1;
			}
			
			server {
			.....
			location /demo {
				proxy_pass         http://demo-proxy;
				port_in_redirect   on;
				proxy_redirect     off;
				proxy_set_header   Host             $host;
				proxy_set_header   X-Real-IP        $remote_addr;
				proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
				proxy_set_header   Upgrade $http_upgrade;
				proxy_set_header   Connection "upgrade";
				}
			}

2.3、ip_hash

			upstream demo-proxy {
				#ip_hash类型 
				ip_hash;
				server 39.106.136.224:10009 ;
				server 39.106.136.224:10008 ;
			}
			
			server {
			.....
			location /demo {
				proxy_pass         http://demo-proxy;
				port_in_redirect   on;
				proxy_redirect     off;
				proxy_set_header   Host             $host;
				proxy_set_header   X-Real-IP        $remote_addr;
				proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
				proxy_set_header   Upgrade $http_upgrade;
				proxy_set_header   Connection "upgrade";
				}
			}

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • nginx搭建高可用集群的实现方法

    nginx搭建高可用集群的实现方法

    本文主要介绍了nginx搭建高可用集群的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-01-01
  • 在ubuntu下为nginx配置支持cgi脚本的方案

    在ubuntu下为nginx配置支持cgi脚本的方案

    本文的需求:让nginx能够解析.cgi后缀的文件,相信会特意看这篇文章的人对CGI是什么及其作用已经有了足够的了解,所以在这里不再赘述,直接开始配置。
    2017-02-02
  • Nginx正向代理与反向代理及配置文件全解析

    Nginx正向代理与反向代理及配置文件全解析

    Nginx是一款高性能的开源Web服务器和反向代理服务器,广泛应用于高并发场景,如静态资源托管、负载均衡、API网关等,本文给大家介绍Nginx正向代理与反向代理及配置文件全解析,感兴趣的朋友一起看看吧
    2025-05-05
  • nginx中指令root与alias举例说明

    nginx中指令root与alias举例说明

    在Nginx配置中,root和alias都是用于指定请求对应的文件系统路径的指令,但它们的工作方式有显著区别,这篇文章主要介绍了nginx中指令root与alias的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-11-11
  • 详解Nginx与Apache共用80端口的配置方法

    详解Nginx与Apache共用80端口的配置方法

    这篇文章主要介绍了Nginx与Apache共用80端口的配置方法,当然如果想Nginx不与Apache抢80端口的话,本文后面也附带了Nginx的端口修改方法,需要的朋友可以参考下
    2016-01-01
  • Nginx内网单机反向代理的实现

    Nginx内网单机反向代理的实现

    本文主要介绍了Nginx内网单机反向代理的实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11
  • Nginx优化设计方案小结

    Nginx优化设计方案小结

    本文主要介绍了Nginx优化设计方案小结,帮助大家在nginx的使用和优化中提供一个参考的方向,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-05-05
  • Nginx可视化管理软件(Nginx Proxy Manager)的使用

    Nginx可视化管理软件(Nginx Proxy Manager)的使用

    Nginx Proxy Manager是一款开源的Nginx可视化管理界面,本文就来介绍一下Nginx Proxy Manager的使用,感兴趣的可以了解一下
    2024-03-03
  • Windows下用Nginx配置https服务器及反向代理的问题

    Windows下用Nginx配置https服务器及反向代理的问题

    这篇文章主要介绍了Windows下用Nginx配置https服务器及反向代理的问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-09-09
  • nginx上设置html不缓存的方法实现

    nginx上设置html不缓存的方法实现

    前端项目发布以后,经常会遇到访问不到最新的版本,这主要是由于我们项目的入口文件index.html被浏览器或者代理缓存了,本文主要介绍了nginx上设置html不缓存,具有一定的参考价值,感兴趣的可以了解一下
    2024-02-02

最新评论