在我们当前的环境中,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
对我来说,日志看起来更像tcplog而不是httplog(即使这些字段与文档中的字段不完全相同,而且我们没有自定义日志)。
我的问题如下:
- haproxy 如何处理相互冲突的选项?
- 是否采用第一个拟合选项?
- 它是否应用最后一个选项(覆盖上一个选项)?
提前感谢您的见解。
是的,那是一个
tcplog
.在这种情况下,它不完全是一个“冲突”选项,它允许自己被稍后声明的不同选项覆盖。
使用配置中从上到下的最后一个实例。为什么这不是错误很可能与这样一个事实有关,即可以在默认部分中定义一个这样的选项,只是在单个代理(前端、侦听或后端)配置中被覆盖。