在我们当前的环境中,haproxy.cfg
有两个相互冲突的选择:
option httplog
option tcplog
生成的日志 ( /var/log/haproxy.log
) 如下所示:
Jul 16 09:39:05 campus-deploy haproxy[9862]: client_ip:client_port [16/Jul/2018:09:39:01.238] https~ backend/backend_server 0/1/3999 420
-- 12/12/0/0/0 0/0
对我来说,日志看起来更像是tcp日志比http日志(即使字段与文档中的不完全相同并且我们也没有自定义日志)。
我的问题如下:
- haproxy 如何处理冲突的选项?
- 它是否采用第一个适配选项?
- 它是否应用最后一个选项(覆盖前一个选项)?
提前感谢您的见解。
答案1
是的,那是一个tcplog
。
在这种情况下,它不完全是一个“冲突”的选项,而是一个允许自己被以后声明的不同选项所覆盖的选项。
使用配置中从上到下的最后一个实例。这不是错误的原因很可能与这样一个事实有关:可以在默认部分中定义一个这样的选项,但只能在单个代理(前端、监听或后端)配置中覆盖该选项。