nginx在做负载均衡时如何配置?

2025-12-19 13:54:46

1、轮循(默认) Nginx根据请求次数,将每个请求均匀分配到每台服务器

nginx在做负载均衡时如何配置?

2、proxy_pass http://tomcats:表示将所有请求转发到tomcats服务器组中配置的某一台服务器上。

upstream模块:配置反向代理服务器组,Nginx会根据配置,将请求分发给组里的某一台服务器。tomcats是服务器组的名称。

upstream模块下的server指令:配置处理请求的服务器IP或域名,端口可选,不配置默认使用80端口。通过上面的配置,Nginx默认将请求依次分配给100,101,102来处理,可以通过修改下面这些参数来改变默认的分配策略:

weight :默认为1

将请求平均分配给每台server

下图配置,表示6次请求中,100分配2次,101分配3次,102分配1次

nginx在做负载均衡时如何配置?

3、max_fails :默认为1

某台Server允许请求失败的次数,超过最大次数后,在fail_timeout时间内,新的请求将不会分配给这台机器。如果设置为0,Nginx会将这台Server置为永久无效状态,然后将请求发给定义了proxy_next_upstream, fastcgi_next_upstream, uwsgi_next_upstream, scgi_next_upstream, and memcached_next_upstream指令来处理这次错误的请求。

fail_timeout :默认为10秒

某台Server达到max_fails次失败请求后,在fail_timeout期间内,nginx会认为这台Server暂时不可用,不会将请求分配给它

192.168.0.100这台机器,如果有3次请求失败,nginx在15秒内,不会将新的请求分配给它。

nginx在做负载均衡时如何配置?

4、backup 备份机,所有服务器挂了之后才会生效

在100和101都挂了之前,102为不可用状态,不会将请求分配给它。只有当100和101都挂了,102才会被启用。

nginx在做负载均衡时如何配置?

5、down 标识某一台server不可用。可能能通过某些参数动态的激活它吧,要不真没啥用。

表示101这台Server为无效状态,不会将请求分配给它。

nginx在做负载均衡时如何配置?

6、max_conns 限制分配给某台Server处理的最大连接数量,超过这个数量,将不会分配新的连接给它。默认为0,表示不限制。注意:1.5.9之后的版本才有这个配置

表示最多给100这台Server分配1000个请求,如果这台Server正在处理1000个请求,nginx将不会分配新的请求给到它。假如有一个请求处理完了,还剩下999个请求在处理,这时nginx也会将新的请求分配给它。

nginx在做负载均衡时如何配置?

7、resolve 将server指令配置的域名,指定域名解析服务器。需要在http模块下配置resolver指令,指定域名解析服务

表示example.com域名,由10.0.0.1服务器来负责解析。 upstream模块server指令的其它参数和详细配置说明,请参考官方文档。

nginx在做负载均衡时如何配置?

1、fair

根据服务器的响应时间来分配请求,响应时间短的优先分配,即负载压力小的优先会分配。

由于fair模块是第三方提供的,所以在编译nginx源码的时候,需要将fair添加到nginx模块中。

假设我的nginx是通过源码安装的,安装在/opt/nginx目录下,而且安装时没有添加fair模块

1> 下载fair模块源码 

      解压后的目录名为:nginx-upstream-fair-master

nginx在做负载均衡时如何配置?

2、2> 重新编译nginx,将fair模块添加到编译参数       我的nginx源码目录在/opt/nginx-1.10.0

注意:不要执行make install,这样会覆盖之前nginx的配置 

nginx在做负载均衡时如何配置?

3、3> 将新编译的nginx可执行程序拷贝到/opt/nginx/sbin/目录下,覆盖之前安装的nginx 编译后的nginx执行程序,放在nginx源码的objs目录下

nginx在做负载均衡时如何配置?

4、url_hash

按请求url的hash结果来分配请求,使每个url定向到同一个后端服务器,服务器做缓存时比较有效。

1.7.2版本以后,url_hash模块已经集成到了nginx源码当中,不需要单独安装。之前的版本仍需要单独安装,下载地址:https://github.com/evanmiller/nginx_upstream_hash 安装方法和fair模块一样,先下载url_hash源码,然后重新编译nginx源码,将url_hash模块添加到编译配置参数当中,最后将编译后生成的nginx二进制文件替换之前安装的nginx二进制文件即可。

nginx在做负载均衡时如何配置?

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢