k8s集群入口一般都需要过负载均衡,然后再到apisix。
这时候如果后台业务需要获取客户端ip,可能拿到的是lb或者网关的内网ip。
这里一般要获取真实ip需要做几个处理。
1. 负载均衡上,一般支持配置获取真实ip参数,需要配置上。然后lb会吧客户端真实ip写入x-forwarded-for参数。
2. apisix上配置real-ip插件。作用和nginx的realip插件相同
官方文档:real-ip | Apache APISIX® -- Cloud-Native API Gateway
如果网关下所有业务都启用,可以直接在插件中配置。
source指,写入那个参数,一般都是http_x_forwarded_for。
trusted_addresses指,set_real_ip_from,一般写需要忽略的内网ip地址。比方lb的内网地址,或者有内网转发的话,集群内网的ip地址。
以上。