Nginx负载均衡的4种方案配置实例

 更新时间:2015年01月29日 13:27:16   投稿:junjie  
这篇文章主要介绍了Nginx负载均衡的4种方案配置实例,本文讲解了轮询、最少连接、IP地址哈希、基于权重的负载均衡等内容,需要的朋友可以参考下

1、轮询

轮询即Round Robin,根据Nginx配置文件中的顺序,依次把客户端的Web请求分发到不同的后端服务器。
配置的例子如下:

http{ 
 upstream sampleapp { 
   server <<dns entry or IP Address(optional with port)>>; 
   server <<another dns entry or IP Address(optional with port)>>; 
 } 
 .... 
 server{ 
   listen 80; 
   ... 
   location / { 
    proxy_pass http://sampleapp; 
   }  
 } 

上面只有1个DNS入口被插入到upstream节,即sampleapp,同样也在后面的proxy_pass节重新提到。

2、最少连接

Web请求会被转发到连接数最少的服务器上。
配置的例子如下:

http{ 
  upstream sampleapp { 
    least_conn; 
    server <<dns entry or IP Address(optional with port)>>; 
    server <<another dns entry or IP Address(optional with port)>>; 
  } 
  .... 
  server{ 
    listen 80; 
    ... 
    location / { 
     proxy_pass http://sampleapp; 
    }  
  } 

上面的例子只是在upstream节添加了least_conn配置。其它的配置同轮询配置。

3、IP地址哈希

前述的两种负载均衡方案中,同一客户端连续的Web请求可能会被分发到不同的后端服务器进行处理,因此如果涉及到会话Session,那么会话会比较复杂。常见的是基于数据库的会话持久化。要克服上面的难题,可以使用基于IP地址哈希的负载均衡方案。这样的话,同一客户端连续的Web请求都会被分发到同一服务器进行处理。
配置的例子如下:

http{ 
  upstream sampleapp { 
    ip_hash; 
    server <<dns entry or IP Address(optional with port)>>; 
    server <<another dns entry or IP Address(optional with port)>>; 
  } 
  .... 
  server{ 
    listen 80; 
    ... 
    location / { 
     proxy_pass http://sampleapp; 
    }  
  } 

上面的例子只是在upstream节添加了ip_hash配置。其它的配置同轮询配置。

4、基于权重的负载均衡

基于权重的负载均衡即Weighted Load Balancing,这种方式下,我们可以配置Nginx把请求更多地分发到高配置的后端服务器上,把相对较少的请求分发到低配服务器。
配置的例子如下:

http{ 
  upstream sampleapp { 
    server <<dns entry or IP Address(optional with port)>> weight=2; 
    server <<another dns entry or IP Address(optional with port)>>; 
  } 
  .... 
  server{ 
    listen 80; 
    ... 
    location / { 
     proxy_pass http://sampleapp; 
    } 
 } 

上面的例子在服务器地址和端口后weight=2的配置,这意味着,每接收到3个请求,前2个请求会被分发到第一个服务器,第3个请求会分发到第二个服务器,其它的配置同轮询配置。

还要说明一点,基于权重的负载均衡和基于IP地址哈希的负载均衡可以组合在一起使用。

相关文章

  • nginx.conf配置两个前端路径

    nginx.conf配置两个前端路径

    本文主要介绍了nginx.conf配置两个前端路径,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-01-01
  • nginx基于IP的多虚拟主机实现

    nginx基于IP的多虚拟主机实现

    如果同一台服务器有多个IP,可以使用基于IP的虚机主机配置,将不同的服务绑定在不同的IP上,本文主要介绍了nginx基于IP的多虚拟主机实现,具有一定的参考价值,感兴趣的可以了解一下
    2024-01-01
  • Nginx做NodeJS应用负载均衡配置实例

    Nginx做NodeJS应用负载均衡配置实例

    这篇文章主要介绍了Nginx做NodeJS应用负载均衡配置实例,本文直接给出配置实例,需要的朋友可以参考下
    2015-01-01
  • nginx服务器配置解决ajax的跨域问题

    nginx服务器配置解决ajax的跨域问题

    本文给大家分享的是一个nginx服务器配置解决ajax的跨域问题的小技巧,非常的实用,有相同需求的小伙伴可以参考下
    2017-03-03
  • Mac下Nginx安装环境配置详解

    Mac下Nginx安装环境配置详解

    本篇文章主要介绍了Mac下Nginx环境配置详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • 启动Nginx.exe出现闪退问题的解决方案

    启动Nginx.exe出现闪退问题的解决方案

    在做项目时,使用老师给的代码,点击Nginx.exe出现闪退的情况,出现这个问题可能出现的情况,端口号被占用或者logs下文件路径有问题,所以本文小编给大家介绍了启动Nginx.exe出现闪退问题的解决方案,需要的朋友可以参考下
    2024-03-03
  • 深入理解nginx的access.log文件

    深入理解nginx的access.log文件

    NGINX软件会把每个用户访问网站的日志记录到指定的日志文件里,供网站者分析用户的浏览行为,本文主要介绍了nginx的access.log文件,感兴趣的可以了解一下
    2023-09-09
  • nginx提示:500 Internal Server Error错误的解决方法

    nginx提示:500 Internal Server Error错误的解决方法

    本文章来给大家总结了大量关于导致nginx中提示500 Internal Server Error错误的原因总结与解决方法分析有需要了解的朋友可参考参考
    2013-04-04
  • nginx 某些url只能由特定ip访问的实现

    nginx 某些url只能由特定ip访问的实现

    在Nginx中针对某些URL只允许特定IP地址访问,本文就来介绍一下如何实现,具有一定的参考价值,感兴趣的可以了解一下
    2023-09-09
  • nginx反向代理配置400,404,502等状态的自定义页面问题

    nginx反向代理配置400,404,502等状态的自定义页面问题

    这篇文章主要介绍了nginx反向代理配置400,404,502等状态的自定义页面问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01

最新评论