nginx的ip hash负载均衡策略怎么配置

发布网友 发布时间:2022-02-26 21:19

我来回答

3个回答

懂视网 时间:2022-02-27 01:40

产品型号:Thinkpad E15

系统版本:centos8

nginx负载均衡策略

Nginx负载的5种策略设置方法:

1、轮询(默认)

每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。 

    upstream backserver {

        server 192.168.1.62;

        server 192.168.1.;

     }

2、指定权重

指定轮询几率,weight权重大小和访问比率成正比,用于后端服务器性能不均的情况。 

    upstream backserver { 

        server 192.168.1.62 weight=1; 

        server 192.168.1. weight=2; 

    } 

3、ip_hash

每个请求,按访问ip的hash结果进行分配,这样每个访客,会固定访问同一个后端服务器,可以解决session的问题。 

    upstream backserver { 

        ip_hash; 

        server 192.168.1.62:80; 

        server 192.168.1.:80; 

    } 

4、fair

按后端服务器的响应时间来分配请求,响应时间短的优先分配。 

    upstream backserver { 

        server server1; 

        server server2; 

        fair; 

    } 


5、url_hash

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

    upstream backserver { 

        server squid1:3128; 

        server squid2:3128; 

        hash $request_uri; 

        hash_method crc32; 

    }

总结:Nginx负载的5种策略设置方法:

1. 轮询(默认)

2. 指定权重

3. IP绑定 ip_hash

4. fair

5. url_hash


热心网友 时间:2022-02-26 22:48

这个是很正常的,ip_hash的负载均衡是以客户端的ip地址作为hash错作的key进而计算hash值得。这种策略能保证一个ip访问到的永远是同一台机器。
(1)但是有一种情况就是多个ip的hash值是相同的,在这种情况下,这几个不同的ip访问到的就是同一台机器了。
(2)还有一种情况就是,虽然你每次用不同的机器,但是这些机器都是通过一个相同的出口ip来访问服务器,这时,你访问到的也永远是一台服务器。

热心网友 时间:2022-02-27 00:06

生产环境,今天无意中用IP访问了一下,发现竟然可以访问到,有一个域名被做为了默认域名。网上找了一下资料,Nginx可以设置禁止通过IP访问的。在任一有效的Nginx配置文件中加上以下一段#
forbidden
use
ip
address
accessserver
{
listen
80
default_server;
server_name
_;
return
444;}其实思路很简单,就是用IP访问的时候,返回444错误。
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com