HAProxy杂项

后端服务器记录真实ip

问题

使用HAProxy调度web服务器时,由于web服务器认为调度器是客户端,所以只会记录调度器的ip地址而不是真实客户端的ip

解决

HAProxy有一个配置选项”option forwardfor”,可以为http报头添加客户端ip,使web服务器知道真实客户端ip

语法:option forwardfor [ except < network> ] [ header < name> ] [ if-none ]

  • < network>
    可选参数,凡是源地址匹配至此网络中的请求都禁用此功能

  • < name>
    可选参数,使用自定义的首部代替默认的”X-Forwarded-For”.若默认的”X-Forwarded-For”首部已被占用,则可自定义其它的首部

  • if-none
    仅在此首部不存在时才将其添加至http报头中

需要注意的是,HAProxy工作于隧道模式,其仅检查每一个连接的第一个请求.因此,仅第一个请求报文被附加此首部.如果想为每一个请求都附加此首部,请确保同时使用了”option httpclose”,”option forceclose”和”option http-server-close”几个option

实验
  1. 修改haproxy配置文件

    ]# vim /etc/haproxy/haproxy.cfg //事实上HAProxy默认已经提供了option forwardfor的配置
        defaults
        option forwardfor       except 127.0.0.0/8
    
  2. 修改web服务器的配置文件

    ]# vim /etc/httpd/conf/httpd
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值