在Haproxy负载均衡模式下,Percona8.0可以得到后端Java/PHP应用程序的真实IP

2024-01-23 14:08:37 浏览数 (2)

在Haproxy负载均衡模式下,P e rcona8.0可以得到后端Java/PHP应用程序的真实IP。

架构:Java -> Haproxy -> MySQL Slave(对从库做负载均衡读)

在MySQL 8.0里,执行show processlist或者查看慢日志slow.log,只能查看到Haproxy的代理IP,无法得到真实应用的IP地址。

这对于排查线上慢SQL,给研发带来了难度,定位问题很困难。

那么你可以切换到Percona8.0。

实现:

1) 需要在Haproxy里设置send-proxy

server 192.168.198.239 192.168.198.239:3306 send-proxy inter 2000 rise 3 fall 3

注:(192.168.198.239为后端MySQL节点)

重启haproxy进程生效。

2) 需要用Percona替换MySQL

设置参数

proxy_protocol_networks = *

注:重启mysqld进程生效

此时,你登录Percona 8.0里,执行show processlist或者查看慢日志slow.log,就可以查看到真实的应用程序IP了。

参考: https://docs.percona.com/percona-server/8.0/proxy-protocol-support.html#proxy_protocol_networks

0 人点赞