当前位置:   article > 正文

keepalive生成的genhash相同的情况

genhash

最近遇到一个有趣的事情,在这里记录下来。

keepalive做LVS负载均衡

截取部分架构图:

在这里插入图片描述
LVS做了负载均衡代理nginx

其中nginx也做负载均衡,代理了tomcat,而且tomcat的资源还是NFS集中存储上的。

所以最后的结果就是配置keepalive时生成genhash是相同的,我又查了下genhash的信息,没有查到太多,多番研究后得出。

genhash这个工具生成的MD5校验和是根据server提供的页面来计算的,如果页面相同生成的MD5校验和也是相同的。

keepalive中的这个校验和是用来做健康检查的。最好不相同。

我的环境中用genhash生成的命令是这样写的

[root@localhost ~]#  genhash -s 172.16.12.122 -p 80 -u /index.html
MD5SUM = 95a9e38ed40ad581299005622d4963ec

[root@localhost ~]#  genhash -s 172.16.12.123 -p 80 -u /index.html
MD5SUM = 95a9e38ed40ad581299005622d4963ec
  • 1
  • 2
  • 3
  • 4
  • 5
genhash	-S使用到远程服务器的ssl连接。
genhash	-s使用指定的远程服务器地址。
genhash	-p使用指定的远程服务器端口。
genhash	-u使用指定的远程服务器url。
genhash -V在GET查询中使用指定的virtualhost。
genhash	-v使用详细模式输出。
genhash	-h显示这个简短的内联帮助屏幕。
genhash	-r显示版本号
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

得到的校验和是一样的。

我就很懵逼了,因为index.html的内容不同啊。

-u又是URL ,实际的访问地址应该是 http://172.16.12.122/index.html。

我又访问测试了下,发现index.html页面的问题。

因为nginx里设置了转发,所有的请求都被转走了,-u index.html这个选项不生效。MD5 生成时访问到的还是NFS 集中存储上相同的页面,根本没访问index.html。

找到了原因就好解决了。
就增加一个nginx的访问供keepalive做健康检查用就行了

而且这个建议换个名字。不要用index。

server {
        listen       80;
        server_name  172.16.12.122;
        location /heal.html {
            root   /usr/local/nginx/html/;
            index  index.html index.htm heal.html;
        }
        location / {
            proxy_pass http://WebA;
            proxy_next_upstream http_500 http_502 http_503 error timeout invalid_header;
            include /usr/local/nginx/conf/proxy.conf;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

上边是我的这段,2个location/heal.html就是健康监测,生成MD5校验和用的。

heal.html要不一样生成的就不一样。这里边随便写点东西就好。

然后重新生成就ok了

[root@localhost ~]#  genhash -s 172.16.12.122 -p 80 -u /heal.html
MD5SUM = b451e0427af20e3ec419231ebdf40c4a

[root@localhost ~]#  genhash -s 172.16.12.123 -p 80 -u /heal.html
MD5SUM = 304193c30d5d188358e7786fb08c8858
  • 1
  • 2
  • 3
  • 4
  • 5
本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/138569
推荐阅读
相关标签
  

闽ICP备14008679号